DIY Soldering Fume Extractor - PICO Edition

by Arnov Sharma in Circuits > Gadgets

124 Views, 4 Favorites, 0 Comments

DIY Soldering Fume Extractor - PICO Edition

Raspberry Pi PICO 2 - DESK FUME EXTRACTOR
thumb.JPG
48.gif
50.gif
51.gif

Greetings, everyone, and welcome back. Here’s something practical and exciting—a DIY fume extractor powered by the Raspberry Pi Pico.

This project was built entirely from scratch, starting with a repurposed CPU fan and a custom driver board to control it. We designed a compact enclosure that neatly houses all the components, making it both functional and visually clean.

The aim was simple: to create a reliable soldering aid for my new desk setup. I didn’t have a fume extractor, and rather than buying one, I decided to build my own, something tailored to my workspace, with the features I actually needed.

To enhance usability, we added a built-in light source that illuminates the soldering area, which is a huge help during precision tasks. Both the fan and the light are controlled via individual push buttons, each offering a four-step dimming cycle:

• The first press activates at 50% power

• The second press boosts to 75%

• The third press reaches full 100%

• The fourth press turns the output off

The entire system runs on an external 12V power supply, connected through a DC barrel jack mounted on the rear of the unit. For the exhaust, we’re using a 12V 0.18A PC fan salvaged from an old computer. We’ve also included a DIY smoke filter that’s easy to swap out, keeping the air clean while you work.

This Instructables walks you through the full build, so let’s dive in and start building!

Supplies

These were the components required during the build.

  1. Custom PCBs (Provided by PCBWAY)
  2. Raspberry Pi PICO 2
  3. AO4406 N Channel Mosfet IC SOIC8 Package
  4. 10K Resistors
  5. 8205S Mosfet SOT23-6 Package
  6. AMS1117 3.3V
  7. 10 uF 1206 Package Capacitor
  8. 1 uF 1206 Package Capacitor
  9. M7 Diode SMA
  10. 12V PC FAN
  11. Barrel DC Jack
  12. 4x4 Tactile Push Buttons
  13. 2835 Warm White 3.3V LED
  14. 3-Ohm 1206 Package Resistor
  15. Connecting wires
  16. 3D-printed parts
  17. M2 Screws

DESIGN

untitled.319.png
untitled.320.png
untitled.314.png
untitled.315.png
untitled.316.png
untitled.317.png
untitled.318.png
Screenshot 2025-06-01 012924.png

We began the main design of this project by importing a 3D model of a DC fan into Fusion 360. From there, we built a cuboid-shaped enclosure around it. One half of the enclosure houses the fan, while the other half contains the light source, two push buttons, and the Pico Driver circuit.

The second half features a switch PCB with two 4x4 tactile push buttons, each topped with a custom switch actuator. We also added a circular LED PCB fitted with four warm white LEDs to serve as the light source. To soften and spread the light, a diffuser was placed over the LED PCB.

To control the entire setup, we designed a long Pico Driver PCB that includes the Raspberry Pi Pico and supporting components. A rear lid was added to the enclosure, which holds a DC barrel jack for powering the system via an external 12V supply.

Above the fan, we created a circular opening in the enclosure and designed a custom grill that pressure-fits into place. This grill allows the fan to draw in smoke from the front. On the rear lid, we added another circular section with grills and a top-side opening. This area is intended to hold smoke-absorbing material, allowing the fan to pull air from the front and pass it through the filter section at the back.

Finally, we designed a base stand with a holder that securely attaches the upper body of the fume extractor to the stand. For the enclosure body and lid, we used transparent PLA. The stand and holder were printed in white PLA, while the switch actuators, front fan grill, and grill cover were printed in orange PLA to create a clean, dual-tone aesthetic.

CIRCUIT DESIGN

sch_page-0001.jpg
Screenshot 2025-10-09 180427.jpg
Screenshot 2025-10-09 180356.jpg

The circuit schematic is divided into three main sections: the Pico setup, the AMS1117 voltage regulator, and the MOSFET switch configuration.

At the heart of the project is the Raspberry Pi Pico, which serves as the main microcontroller. To power it from a 12V source, we’ve added an AMS1117 voltage regulator circuit that steps down the voltage to 3.3V, suitable for the Pico’s operation.

To control the DC fan and LED, we use MOSFETs configured as electronic switches. In this setup, the load’s positive terminal is connected to VCC, while the negative terminal is connected to the MOSFET’s drain. When a control signal is applied to the gate, the MOSFET conducts, completing the circuit and powering the load. This allows the Pico to switch high-current devices like fans and LEDs using low-voltage GPIO signals.

We used an AO4406 MOSFET to drive the DC fan and an 8205S MOSFET for the LED. The LED PCB consists of four SMD LEDs connected in series along with a current-limiting resistor.

Both the driver and LED PCBs were designed by tracing the board outlines from the 3D model, ensuring a perfect fit within the enclosure

PCBWAY SERVICE

01.gif
02.gif
IMG_6470.JPG
IMG_6474.JPG

Once the board design was finalized, we placed three orders for three different PCBs. The PICO DRIVER Board PCB and LED PCB were both ordered in white solder mask and black silkscreen. For the Switch PCB, I opted for a purple solder mask with white silkscreen and uploaded the Gerber files to PCBWay’s quote page for fabrication.

The quality was excellent—clean finish, sharp silkscreen, and everything matched the design perfectly.

Over the past ten years, PCBWay has distinguished themselves by providing outstanding PCB manufacturing and assembly services, becoming a trusted partner for countless engineers and designers worldwide.

Also, PCBWay is organizing the PCBWay 8th Project Design Contest, a global event that invites makers, engineers, and innovators to showcase their most creative builds. With categories in Electronics, Mechanical, and AIoT, it’s a great opportunity to share your work, connect with the community, and compete for exciting prizes.

You guys can check out PCBWAY if you want great PCB service at an affordable rate.

LED PCB ASSEMBLY

03.gif
04.gif
05.gif
  1. We begin with the LED PCB assembly process, which starts by adding solder paste to each LED footprint using a soldering dispensing syringe. Here, we are using 63/37 Sn/Pb solder paste.
  2. Next, we pick and place all SMD components, which include four LEDs and a single resistor, onto the LED PCB.
  3. We then lift the PCB and place it on our reflow hotplate, which heats the board from below up to the solder paste’s melting temperature. When the PCB reaches 200°C, the solder paste melts, and all components are securely connected to their pads.

SWITCH PCB ASSEMBLY

14.gif
15.gif
16.gif
  1. Next comes the switch PCB assembly, which was super simple. We just pick and place both 4x4 tactile push buttons into their designated positions.
  2. Then, we flip the board over and solder all the push button pads using a soldering iron.

PICO DRIVER ASSEMBLY

06.gif
07.gif
08.gif
09.gif
  1. Now comes the Pico Driver PCB assembly process, which begins by adding solder paste to all the SMD component pads. This driver board doesn’t include any through-hole components, so we only need to carry out SMD assembly.
  2. We pick and place all the SMD components one by one, starting with the Raspberry Pi Pico, followed by smaller components like MOSFET ICs, resistors, and capacitors.
  3. Once everything is in place, the board is transferred to a reflow hotplate, which heats the PCB up to the solder paste’s melting temperature. As it reaches around 200°C, the solder paste melts and securely bonds all components to their pads.

WIRING PROCESS

11.gif
12.gif
13.gif
17.gif
18.gif
19.gif
  1. We begin the wiring process by referring to the provided wiring diagram. First, the positive and negative wires from the DC fan are connected to the designated FAN terminals on the driver circuit.
  2. Next, we connect the LED PCB’s positive and negative leads to the LED terminals.
  3. Following that, three wires are attached to the A, B, and GND terminals of the switch PCB.
  4. These are then routed to the Pico Driver circuit with wire A connected to GPIO4, wire B to GPIO5, and the GND wire connected to the GND pin.

MAIN CODE

This is the code we prepared for this project and it's a simple one!


// Pin assignments
const int FAN_PIN = 0;
const int LED_PIN = 1;
const int BUTTON_FAN = 4;
const int BUTTON_LED = 5;

// State trackers
int fanState = 0;
int ledState = 0;

// Debounce
unsigned long lastFanPress = 0;
unsigned long lastLedPress = 0;
const unsigned long debounceDelay = 200;

void setup() {
pinMode(FAN_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(BUTTON_FAN, INPUT_PULLUP);
pinMode(BUTTON_LED, INPUT_PULLUP);
}

void loop() {
unsigned long now = millis();

// FAN button logic
if (digitalRead(BUTTON_FAN) == LOW && now - lastFanPress > debounceDelay) {
fanState = (fanState + 1) % 4;
applyPWM(FAN_PIN, fanState);
lastFanPress = now;
}

// LED button logic
if (digitalRead(BUTTON_LED) == LOW && now - lastLedPress > debounceDelay) {
ledState = (ledState + 1) % 4;
applyPWM(LED_PIN, ledState);
lastLedPress = now;
}
}

void applyPWM(int pin, int state) {
switch (state) {
case 0: analogWrite(pin, 128); break; // 50%
case 1: analogWrite(pin, 204); break; // 80%
case 2: analogWrite(pin, 255); break; // 100%
case 3: analogWrite(pin, 0); break; // OFF
}
}

We started by defining the pin assignments for each component:

• FAN_PIN (GPIO0) is used to control the fan using PWM.

• LED_PIN (GPIO1) handles PWM control for the LED.

• BUTTON_FAN (GPIO4) is assigned as the input for the fan control button.

• BUTTON_LED (GPIO5) serves as the input for the LED control button.

int fanState = 0;
int ledState = 0;

Next is the State Tracking. These variables track the current state (0 to 3) for each output.

unsigned long lastFanPress = 0;
unsigned long lastLedPress = 0;
const unsigned long debounceDelay = 200;

We added a Debounce Logic that Prevents false triggers from button bounce by enforcing a 200ms delay between valid presses.

void setup() {
pinMode(FAN_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(BUTTON_FAN, INPUT_PULLUP);
pinMode(BUTTON_LED, INPUT_PULLUP);
}

In Setup Function we set output pins for PWM and input pins with internal pull-up resistors for buttons.

if (digitalRead(BUTTON_FAN) == LOW && now - lastFanPress > debounceDelay) {
fanState = (fanState + 1) % 4;
applyPWM(FAN_PIN, fanState);
lastFanPress = now;
}

This is the Fan Button Logic, Each button press cycles the fan through 50%, 80%, 100%, and OFF.

if (digitalRead(BUTTON_LED) == LOW && now - lastLedPress > debounceDelay) {
ledState = (ledState + 1) % 4;
applyPWM(LED_PIN, ledState);
lastLedPress = now;
}

Similarly, we have set up LED button Logic that works the same as the fan.

void applyPWM(int pin, int state) {
switch (state) {
case 0: analogWrite(pin, 128); break; // 50%
case 1: analogWrite(pin, 204); break; // 80%
case 2: analogWrite(pin, 255); break; // 100%
case 3: analogWrite(pin, 0); break; // OFF
}
}

We added the PWM Control Function (applyPWM) here the state values are converted into PWM duty cycles, where a value of 128 corresponds to approximately 50% power, 204 represents around 80%, 255 delivers full power, and 0 turns the output off completely.

FAN ENCLOSURE ASSEMBLY

22.gif
23.gif

After positioning the fan inside the front enclosure, we put the PICO DRIVER in its proper location to start the Front Enclosure Assembly process.

ENCLOSURE SWITCH ASSEMBLY

24.gif
25.gif
26.gif

Using hot glue, we secure the Switch PCB in place after placing the two 3D-printed Switch actuators in their respective positions on the front enclosure.

LIGHT SECTION ASSEMBLY

28.gif
29.gif
30.gif
31.gif
  1. We begin by passing the LED PCB into the slot located in the light section of the enclosure. Once aligned, it’s secured in place using two M2 screws.
  2. Next, we install the LED diffuser from the front; it’s designed to be push-fitted snugly over the PCB, ensuring a clean and even light spread.

ENCLOSURE ASSEMBLY

32.gif
33.gif
34.gif
35.gif
36.gif
37.gif
38.gif
  1. A DC barrel jack is mounted on the rear lid of the enclosure. We’ve added a circular opening where the jack is secured using the included nut.
  2. The positive and negative terminals of the DC jack are soldered to the VCC and GND pads of the Pico Driver circuit.
  3. Next, the lid is positioned on the backside of the enclosure and fastened using four M2 screws.
  4. Finally, we install the front grill onto the circular opening above the fan; it’s designed to be pressure-fitted securely in place.

SMOKE FILTER

39.gif
40.gif
41.gif
42.gif
  1. For the smoke filter, we’re using a folded piece of cotton cloth, which is placed inside the smoke filter holder located on the back lid.
  2. A filter grill is then positioned on top of the holder and secured using three M2 screws. This setup locks the cotton filter firmly in place.

When the fan draws air from the front, it passes through this filter section. Smoke particles get trapped in the cotton cloth, helping to purify the air and make the workspace safer.

While the cotton cloth works well for basic filtration, the setup can be improved by replacing it with a carbon filter, which offers more effective smoke absorption and better overall performance.

FINAL ASSEMBLY

43.gif
44.gif
45.gif
46.gif
47.gif
  1. We now begin the final assembly process by attaching the base holder to the front enclosure using an M6 nut and bolt. This joint allows the fume extractor to tilt and adjust its angle as needed.
  2. Next, we secure the base holder to the base stand using two additional M6 nuts and bolts. With this step completed, the full assembly of the fume extractor is finished and ready for use

RESULT

Raspberry Pi PICO 2 - DESK FUME EXTRACTOR
49.gif
50.gif
51.gif

This compact yet powerful build delivers a fully functional DIY fume extractor with an integrated light source. Despite its small size, it’s packed with smart features—including adjustable fan speed, dimmable lighting, a custom-designed enclosure, and a replaceable smoke filter.

At the heart of the system is the Raspberry Pi Pico, which handles control duties with ease. It manages two MOSFETs to drive two separate 12V loads—the fan and the light—all through a simple two-button interface.

Whether you're soldering fine components or working in dim conditions, this extractor keeps your workspace clean, safe, and well-lit.

Overall this project has been completed and all the files are attached, which you can download and make your own fume extractor!

Thanks for reaching this far and i will be back with a new project real soon.

Peace