Air Extractor Controller for AC

A solution to extend a mobile AC exhaust duct with a two speed air extractor

Similar projects worth following
I recently bought a mobile AC which comes with a caveat: the only window I can use is 5m /16ft away from where I need to place the machine.
This is usually not recommended to have such long duct because it creates a significant back pressure which creates an additional load on the AC fan, leading to premature failure.
One mitigation is to put an air extractor in the middle of this long duct and I found one matching the output flow of the AC, keeping in mind the AC has 3 speed settings.

This project aims to design a solution with the following goals:
1. Start/stop the air extractor automatically
2. Regulate the flow of the air extractor based on the flow of the AC
3. Be in an enclosure for safety
4. Help the duct to reach the window without too much bend
5. Keep the AC and its cable intact (to keep the warranty)

Here's  a video of the unit working with the AC:

And its working range and settings from the serial plotter

Here's the whole setup 

Part one : Air Extractor Selection & Flow Considerations

The AC has the following throughputs (min-med-max) : 250/310/350 m3/h 

The matching air extractor has the following throughputs: 280/360 m3/h

Therefore we will match the speeds as below:

AC SpeedMatching Air Extractor Speed

It's important to have slightly higher flow from the air extractor as we don't know how much back pressure either of the fan can handle. We will make sure there's a small opening for additional air intake just before the air extractor in order to avoid creating a low pressure between the two devices.

The air extractor selected : S&P TD-350/125 Z

Part two : Controller

In order to to determine at which speed the AC is running, we will measure the current using a hall effect sensor on an extension cable.

Since this is an AC current, we need to determine the RMS value or the Vpp and therefore need to use a microcontroller. 

This microcontroller will control two relays : One for the on/off switch and one for the min/max speed selection.

The schematics


Part three : Enclosure

The exit of the duct is quite high up (about 2m/6ft) and we need to avoid right angle bends. The enclosure below will support the air extractor on top at a gentle angle.


The version for the Arduino Nano

ino - 4.13 kB - 05/13/2021 at 07:29



Eagle Schematics - Arduino Nano version

sch - 344.74 kB - 05/12/2021 at 18:41



Eagle PCB - Arduino Nano version

brd - 90.02 kB - 05/12/2021 at 18:41



For ATTiny85

ino - 4.82 kB - 05/06/2021 at 05:34



For ATTiny85 - This is to measure and display the base values coming from the hall sensor. We will then use those value in the production sketch, to set the offset, min and max triggers.

ino - 4.69 kB - 05/05/2021 at 07:42


View all 8 files

  • The Arduino Nano Version

    vincentmakes05/12/2021 at 18:39 0 comments

    Since the programming and simultaneous serial monitoring with the ATTiny85 was a massive pain, I made a Arduino Nano Every version of the PCB and the program.

    Now I can adjust the limits and offset easily while monitoring the values in real time. 

    Here's with the plotting of the Vpp value as well as the matching working area of the extractor

    The only issue I noticed is for the lower limit : when I unplug the USB cable, the reading from the Hall sensor varies a bit so if the limit is too low the air extractor keeps running on low speed when the AC is off. I increased a little bit the lower limit blindly in order to correct that and that was fine.

  • Hall effect sensor

    vincentmakes05/04/2021 at 16:34 0 comments

    I received the sensor and wired it. It turned out more difficult than anticipated to convert the signal into a meaningful current. 

    When plotting the signal, one can notice that when the current consumption increases, the peak AC voltage from the sensor doesn't increase. Instead, the peak to peak value increases.

    Overall, it turned out to be easier to measure the peak to peak value (Vpp) without any conversion. It works perfectly in this case because we're not interested into the RMS value per se but rather the relative value: Is the AC switched on, and is it consuming lots of current or not ?

    The updated code (production.ino) takes care of that. I need to run more live tests but so far everything is working as it should be. 

    Here's a demo of the unit working:

  • SIT

    vincentmakes04/29/2021 at 07:43 0 comments

    The board is functioning properly after uploading the sketch: the relays are properly triggered depending on the conditions. However I had issue with the LEDs consuming too much current vs what the Attiny can deliver to both the coils and the LEDs. I should have added some transistors in between to offload that to the power supply. 

    Not a big deal though, after removing the min/max LEDs it still works perfectly. I will just use the sound of the fan and relays clicking as an indicator instead.

    Now onto fine tuning the programming part:

    edit: the steps below have been now replaced by a simple Vpp measurement. It's more than enough for what we want to achieve here. The sketch named Measurement2.ino has been used to display the ADC Vpp values we need.


    What needs to be adjusted is the sampling phase: In order to calculate the RMS value we need to measure the sine wave current at regular intervals. Each measurement is squared and added to the previous sum. The 3 lines below do that:

    currentSampleRead = analogRead(currentAnalogInputPin) 
    currentSampleSum = currentSampleSum + sq(currentSampleRead) ;                                      
    currentSampleCount = currentSampleCount + 1; 

    Using the timestamps of the serial output I found that this set of instructions takes about 180uS to be executed. I need a measurement every 1ms, so I will add a 820uS delay in the loop.

     When a certain amount of measurement as been reached, we can calculate the mean and root of it, giving us the TRMS value.

    The testing phase is a bit repetitive with the Attiny85 though. I'm using an Arduino as ISP in the middle and the process goes as following:

    1. Upload ArduinoISP sketch to the Arduino Uno
    2. Change the board to Attiny and programmer to Arduino as ISP
    3. Change wiring from Arduino to Attiny
    4. Upload Sketch
    5. Change board to Arduino Uno and programmer back to ArduinoISP
    6. Upload empty Sketch to Arduino
    7. Change wiring to serial TX/RX
    8. Launch Serial Monitor
    9. Debug, adjust Attiny .ino file
    10. Repeat

  • Soldering and mounting the PCB

    vincentmakes04/27/2021 at 17:41 0 comments

    I received the PCB, soldered the components and installed everything into the enclosure.

    This is when I realised I was missing a connector for a 3rd N cable on the PCB but that was solved easily outside (and stuffed behind). I will correct that on the schematics and PCB printout.

    I mounted the PCB on one of those DIN mount from Delock and installed it on the rail along the 5V DIN power supply. I also just got a crimping tool and got carried away:

    I still didn't get the hall effect sensor so I can't test everything together.

    However, my next step is to do a dry run where I simulate the AC. In order to do that, I have modified a little bit the production sketch to run the following sequence:

    Air extractor Off -> 5s -> Min Speed 5s -> Max Speed 5s -> Off 5s -> etc.

    The purpose of this SIT is two folds:

    1. Test if what I've done actually works without worrying about the sensor itself which has its own challenges

    2.Test if the Attiny85 has enough computing power. I will feed it a fake value to calculate the RMS value and see if it can keep up as calculating a square root is a greedy process.

    The whole assembly:

  • Enclosure, wooden support and wiring

    vincentmakes04/23/2021 at 19:42 0 comments

    Plenty done for this week : 

    • Wooden support is almost done
    • Wiring of high voltage wire has been done
    • Junction box fitted with a DIN rail installed
    • Air extractor has been delivered and mounted

    Here’s some pictures of the progress

View all 5 project logs

Enjoy this project?



paul.hanna wrote 01/28/2023 at 22:40 point

Hey, cool project. I am hoping to also add an extractor fan to my delonghi portable air conditioner. 

I was curious: how long of a hose did you use to extend your air con's reach? I am thinking about 5m for mine. Also, how did you calculate how much extra fan speed you would need? It makes sense to match it but I wonder if there's a way to calculate per metre of hosing.


  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates