Voron 0.2 filtered tophat exhaust

Replacement panel for the Voron 0.2 tophat that includes a HEPA filter and a 40mm fan
17
43
2
489
updated June 5, 2024

Description

PDF

This project aims at improving the usability of the Voron 0.2 printer when enclosed, by having a plug-and-play exhaust system similar to what you would find on a Voron 2.4 or Trident. An exhaust system works in tandem with an internal filter, and has the objective of further filtering the chamber air after a print with materials which produce VOCs (ABS/ASA/etc.) is completed

A side effect of having a robust printer insulation is that the chamber will take a considerable amount of time for cooling down, which may become quite significant. This exhaust system helps combat this issue by pulling hot air out of the chamber, gradually lowering temps at a faster rate

Very convenient if you pair this mod with the excellent lift off tophat hinges by Chirpy!

BOM

  • 8 M3x5x4 threaded inserts (Voron spec)
  • 4 M3x20+ button head screws (anything longer than 20mm is fine)
  • 4 M3x12 for a 4010 fan, M3x25 for a 4020 fan
  • 4010/4020 fan (4020 is recommended as it needs to pull air through the hepa filter) 
  • 80x40x15 HEPA filter, (for iLife vacuum robots, same filter used for the BentoBox V2 filter)
  • optional, 6 6x3 neodymium magnets for the magnetic quick-release connector

PRINTING

  • the main filter housing is printable on a Voron 0, as well as the back panel if you choose the split version
  • standard Voron settings (4 perimeters, 40% infill)
  • no supports needed
  • choose the panel height that matches your tophat size (91mm being the tallest and 71mm being the shortest)
  • the magnetic connector I used comes from this Printables project, I used the 6x3mm version (standard female connector). I also designed a plug for the cable coming from the mainboard that prevents shorts, you can find it here

ASSEMBLY

  • glue the two split-panel pieces if you use them
  • add the fan threaded inserts
  • add the inserts to secure the filter to the panel. To ease installation and avoid installing them crooked, pass a long (40mm?) screw through the filter from the front and have it come out on the other side. Thread an insert (a turn or two is fine) and pull the screw back. Push the insert with your soldering iron and finally unscrew the bolt
  • insert the HEPA filter, variation in size can result in having to slightly pinch it to make it fit. Don't worry about hurting it a bit, he won't be mad
  • install the back fan, pulling air out of the filter
  • install the filter onto the panel
  • install the panel on the tophat

For the optional magnetic connector, refer to the project page. I simply used hot glue to secure mine in place, there are no forces acting on it

 

CONFIG

Here's the Klipper config I'm using for the exhaust filter. When not printing ABS/ASA the fan spins up at 35C, when enclosed it spins up at 70C. My macros passively heat the chamber and turn off fan/filter when the print is done. In my case the filter is defined as an output pin, if yours is different you will need to update the macros below

  • printer.cfg
[temperature_fan chamber]
pin: your_fan_pin
max_power: 1.0
shutdown_speed: 0.0
kick_start_time: 5.0
cycle_time:0.01
off_below:0.1
sensor_type: Generic 3950
sensor_pin: your_thermistor_pin
min_temp: 0
max_temp: 70
target_temp: 35.0
control: watermark
gcode_id: C
  • chamber.cfg
[gcode_macro HEAT_CHAMBER]
gcode:
    {% set CHAMBER = params.CHAMBER|default(0)|float %}
    
    {% if CHAMBER > 0.0 %}
      # add any logic you want here, I home if not homed
    
      SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=chamber TARGET=70
      
      # I bring the toolhead to center of bed to help heat up chamber
      
      SET_PIN PIN=my_internal_filter VALUE=1
      
      # I turn on part cooling fans, heat up bed, turn on bed fans
      
      TEMPERATURE_WAIT SENSOR="temperature_fan chamber" MINIMUM={CHAMBER}
      
      # I turn off part cooling fans
      
    {% endif %}


[delayed_gcode CHAMBER_COOLDOWN]
gcode:   
    {% if printer["temperature_fan chamber"].temperature < 35 and printer.state != "Printing"%}
        SET_PIN PIN=my_internal_filter VALUE=0
    {% else %}
      UPDATE_DELAYED_GCODE ID=CHAMBER_COOLDOWN DURATION=2
    {% endif %}

[gcode_macro CHAMBER_OFF]
gcode:
  SET_PIN PIN=my_internal_filter VALUE=0
  SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=chamber TARGET=35

add HEAT_CHAMBER CHAMBER=your_temp to your starting gcode when printing enclosed, and add SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=chamber TARGET=35 followed by UPDATE_DELAYED_GCODE ID=CHAMBER_COOLDOWN DURATION=2 at the end of your  PRINT_END macro.

The filter will be kept running until the chamber temperature reaches 35C, after which parts can be taken off the bed as they are properly cooled down (won't warp)

The CHAMBER_OFF is just a helper macro that you can call to reset the chamber fan and filter to their defaults

Tags



Model origin

The author marked this model as their own original creation.

License