So in this other thread ( 我想知道顶盖的接口定义,自行添加风扇 ) regarding running the top cover fans I have been working on a circuit for controlling two fans using the top cover controls. That thread is marked as Solved though so I figured I should create my own. I also plan to design a exhaust filter housing and a circulation fan duct that can be bolted to a DIY top cover.
Here are a few things I have learned so far that I could not find specifically mentioned elsewhere (they probably are but search on the internet in general has gone to crap):
- The Snapmaker U1 Firmware is looking for a 10k resistor bridging from PA6 to GND in order to activate the top cover controls
- The Snapmaker U1 Firmware only activates the 24V pin when either of the fans has it’s duty cycle set higher than 0%
- PA9 is outputting an inverted PWM signal this means you cannot connect it directly to a 4wire PWM fan
- Most 4pin PWM fans will run at their minimum RPM specification when 0% duty cycle is applied.
- A 4pin PWM fan’s minimum RPM specification does NOT tell you if it will run at 0 RPM at 0% duty cycle or not. This makes finding 4pin fans that completely stop at 0% duty cycle difficult
The RPM issues above mean that many 4pin fans will start running as soon as 24V power is applied and 24V is activated as soon as either of the fans are turned on. So unless you find these very special 0 RPM 4pin fans you will not be able to run one fan without the other coming on when directly running the PWM signal to the fans.
Instead I am switching to 3pin 12V fans and building in a PWM controlled drive circuit. This will ensure that the fans can always be turned completely off individually. I chose these because I have several on hand already as well as 24v-12v buck converters. Making a 24V version is just a matter or changing 2 resisters and removing the buck converter.
Here is the circuit so far:
Parts List:
10kOhm Resister x2
1kOhm Resister x1
1.5kOhm Resister x1
2.2kOhm Resister x1
2N3904 Transister x1
1N4007 Diode x3
100uF Electrolitic Cap. x2
IRLZ44N Mosfet x2
24V to 12V Buck Converter x1
+------[ MISC Circuits ]------------------+
| |
| [SM 24V]◄────────────►[Buck Conv. VIN+] |
| [SM GND]◄─────┬──────►[Buck Conv. VIN-] |
| ├──────►[GND] |
| [10kOhm] |
| ├──────►[SM PA6] |
| │ |
| ▼ [1N4007] |
| ┬ |
| └──────►[InFan Tach] |
| |
| [Buck Conv. VOUT+]◄──►[12V] |
| [Buck Conv. VOUT-]◄──►[GND] |
| |
| [SM PA9]◄────────────►[INVERT_PWM] |
| [SM PA8]◄────────────►[EXHAUST_PWM] |
| |
+-----------------------------------------+
+------[ 3.3V PWM Inversion Circuit ]----------+
| |
| [12V]◄───────┐ [INNER_PWM] |
| [2.2kOhm] ▲ |
| ├────────────┬──┘ |
│ [INVERT_PWM] C│ [1.5kOhm] |
| ▲ │/ │ |
| └─[1kOhm]───B│ [2N3904] │ |
| │\► │ |
| E│ │ |
| ├────────────┘ |
| ▼ |
| [GND] |
| |
+----------------------------------------------+
+------[ Inner Fan Drive Circuit ]-------------+
| |
| [12V] |
| ▲ |
| [InFan POS]◄─────┼─────────────┐ |
| ┴ [1N4007] ┴+ [100uF] |
| ▲ ┬ |
| [InFan Neg]◄─────┼─────────────┘ |
| │D |
| │├──┴┐ |
| [IRLZ44N] │|◄─┐▼ |
| │├──┤┬ |
| [INNER_PWM]◄───┘G ├┘S |
| │ |
| │ |
| │ |
| ▼ |
| [GND] |
| |
+----------------------------------------------+
+------[ Exhaust Fan Drive Circuit ]-----------+
| |
| [12V] |
| ▲ |
| [ExFan POS]◄─────┼─────────────┐ |
| ┴ [1N4007] ┴+ [100uF] |
| ▲ ┬ |
| [ExFan Neg]◄─────┼─────────────┘ |
| │D |
| │├──┴┐ |
| [IRLZ44N] │|◄─┐▼ |
| │├──┤┬ |
| [EXHAUST_PWM]◄─┤G ├┘S |
| │ └─┐ |
| [10kOhm] │ |
| ├─────┘ |
| ▼ |
| [GND] |
| |
+----------------------------------------------+
Please note I have not tested this yet, so unless you trust my electronics knowledge that I got 30 years ago and have used maybe once or twice a year since (I don’t lol) then I recommend holding off till I have verified it works.
UPDATE 1: Circuit diagram was wrong. 10kOhm resisters were on the wrong leg of the MOSFETS.
UPDATE 2: One of the 10k Ohm resisters was not needed because of the 1.5k Ohm in the inversion circuit.
UPDATE 3: Added another diode to keep the tach signal from causing issues with the 10k resister telling the U1 the top is on.





