Upgrading a Woodshop Air Filter to be IoT Enabled




Junky controller included. Source: https://www.machineryhouse.com.au/W326

We have a dust filtration air cleaning unit. This is an AP-12 Hafco Woodmaster brand unit.  It developed an electrical fault for some reason (don’t know don’t care). I was never really happy with the way the machine worked anyway so decided to strip out of the guts and turn it into an IoT enabled device.


I wanted to be able to manually start and stop the filtration unit but also be able to turn it on or off from a server. The idea is to auto-magically turn on the filter whenever dust particles in the air reach a certain threshold, or some other criteria. (More on this later, for the moment we will get the motor turning.)


Below are some photos of the tear down of the control face-plate and main board. The electronics of the controller looked pretty ordinary. The motor was connected to the main board and had 4 cables: ‘L’ ‘M’ ‘H’ and ‘COM’. I assume that common was the neutral line and that ‘HML’ corresponded to ‘high’ ‘medium’ and ‘low’ related to the speed settings.

Standard Electronics… YUK!

I’m only really interested in running the unit at full speed so we just regarded the low and medium speed lines. To validate this assertion I hooked up the blower to the multi-meter on for ac voltage and span the blower to see if a voltage was induced (it was).



Circuit Description:

  • Push button with pull-down resister
  • Solid State Relay
  • 5v Power supply unit – to provide power to NodeMCU
  • Fuse


To set out how the components would fit inside the controller space, all the parts were laid out as they would fit inside.

Parts laid out for CAD

Top left is the fuse and bottom left is a push switch. Along the right side from top to bottom we have: the Solid State Relay, the 5 volt power supply and the NodeMCU micro-controller.

Parts for the controller were modeled in  fusion 360 and then machined on the CNC router.




The 5v power supply is wired to the mains through the fuse. The live core is wired in parallel to the relay terminals. Spade terminals connect the live, earth and neutral cores to the motor wiring loom which allows it to be separated from the control circuitry so each can be worked on independently. The case, motor, power supply and mains supply are all earthed together on a binding post.

Hardware was fitted off to the timber face-plate and all the cables were terminated. Everything was connected up and tested for continuity.

‘bench’ testing

Some powered tests were run to make sure everything was running as expected.


Several different programs are used to validate different functions of the unit. The firmware for the project used on the nodeMCU is available at my github page here.

How it works (basically)

A web server instance is initialised to enable HTTP GET requests to change state. The firmware also supports over-the-air (OTA) updates. The web server allows GET requests to switch the relay on and off. The state of the circuit (SSR) is posted to a web agent hosted on: http://rocket.project-entropy.com

The code was borrowed heavily from the ESP library’s example code “BasicOTA” and the youtube video from ACROBOTIC which helped me to add the OTA  functionality. https://www.youtube.com/watch?v=3aB85PuOQhY 

More detailed descriptions are available within the code.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s