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.



    • Woodworking Contest

      Woodworking Contest
    • Classroom Science Contest

      Classroom Science Contest
    • Colors of the Rainbow Contest

      Colors of the Rainbow Contest

    15 Discussions


    Question 6 weeks ago

    Very nice simple design. For folks in Canada, what changes are necessary if we want to adapt to 120V ac mains.
    I can see doubling the heater wires in the handle to maintain the same power output. From the schematic maybe half the values of R7, 11 and 12. From the code maybe any heating cooling delays?


    6 weeks ago

    How did you make the calculations for the resistors before 4N25?


    7 weeks ago

    Can you give us more details about heater controller ?

    2 replies
    billakisMaker BR

    Reply 7 weeks ago

    About the wave cycles and the sync with the AC from the plug


    Question 2 months ago

    I'm currently making this from the easyEDA pcb. Thank you, by the way. I'm in the early stages. One question, the Arduino pro mini seems to not have any holes for the lower right 43 pins. Do I just remove those pins ?

    7 answers
    Maker BRjoe-soap

    Answer 2 months ago

    Yes you can remove them(just make sure it is disconnected from the main circuit)

    phivosMaker BR

    Reply 2 months ago

    I had to replace the LiquidCrystalDisplay_I2c library with the hd44780_I2Cexp library. Luckily it was seamless. Unfortunately, I've spent hours trying to troubleshoot the sketch, only to find the library that fixed it


    Reply 2 months ago

    I did it!!!!!!!!!!!!!! The reed switch isnt deactivating when I take it away from the magnet, for some reason.... but it's working!!!!! I will have to read your tune and calibration instructions again. Still figuring out how to set it. What does the 200k precision potentiometer do?

    Maker BRphivos

    Reply 2 months ago

    The 200 k pot adjusts the gain of the op-amp which is used to read the temperature. By adjusting the this potentiometer, you will have to make the actual temperature equal to read temperature by the controller. You can use external thermometer to measure the actual temperature of the hot air gun.

    joe-soapMaker BR

    Reply 2 months ago

    Got it. Thanks. I fixed the reed switch situation and now just trying to find an external thermometer to tune and calibrate it. Thank you for a great instructable


    Reply 2 months ago

    Thanks Maker BR. It works nicely. I've just gotta practise