About: Electronics hobbyist

In this Instructable you can learn how to make a hot air gun controller using Arduino and other common components. In this project, PID algorithm is used to calculate the power required and is controlled by a isolated Triac driver.

this project uses a handle compatible with 858D, it has a K-type thermocouple, 700 watt 230 VAC heater and a 24 VDC fan.

This controller is efficient and reliable compared to the commercial one and is easy to build.

Step 1: Gather the Parts.

Here is the part list and link from where you can order them.

1. Modules and Boards :

> Arduino Pro Mini

>1602 LCD + I2C module

>Rotary encoder with push button

2. Tools :

>Hot Air Gun Handle :

>Hot Air Gun Handle Holder + Nozzle :

3.Semi-Conductor devices :

>BTA12-600B Triac:



>MOC3021 DIAC :



>UF4007 DIODE :

4.Connectors :





Female Headers :





>200K TRIM POT :










Buzzer :

Step 2: Wiring

The following modification should be made to the arduino pro mini to use it. Since, the I2C pins of arduino A4 and A5 are not PCB friendly. The pins A4 to A2 and A5 to A3 should be shorted as in the picture.

Wiring for I2C LCD module:

I2C Module<--------------> Arduino Pro Mini





Wiring for Rotary encoder module:



+<-------------------------------->NC(Not Connected, code uses inbuilt input pull-up of arduino)




Wiring of Handle:(7 wire)

3pin connector - (Green, Black, Red)

Red wire<----------------------->Thermocouple +

Green wire<-------------------->Reed Switch

Black wire<--------------------->Common ground.

2 pin connector - (Blue, Yellow)

Blue wire<--------------------------> Fan +0

Yellow wire<------------------------>Fan - (or GND)

2 Big pin connector -(White, Brown)

White wire<-----------------------> Heater

Brown wire<----------------------> Heater(no polarity)


Thewiring of the hot air gun handle may be different for different type of wands. So, refer to the wiring diagram in the photo and follow the path of the wire to find the respective pins.

Step 3: Circuit Diagram

The circuit consists of 3 parts mainly.

The Interface Part :

It consists of a 1602 LCD display with I2C module and a rotary encoder with push button. The display shows the set temperature, current temperature, Fan speed and applied power and current status of the handle. The encoder is used for various inputs and to navigate through the options and controls.

The Sensor Part :

It consists of a K-type thermocouple for temperature sensing and a reed switch for determining the position of the handle. The thermocouple's voltage is amplified by the op-amp to a voltage level measurable by the arduino. The gain of the op-amp is controlled by 200K trim pot.

The Controller Part :

There are mainly 2 controllers in this circuit. The one is a simple PWM Fan speed controller with a MOSFET. The other one is a isolated controller for heater. It consists of a TRIAC driven by a opto-coupled DIAC and it is done by controlling the number of wave cycles that is delivered to the heater. The 4N25 optocoupler helps to maintain the sync with the AC waveform.

Step 4: PCB

The circuit of this project is a bit complicated, So I recommend you to use a printed board than a dot PCB. If you want to make your own PCB I have attached the eagle files in this step. But, If you want to get them done by a PCB manufacturing company you can order it from JLCPCB

. You can view the Easy EDA design through this link :

Step 5: The Code and Libraries.

The program is the most crucial part of the project and thanks a lot for sfrwmaker writing the program. The program uses PID algorithm to control the power to maintain the set temperature. It works by controlling the number of wave cycles delivered to the handle per second.

When the controller is turned on the wand will be in OFF state. By rotating the encoder the temperature and fan speed can be adjusted. Short press of the encoder will switch between the Fan speed and Set temperature adjustment.

The Hot air gun starts heating as soon as it is lifted up from the holder and shows Ready and make a short beep when it reaches the set temperature. It will turn off heating as soon as it is put back into the holder. But, the fan will continue to blow until it reaches the safe temperature. After the temperature falls below 50 C it will make a short beep and displays COLD.

When the hot air gun is off, the controller will enter Setup mode if the encoder is long pressed.

The setup mode has Calibrate, Tune, Save and Cancel and Reset Config options.

Note: If you are using PCB from easyEDA then you should change the pin number of reed switch to pin no. 8 and Buzzer pin to pin no.6

you have to install the Commoncontrols-master library andtime-master library for the code to work properly.

go to this GitHub repository to download all the files in one zip file:

Step 6: SETUP

The temperature readings should be calibrated with the original value to get reasonable readings. So, in order to do that you should follow the following steps.

First, go to the setup mode and select the Tune option.In the tune mode the internal temperature (0-1023) is displayed on the screen.Rotate the encoder to manually select the applied power to the hot air gun. Heat the gun to 400 degrees.When the temperature and dispersion become low, the controller beeps. Then tune the trim-pot to set the internal temperature about 900 (in the internal units). Long press to the encoder return to the menu

Then, go to the setup mode select Calibrate option. Choose the calibration point: 200, 300 or 400 degrees, press the encoder. The hot gun will reach the desired temperature and beeps. By rotating the encoder, enter the real temperature. Then select another reference point and repeat this process for all the calibration point.

After this long press and come to main screen and then again go to Setup mode and select save.

And now the Hot air rework station is done.

Step 7: Finished Project:

For power supply, I have used Hi-link 230 VAC - 5 VDC 3 watt isolated power supply module and for 24 VDC have used 12-0-12 500 mA transformer by connecting the 12 VAC end to a bridge rectifier and center tapped is left unconnected. Then the rectified output is fed to a filtering capacitor and then to LM7824 voltage regulator IC. The output of the IC is the regulated 24 VDC.

Thank you sfrwmaker for writing the code, Checkout the other projects by sfrwmaker:

Thanks to LCSC for their support. LCSC Electronics is one of the fastest growing suppliers of electronic components in China. LCSC has been committed to offering multitudinous, genuine and in-stock items, since its founding in 2011. Aiming to provide the whole world with more superior parts from Asia. More details please visit:

If you have to make your own PCB at home, checkout this instructable:

Thank you.

Be the First to Share


    • Pocket-Sized Speed Challenge

      Pocket-Sized Speed Challenge
    • Super-Size Speed Challenge

      Super-Size Speed Challenge
    • Audio Challenge 2020

      Audio Challenge 2020

    42 Discussions


    10 days ago

    Nice project.
    I have it already asembled. When I powered it on the first screen is displayed very quickly and it goes immediately to -=FAILED=- condition. Any idea?

    Maker BR
    Maker BR

    Reply 10 days ago

    Well usually failed is displayed when it is not getting signal from zero Cross detector circuit.
    Check your AC supply, rectifier and 4n25 optocoupler.


    Reply 9 days ago

    Thanks. It's working. I had some oxidation in the rectifier bridge terminals.
    Now I have another issue: the fan is not turning on. I tested it directly in 24V and it is fine.
    other point: How should I proceed to calibrate the equipment?
    Thanks for supporting.

    Maker BR
    Maker BR

    Reply 8 days ago

    The fan must work properly, make sure not to turn on the handle without fan.
    Set the fan the full speed. It will turn on only when you lift it from the holder.
    If it is still not tuning on check the MOSFET and polarity of the fan.
    Verify that the fan pin in code and hardware are same.
    For calibrating and tuning you need an external thermometer.
    1. Navigate to setup mode by long pressing the rotary encoder.
    2. In setup mode first select tune option though rotary encoder.
    3. In tune mode you can manually control the power applied to the handle through through encoder. Adjust the power so that the temperature of the handle is 400°C.
    4. After that adjust the R3(200K trim pot) to make the internal reading ( shown on the screen to the left on bottom line) to be 900.
    This completes your tune setup.
    Next you have to calibrate.


    Reply 7 days ago

    I have the PWM (5Vpp) signal in the gate of the Mosfet and it's duty cycle is changing correctly based on setup adjust. The problem is that mosfet is not switching and fan is not runnintg. I already tested the transistor out of the circuit and it is fine.
    Is 5V enough to switch this transistor? Have you any clue on what's could be wrong?

    Maker BR
    Maker BR

    Reply 7 days ago

    Yes if your are using same MOSFET and 5v supply it should be fine.
    The threshold gate voltage of IRFZ44 is 3.5v.
    Check your connections once again.
    It's all I can say

    Maker BR
    Maker BR

    Reply 8 days ago

    Calibration is pretty simple go to calibrate mode in the similar way.
    1. There you will have 3 temperatures 200,300,400.
    2. You can select them with the rotary encoder by rotating and short press.
    3. After you select anyone of the temperature the handle will be heated to that temperature and when the temperature stabilises it says ready.
    4. When it becomes ready. It will provide a new input for you to set the actual temperature( measured with external thermometer) at right of the bottom line.
    5.You can enter the actual temperature by rotating the encoder and short press when you are done.
    You have to repeat the procedure for all the three temperatures.
    Then long press to go back to main screen.
    Then save the settings by going to setup mode and by selecting save option.


    27 days ago

    Why 4N25M is used? Can we remove it? And change the error for AC Sync?

    Maker BR
    Maker BR

    Reply 27 days ago

    4N25 is used as zero Cross detector to count number of ac cycles. The temperature of the hot air gun is controlled by regulating the number of ac wave cycles applied to it. So AC sync is very important part. You cannot simply remove it.
    Hope this answers your question.


    Reply 26 days ago

    "The main feature of the rework station is a smooth powering of the Hot Air Gun heater. As far as you may know, the tirac is open when the power applied to its gate and closes when the AC sine voltage crosses zero. Some schematics "cuts" part of sine AC voltage period to decrease the supplied power. This creates distortion in the AC power outlet because when the triac open in the middle of the AC sine curve, the current through the heater is growing very fast.
    This controller switches on the triac when AC sine is crossing zero. The whole AC sine shapes are passed through the triac, so the current growing smoothly and there are no distortion to the AC outlet generated.
    To synchronize the controller with AC power sine signal, zero crossing circuit is implemented on the schematics. The full bridge diode rectifier DB207 supplies the signal to the opto-coupler that generates zero crossing interrupt to the controller. You can replace the diode rectifier DB207 by 4 diodes N4001 or its analog." Got it..


    Reply 26 days ago

    Can we replace it with 4N35 ? I am unable to find 4N25. They both are of same series.


    2 months ago

    Hello everyone! I put together this soldering station. I have a problem with calibration! Help me please! When I try to calibrate in the menu item "calibration" at three temperature points, I have power supply and heating. But no matter how much I wait, there is no sound signal, the words "Ready" and there is no way to enter the real temperature value!
    What could it be??? I also immediately after switching on the station shows the current temperature of about 38-40 degrees, but I do not have so much in the room.
    What am I doing wrong???? Help me please!!

    Maker BR
    Maker BR

    Reply 2 months ago

    After it says ready during the calibration. You can set real temperature by rotating the encoder (real temperature should be measured using external thermometer).
    38-40 degrees room temperature may be calibration problem. I think it will go after calibration is done. Let me know if you still have any doubt.


    Reply 2 months ago

    The problem is that the controller in the "tune" menu is set to approximately 900 units at a temperature from an external thermocouple of 450 degrees. After that, the controller in the “Calibration” menu does not say “Ready” to me. It just holds 200 degrees but doesn't make a sound and doesn't say “Ready”

    Maker BR
    Maker BR

    Reply 2 months ago

    No problem if it doesn't say ready or beep also. When it holds the temperature at 200 see if u can you enter the actual temperature through encoder by rotating it.


    Reply 2 months ago

    Of course not. In this case, there is no need for an audio signal and suggestions for entering the temperature value from an external thermocouple. The calibration point is 200 degrees, the controller dials it on the display and tries to keep it in the region of 200 degrees. But the moment of calibration does not come!
    What to do? Help!!!! )))

    Maker BR
    Maker BR

    Reply 2 months ago

    It seems that you have completed tuning process successfully. Can you send similar video of calibration process so I can see whats going on.


    Question 8 months ago on Step 3

    I have a soldering station and I don't have fan control due to a short I Mangned to find the object that caused the short but I still don't have fan control I was thinking about bypassing the PCB. I can't find a schematic for this station so my thought is what if I could figure out the wires that control the fan pull them and solder them directly to the potentiometer giving me back fan control.I can find the wires that control the fan by opeoing the handle but the potentiometer has 3 terminals so I'm unsure how to do the bypass could anyone lend me some lknowledge on how I can do this bypass?

    Maker BR
    Maker BR

    Answer 2 months ago

    You can't directly control the fan with potentiometer without any external circuit.
    (Atleast not in an efficient manner)
    You can find several pwm fan see controller circuit on Google. You can also try pre- built modules available on market.


    4 months ago

    In the photos(and pcb mask), it looks like you have a solid cement 200k resistor instead of a 3296w trimpot. Please explain.