Thrift Shop Fume Extractor Build
Thrift Shop Fume Extractor Build
I investigated several fume extractor options and the only reasonably priced ones I found were the fixed position boxes that sat intrusively on the bench and didn't actually remove the air from the vicinity -- the bigger types with their own ducts and a central filter was what I was looking for, but they were all very expensive...
While at the thrift shop the other day I found a cheap air purifier with a big fan in a sturdy box with removable charcoal filter at the back. Turning it on reveals the fan seems to work well but doesn't smell so great after a minute or two:
Popping the back open reveals a bunch of high-voltage gear including a UV filter and some metal plates wired up to it -- not sure what it's all for but some of it had started to corrode near the plates and eat through the high voltage contacts; so it's all coming out:
Looking at the PCB we find a nice selection of bulging caps and high voltage stuff that's unrelated to the fan control, so they're quickly revoked with the solder extractor -- I'm really glad I was the one to pick this up from the thrift shop instead of someone who might have attempted to use it as-is:
Unfortunately after removing those components, the on-board micro shuts the system down after a second or two; checking the traces shows there's two lines being used to monitor the high voltage components and removing them has trigged some sort of safety interlock.
Looking up the micro's datasheet I can only find it in Chinese and it's not very helpful except to discover that the fan control is wired to a PWM output which the original control used set three speeds via front buttons. Instead of mucking about with the unknown micro I simply de-activated it and used an ATTiny-85 based Arduino with a potentiometer to translate the analog voltage to a digital PWM signal for smooth variable speed control:
And for the code all I needed to do was a basic analog potentiometer to digital PWM translation loop:
Code:
int pwm = 0; // Fan Control
int pot = A1; // Potentiometer Input
int t = 0;
int v = 0;
void setup()
{
pinMode(pwm, OUTPUT);
pinMode(pot, INPUT);
}
void loop()
{
// Read voltage from potentiometer (0-1023 = 0V-5V)
t = analogRead(pot);
// Convert to range 0-255
v = int((float(t) / 1023.0) * 255.0);
// Clamp edges for a firm fully-ON and fully-OFF dead zone
if (v < 10) {
v = 0;
} else if (v > 250) {
v = 255;
}
// Write PWM value to Fan output
analogWrite(pwm, v);
// 5ms between updates
delay(5);
}
After I had the breadboard prototype up and running I quickly duplicated the design onto a DigiSpark shield and uploaded the code to it for a more permanent installation:
Finally for the air-intake itself I had this old pice of flexible duct from a dead air conditioner used to connect it to the window -- A/C was tossed long ago but I'm glad I kept this piece as it's a perfect fit for the removable filter panel on the back of the unit:
Putting everything back together and trying it out; getting a nice airflow pulling in the fumes and no smoke from the exhaust, so the filter appears to be doing it's job -- the right side of the unit is aimed directly towards the restroom, where the exhaust fan for the apartment carries whatever's left outside:
And a final picture with it installed on the bench; fits perfectly on the shelf and can easily be retracted out of the way when not in use:
Looking forward to not having to hold my breath or dodge fumes anymore while working