Arnov Sharma
Published © MIT

DIY Soldering Fume Extractor - PICO Edition

Made a fume extractor for my soldering setup powered by Raspberry Pi PICO

BeginnerFull instructions provided1 hour137
DIY Soldering Fume Extractor - PICO Edition

Things used in this project

Hardware components

Raspberry Pi Pico 2
Raspberry Pi Pico 2
×1
PCBWay Custom PCB
PCBWay Custom PCB
×1

Software apps and online services

Fusion
Autodesk Fusion
Arduino IDE
Arduino IDE

Hand tools and fabrication machines

3D Printer (generic)
3D Printer (generic)

Story

Read more

Custom parts and enclosures

STEP FILE

Schematics

SCH

Code

code

C/C++
// 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
  }
}

Credits

Arnov Sharma
353 projects • 361 followers
I'm Arnov. I build, design, and experiment with tech—3D printing, PCB design, and retro consoles are my jam.

Comments