January 21, 2026
Description
While being a great filament dryer, the Sunlu S2 misses a fan exhausting the damp air from the inside. The exhaust fan presented here is a non-destructive accessorie that can simply be fitted into one of the lid's two filament outlets.
Part | Type |
|---|---|
Fan | Voltage: 5 V or 24 V |
DC/DC converter | Mini-360 |
Barrel jack | 5.5x2.1 mm female |
Screws | 4x M2x6 |
Part | Type |
|---|---|
Fan | Voltage: 5 V or 24 V |
DC/DC converter | Mini-360 |
Barrel jack | 5.5x2.1 mm female |
Temperature and humidity sensor | GXHT30 |
Transistor | BC547 (or similar) |
Resistor | Any resistor between 100 Ω and 1 kΩ works |
Diode (optional) | 1N4148 (or similar) |
Screws | 4x M2x6 |
If desired, a switch can be added anywhere in the circuit.
The source code may either be found attached as a .zip below or on Github (recommended). I do not guarantee that the .zip file will always be the latest version.
The Sunlu S2 exhaust fan features a web interface where...
...the temperature and relative humidity can be monitored.
...the fan can be controlled by clicking the buttons and dragging the slider.
To get the web interface up and running your WiFi credentials must be entered into the source code. Fill in your local WiFi's SSID and password in the main.cpp's lines 9 and 10, respectively.
When connected through USB to a computer, the ESP will report its IP address to a serial monitor. Alternatively, you can also find it on your router's interface.
The ESP is flashable over the air, as the USB port will be blocked once assembled.
The auto mode automatically switches the fan on and off. This depends on the air temperature and relative humiditiy inside the Sunlu S2. By default it is configured such that:
After plugging the Sunlu S2 in, the fan waits for 20 min (ef_t_set_ref_temp - ef_t_pre_sense) before activating. This is to let the Sunlus S2 warm up.
The fan kicks on for 5 min (ef_t_pre_sense) at 50 % of its maximal speed to pre-sense the temperature before setting the measured one as its reference value.
The relative humidity's reference value is hard-coded (ef_thld_rh) at 15 %.
The fan stops when either the temperature falls 8 K (ef_thld_delta_temp) below the reference temperature or the relative humidity drops 3 % (ef_thld_delta_rh) below its threshold (ef_thld_rh).
The fan kicks back on to 100 % speed when either the temperature or the relative humidity rise above their respective thresholds.
The default slicer settings for the 0.15 mm layer height should work just fine. Anyway, here are some settings for reference.
Parameter | Value |
|---|---|
| 0.15 |
STL: For every part a .stl file is uploaded. Every part and the support enforcer is its own .stl file. This allows to easily reload or replace the .stl file in question from within the slicer.
STEP: The entire housing is uploaded as a single .step file. It includes multiple bodies.
3MF: A .3mf project file including every single part with all its proper settings is uploaded. This is great if all you want is to fire up your machine, print the parts, and go to town with drying up your filaments.
F3D: A parametric Fusion 360 file of the housing. This is great if you want to modify it to fit your needs.
BGCODE: Presliced so it can easily be printed from mobile devices.
Note: The gcode information in the header is for utilizing PrusaSlicer's "balanced" print profile.
License:
Creative Commons — Attribution — Noncommercial — Share Alike
7