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



Retired tinkerer, programmer ...

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.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

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

Particle Filters

  • 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

void setup()


pinMode(13, OUTPUT);

Initialize digital pin 13 as an LED indicator of power level

digitalWrite(13, LOW);

Turn the LED off by making the voltage LOW


For this project, I picked the Pro Mini pin 10 as PWM COntrol

analogWrite(PWM_PIN, 0);

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

void loop()


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


Serial.print(", ");



------- End of Debugging Code

analogWrite(PWM_PIN, percent);

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)

digitalWrite(13, HIGH);

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:

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.)

Led test

Rocker Switch

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

  1. Other Wire from Rocker Switch to Positive input on 2 Pole Connector
  2. Other wire from AC Adapter to Negative input on 2 Pole Connector
  3. For the fan, connect the three female Dupont headers to the 3 pin Male Header. Watch your polarities.

  1. 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



    • Indoor Lighting Contest

      Indoor Lighting Contest
    • Metal Contest

      Metal Contest
    • Make It Fly Challenge

      Make It Fly Challenge