introduction
To keep myself sane as I write my PhD thesis, I have been allocating short periods of free-time to work on a few hands-on projects here and there; this is one of them. Anyway, I have recently acquired a resin 3D-printer and am putting together an enclosure to exhaust the apparently carcinogenic fumes out of my office. The rough plan was to buy a cheap laminex cabinet and duct it outside through the window with a fan.
design
the enclosure
The printer and curing station sit inside an IKEA TONSTAD Cabinet that I bought from the pre-loved section for a healthy discount. It has some dents and scratches on a couple of the panels, but they’re honestly pretty minor. I will not be detailing the assembly here. You can see one of the corner holes below.

This thing is heavy and it feels pretty solid. Anyway, the first stage of the project was to design some flange-adaptor-thingys to attach a 100 mm aluminium ventilation duct (from Bunnings) to, as well as route in the power cables for the printer and the wash-and-cure station. The TONSTAD has these rectangular holes conveniently placed at the top corners of the cabinet; I used one for the duct and one for the power. The outer panels of the cabinet have a bit of a lip, so I included some raised sections on the parts shown below to keep the panel flat against the back.

I printed them out of orange eSUN PLA+ on my Creality K1C, and used copious amounts of duct tape to seal them against the back of the cabinet. This will be back against the wall so I don’t have to look at my hideous work. The duct seems to sit on there fine with the help of a few zip-ties but I might revise the interface to have a groove for them to sit in if I encounter any problems.


the fan
Fortunately my hoarding tendencies have blessed me with a NMB 4715KL-04W-B86 12V 2.5A cooling fan from an old Dell server I looted for parts a long time ago. This thing is cool, it hovers on my desk at max speed. I decided to place a carbon filter on the intake, so I designed a frame to sandwich in-between the duct adaptor and the fan. The parts I printed used M3 holes, but the version uploaded to Printables (soon) should have M4. I just didn’t have any M4 bolts at the time.

the plank
Armed with the cheapest hole-saw kit that I could find in Bunnings and a plank of pine, I created the masterpiece of carpentry you see below. I painted on a coat of white primer and what could best be described as hellish white goop at the bottom of a paint can in the shed. I’m pretty sure this is what’s on the walls inside. You can see the consistency on the end of the Paint Mixing Stick ™. I was tempted to paint it bright orange to match the 3D-printed parts, but thought that might be a bit too function over form, even for me.

The idea is to sandwich the plank between the other side of the fan and a vent to keep any direct rain from entering the fan. I thought about just putting some flyscreen over the outside but I couldn’t find any to spare, so I designed/printed a custom vent cover.

I printed this out of black Overture PLA Pro, but I will likely reprint it with a material more suitable to outdoor exposure. The window colour doesn’t quite match, but it’s better than orange. I also put a strip of self-adhesive door sealing foam around the edge of the plank to squish up against the window; it isn’t perfect but it definitely helps. I’ve included a photo of the foam I used at the end of the project to avoid it looking like an ad.

the controller
Arguably the most fun part of the project, the bit that involves ESPHome. There isn’t much to this as I couldn’t be bothered to implement any physical user interface. Besides, it’s probably going to be difficult to reach. The fan controller just sends a PWM signal to the fan, and reads the tachometer signal coming from the fan to measure the RPM. I’ve included the relevant ESPHome config stuff at the end of the post. There’s a generic DC-DC stepdown converter to drop the 12 V input to 5 V for the board. The 4 wires on the fan are connected via terminal blocks because the fan didn’t have a connector on it and I couldn’t be bothered putting one on.

The enclosure isn’t anything fancy, it has some cool hexagons on the lid. I included some countersunk holes on the bottom so I could mount it directly onto the plank with some wood screws (as shown above).

conclusion
The fan works well with home assistant picking it up straight away. Although I haven’t verified the RPM readout, it seems in the ballpark. I also sealed some gaps in the back of the cabinet with duct tape as you can see below, as ideally I want the air to be coming from the gaps around the doors, past the boxes spewing VOCs and out the window. I haven’t tested out how well it keeps the smell of resin out, since I wanted to have at least some form of ventilation setup before I started printing. Thankyou for reading 🙂

appendix
some ESPHome config stuff
With reference to this forum post, this is the relevant config for the fan control and tachometer readout.
output:
- platform: esp8266_pwm
id: fan_speed
pin: D2
frequency: "25000 Hz"
min_power: 0%
max_power: 100%
sensor:
- platform: pulse_counter
pin:
number: D1
mode:
input: true
pullup: true
name: Fan Speed
id: d1_fan_pulse
unit_of_measurement: 'RPM'
filters:
- multiply: 0.5
count_mode:
rising_edge: INCREMENT
falling_edge: DISABLE
update_interval: 5s
fan:
- platform: speed
output: fan_speed
name: fan speed
id: fan_toggle
door/window seal


Leave a Reply