Introduction: Particle / Active Carbon Air Filter Using a 120mm Delta High Static Pressure 12V Fan, Arduino Pro Mini 3.3V As PWM Control, and 3D Printed Cases
I am usually running one or two 3D printers in my workshop, and although I don't print ABS, I do print carbon fiber and other materials that have been identified as giving off ultrafine particle emissions and fumes.
After noticing that the air did occasionally have some odor and reading about some of these dangerous particulates, I decided I better do something about ventilation and air purification. Encasing my printers or installing a system to ventilate my work-area to the outside would be best, but as I am upgrading my printers shortly and don't know the full scope yet, a short-term fix seems the best alternative.
The filter will sit next to a printer, as close to the extruder as feasible and must be powerful enough to pull the emissions into the filters. If ear protection is needed, it is acceptable as long as the filtering is effective. The filter should also be able to serve as a solder fume extractor or a work-space air filter as required.
This is a medium-cost high-power filtration project. It uses a Delta 12 V 120 mm - 4 amp beast of a fan, an Arduino Pro-Mini 3.3V microcontroller, an active carbon filter, and a 3-layer Philips Trio Motor FC6033 / 01 insert all of which are reasonably priced and available world-wide.
The holders for the Fan, active carbon and particle filters, and the electronics are 3D printed. A link to the STL's is included.
The Delta is a 4 Pin, high-static pressure, PWM (Pulse Width Modulation) controlled , high amperage-draw model. Caution: On the loud puppy scale, this fan is rated 1.
PWM controls RPM by sending the motor a series of “ON-OFF” pulses and varying the duty cycle, the amount of time that the output voltage is “ON” versus “OFF”.
The power applied to the motor can be controlled by varying the width of these applied pulses and thereby varying the average DC voltage applied to the motor. By changing the timing of these pulses the speed of the motor can be controlled, the longer the pulse is ON, the higher the RPM and vice versa.
Step 1: Parts List
3.3V Pro-Mini PWM Control
- Arduino Pro Mini 3.3V/8 Mhz Board
- LD1117V33 Voltage Regulator
- 1 uF Cap
- 10uF Cap
- FT232RL FTDI USB to TTL Serial Converter Adapter (for programming)
- 6 - Female-Female Dupont Cables for FTDI to Pro Mini Connection
- USB to mini USB Cable (for programming)
- 100 Ohm WX110(010) (2W) Rotary Taper Potentiometer
- Knob for Potentiometer
Delta PFC1212DE (Specs)
- Rate Voltage: 12V
- RPM: 5500
- Input Current: 4-4.8A
- Power: 48-58 Watts
- Size: 120 x 120 x 38 mm
- dB: 66
- CFM: 227
- Static Air Pressure: 30-36 mmH2O
AC/DC Adapter/Power supply
- AC to DC - 12V Power Adapter (1.7 Amp)
Delta Fan Connection
- 1N5818 Schottky Diode
- 1K Ohm 1/4 Watt Resistor
- Molex 4-Pin Male Connector
Circuit Board / Control Box
- 5*7 Double-sided PCB (2.54 mm)
- 3 pin Male Pin Dupont Header (to attach pot)
- 3 Long Female to Female Dupont Jumper Cables
- 2 Short Dupont Jumper Cables (1 female end each for LED)
- 2 pole 5.08mm Pitch PCB Mount Screw Terminal Block 10A (connect 12V)
- 2 pin Male Pin Dupont Header (to attach LED)
- 2 Pin ON / OFF IO SPST Snap-in Mini Boat Rocker 250V 3A
- DC Socket 3A with Nut
- 2-3 V LED
- 220-270 Ohm 1 Watt Resistor
Active Carbon Filter
- 130 x 130 mm Carbon filter (It doesn't even need to be cut)
- Loose Activated carbon in a holder could also be used here
Philips Trio Motor FC6033 / 01- 3 Layer Filter
Step 2: Schematic
There is only one input voltage, which can be in the range of 10 to 15 VDC. The Delta can pull some serious DC amperage so a reasonably powerful DC supply is required. I have used an 1.7 amp adapter, an old 3D printer power supply that can supply in excess of 10 Amps, and a sealed 9 Amp battery, all 12 volt.
This is not designed to be battery powered, though one could be used in a temporary situation. At a 3 amp draw, even a big battery will not last long.
The LD1117V33 converts the input voltage range (up to 15V maximum) to 3.3V. The 3.3V is connected to the Pro Mini, the 100 Ohm Potentiometer which adjusts the PWM level, and the power-on LED.
Pinout on the Molex connector (from the top):
- Negative power supply
- Positive power supply
- Tacho (not used here)
- PWM control
Step 3: Assemble the PWM Control Board
Here I attached the comm pins straight up, the Pro-mini programming header ,to make it easier to program/re-program the Pro Mini after it has been installed on the PCB.
I used a 2 pole 5.08mm Pitch PCB Mount Screw Terminal Block to connect the input voltage to the LD1117 regulator and pin 2 of the Molex 4 pin connector. The Power itself comes from the DC plug installed on the back cover (see Control box assembly below.) The input GND is connected to the GND pin of the Pro Mini (J7.9 in the schematic above) and pin 1 of the Molex.
The LD1117V33 drops at least 1 V during conversion, but can handle up to 15 V input while most of the low-drop regulators, like the MCP family, limit input voltage to much lower levels. I wanted to use only one input voltage source here and can live with the voltage drop.
The LD1117 output 3.3V is connected to the VCC input of the Pro Mini which expects a regulated 3.3V and bypasses the internal regulator. The Pro Mini RAW pin goes to the internal regulator which I want to avoid.
Also connected to the output of the LD1117 is a low-voltage LED and a current-limiting resistor. When the Rocker switch is turned on, the LED will light. It just serves as a reminder to turn off the rocker switch off when the pot is adjusted all the way down and I might forget to power it off. The LED is connected to the 2 pin Male Dupont headers.
A 1N5818 diode is used across the Molex +/- pins as fly-back protection.
3.3V/5 mA off the PWM pin (D10 on the Pro Mini here) is enough for the Delta which supports this voltage level as a minimum for the PWM control. D10 on the Pro Mini is connected to pin 4 on the Molex. A 1K Ohm resistor is used as a pull-down on the D10 connector.
Step 4: Pro Mini Programming Set-up
To program the Pro Mini, an FT232RL FTDI USB to TTL Serial Converter Adapter is used along with some Female to Female Dupont Jumper cables and a USB to mini USB cable. The Arduino IDE is used to download code and do initial debugging via the serial monitor.
The FTDI board is connected to the Pro Mini using the Female to Female Jumper cables, and then the FTDI is connected to my laptop via the USB to mini-USB cable.
The connections to make between the FTDI FT232RL and the Pro Mini are:
- GND --> GND
- CTS --> GND
- VCC --> VCC
- TXD --> RXD
- RXD --> TXD
- DTR --> DTR
I usually use one of the longer USB to mini-USB cables, rather than the really short ones you often see advertised on the online sites. The longer cables simply give more room to work and the short ones can sometimes be frustrating to use.
Step 5: Pro Mini Code Overview & Download
Attached is the Arduino IDE sketch used to control the Pro Mini and the Delta fan. The code is explained in the following sections.
Step 6: Global & Set-up Code Sections Explained
/* PWM Driver for Delta Fan and 3.3V
int PWM_PIN = 10;
For this project, I picked the Pro Mini pin 10 as PWM Control
int potPin = 0;
Analog Pin A0 is connected to the sweep pin of the Potentiometer.
Raw Values read should be between 0 - 1055
int val = 0;
Variable for storage of the raw analog read value
int percent = 0;
Variable used for sanity checked analog read value (val) converted to value between 0 and 255
// the setup function runs once when you press reset or power the board
Initialize digital pin 13 as an LED indicator of power level
Turn the LED off by making the voltage LOW
For this project, I picked the Pro Mini pin 10 as PWM COntrol
By changing values from 0 to 255 you can control motor speed, Initialize to 0, Off
For Debugging with the Arduino Serial Monitor, verify serial monitor is using the same Baud Rate.
Sends the Alive message and delays a bit to allow serial monitor time to print it. Secion can be commented out after debug is complete.
Serial.println("Alive .. ");
Step 7: Loop Code Explained
// the loop function runs over and over again forever
Read the value from the pot , value should be in range 0 - 1055
val = analogRead(potPin);
Divide value read by 4 to get approx. percent
percent = val / 4;
Sanity check result
percent = (percent > 0) ? percent : 0;
Set max value to 255
percent = min(percent, 255);
------- Below is Debugging Code - Can be commented out for production runs
------- End of Debugging Code
Send the analog value to the PWM pin. Should be in the range, 0 to 255 , to control motor speed
---- Code below is more debugging, can be commented out in Production
if(percent > 128)
turn the LED on, when percent > 50%
else digitalWrite(13, LOW);
turn the LED off by making the voltage LOW
---- End of Debugging Code
Read Pot 20 times a second for responsiveness
Step 8: Test the PWM Board and FAN
The test was run using 13.5 volts and 2.5 Amps as the limits on a Programmable DC Power Supply. The highest I could get the Delta to draw was 3.5 amps, but to be honest, I did not see an appreciable difference between 1.7 and 3.5 even though the fan is rated for a higher draw.
Step 9: 3D Printed Parts Explanation
The STL's for all 3D printable parts can be downloaded at:https://www.thingiverse.com/thing:2605437
The filter-fan case is printed in two main parts which are assembled using a basic type of male/tenon side and a female/mortise side which accepts the tenon. Here the male and female joint sides also have 5 mm holes, for insertion of a dowel, when needed.
There are four joints between the two halves. The rails holding the joints can also function as legs for the assembled fan/filter holders.
This model makes it easy to disassemble and replace the filters and/or fan as need be.
1- Fan Case Half
2- The Particle Filter/ Active Carbon Half
3- The Control Box and Back Cover
Step 10: Assemble the Control Box
Glue in the LED
I cut off one end of each of two Dupont cables leaving a female end on each. The length should be long enough to reach the male LED pins on the assembled board. I then stripped the other ends and soldered one to each one of the LED leads and taped. I then used some some crazy glue to set it into the LED hole and let it dry before testing with low voltage and Milliamperes (3.00 - 20 Milliamperes set on programmable DC power supply.)
Solder a couple of wires to the ROCKER Switch. These will be connected to Positive power in from the DC Socket connector on the back panel and the Positive (+) lead of the 2 pole connector on the circuit board
Solder three Dupont cables to the three leads of the pot, The female ends will be connected to the 3 pin Male Dupont headers on the circuit board.
Begin Control Box Assembly
Insert the Rocker Switch and the Potentiometer. The pot is secured with the washer and nut and then Attach the Rotary Cap.
Attach Socket to Control Box Back and Solder Wire
I soldered a single wire to the ground connection of the DC Socket
Attach Socket Rocker Switch and Solder Wire
Solder one wire from the Rocker Switch to the positive lead of the DC adapter socket, it doesn't matter which Rocker switch wire.
Wire up the Circuit Board
- Other Wire from Rocker Switch to Positive input on 2 Pole Connector
- Other wire from AC Adapter to Negative input on 2 Pole Connector
- For the fan, connect the three female Dupont headers to the 3 pin Male Header. Watch your polarities.
- For the LED connect the two female Dupont headers to the 2 pin Male Header. Watch your polarities, the pin with the resistor connected should be positive.
Connect the Delta to the Molex connector and Power Up
Connect to power and check connectrions
Close it up
The holes are 3 mm.
Step 11: Assemble the Filter and Test
The assembled unit was tested using a 12V 1.7 Amp AC-DC Adapter