Cheap diy hot air soldering station

By | June 7, 2018

Continuing with my goal of adding new toys to my lab/man cave/junkyard I decided I needed a hot air soldering station for smd soldering. I have been using the one I have at work but always wanted one for myself.

Although ready made chinese stations can be bought for about 100USD that was about 80USD more than what I was wanting to spend. Also due to its price, volume and weight I would have to deal with customs for sure, and on this tiny country by the sea that is a nightmare.

The main part of the station is the handle, I got mine from aliexpress for about 10USD shipped. Also bought a stand which includes a magnet so I can use the reed switch for a sleep mode.

This contains a 220V heating element, a 24v fan, a termocouple and a reed switch.





Since there is no point in reinventing the wheel I used the same kind of hardware as with my soldering station, and reused most of the code. So this also uses an STM32F103 together with a 0,96″ OLED display and two rotary encoders.

The full schematic is very simple:

Since I wasn’t planning on having a PCB made for such a simple circuit I took a few shortcuts. The CPU is used with one of those ready made boards called bluepill, you can get one from aliexpress for something like 1.50USD, just search for something like “stm32 minimum system development board”. It looks like the picture below:

I also cheated on the voltage conditioning circuit and used an of the shelf lm317 dc-dc converter board. This costs about a buck.These and the other components were placed on one of those prototype boards. And that was it.

As always everything is available on gitHub.

On the next post I will describe the firmware features and post a video of this in action.

Stay tuned!

40 thoughts on “Cheap diy hot air soldering station

  1. Philip

    Hey Jose, I’m also working on a the same sort of project, as in I’m also using the same handle and micro controller board.

    Could you please post a picture of how your final board looks like?

    Could you please email me? (since you now have it if I comment here)
    I have some suggestions on small changes you can make to this circuit to improve it’s performance.

    1. jose Post author


      As referred on the post I didn’t bother to have a board made so this is assembled on one of those PCB proto boards. I’ll try and take a picture on the next few days but it wont be pretty to look at.


    could you upload the reverse firmware?
    I totally hopelessly turn to source tul complicated combo and hard !!!

    1. jose Post author

      Hi, sorry for the late reply I was on holidays and your comment was somehow considered spam.
      You can find the bin file here

  3. cyberpex


    I bought a Solder/Rework Hot Air Station from KSGER.

    I am fascinated with you work, so I bought this solder station and a STM32 dev Board to reproduce what you do with the STM32 Solder station.

    The station that I bought works, but it wil be great if somebody can make an open source firmware to enhace the features.

    Thanks for you work and inspiration Josรฉ.

    Best Regards!

    1. jose Post author

      Hi! Thank you for your kind words!
      Great that you felt inspired to start your own project. Let me know if there is something I can help you with.



  4. jozsef

    Stm32 is already selected but does not set up the configuration menu because stm32 pb8, pb7, pb6 does not respond to the encoder2!:(
    but encoder 1 does not respond to pb5, pb4! ๐Ÿ™
    Is bug software not active mcu feet?
    Is this a project tested really does it work?

    1. jose Post author

      Hi, it seems there is an error on the schematic. The code does work, I use it almost every day.
      The correct connections as defined on the code are:
      #define ROT1_LEFT_Pin GPIO_PIN_6
      #define ROT1_LEFT_GPIO_Port GPIOB
      #define ROT1_RIGHT_Pin GPIO_PIN_5
      #define ROT1_RIGHT_GPIO_Port GPIOB
      #define ROT1_CLICK_Pin GPIO_PIN_4
      #define ROT1_CLICK_GPIO_Port GPIOB
      #define ROT2_LEFT_Pin GPIO_PIN_9
      #define ROT2_LEFT_GPIO_Port GPIOB
      #define ROT2_RIGHT_Pin GPIO_PIN_8
      #define ROT2_RIGHT_GPIO_Port GPIOB
      #define ROT2_CLICK_Pin GPIO_PIN_7
      #define ROT2_CLICK_GPIO_Port GPIOB

      I will fix the schematic as soon as I can

      1. jozsef

        I’m glad to work! Can you upload a video from a movie?
        you could upload an improved firmware i unfortunately do not get arm mcu!
        Only arduino beginner!

  5. jozsef

    so I encode both encoder and a good menu!
    published a bad drawing to keep others away from it!

  6. jozsef

    Is rx1 ptc controlling its role or just measuring external temperature?
    What is the rx1 ptc value?

  7. jozsef

    I set up a complete control first test
    set 100c set values keep the big problem is when it comes back to sleep mode slepp mode 50c is set but when it goes back set modbol sleep modba 100% pwm works heat loss gets off quickly manual shutdown must be manually distributed with the plug!
    There is a big software bug! ๐Ÿ™ ๐Ÿ™ ๐Ÿ™

    1. jose Post author

      I have no idea what you are trying to do, you can’t use the controller at those temperatures and expect accurate results. This is an heatgun system used for electronics so it will have a working temperature above 150C, below that neither the hardware or the firmware will provide accurate results.
      Again, I use this on a day to day basis so there are no bugs no software bugs as you state.

  8. jozsef

    Do you have any idea what could be a problem at sleep?
    temperature calibration I’ve done 200..300..400c …. fhinis steps!
    I would like to use your rule but to put a gun on death!

    1. jose Post author

      I don’t understand what you mean, but with all your comments and the way you describe your issues I strongly believe this project is not for you and you should just buy a ready made station.

  9. jozsef

    I just built what you published!
    Pity to make money and time spare! ๐Ÿ™

  10. Evgeny

    Hello Jose! Do your project, thank you! Flashed the microcontroller, the display works, everything should work. If it is not hard for you, the PTC component rating is DUMMY. Name. Sorry for the translation, I’m from Russia, I do not know foreign languages, microcontrollers began to learn. I am 50 years old. Thanks in advance!

    1. jose Post author

      Sorry for the late reply, you can just use a standard 10K NTC.

  11. keiser1080

    Hi Jose.

    Do you plan to do a dual station with both an hot airgun & solder?
    It will be nice to have some nice opensource lowcost dual station.
    inside such box =>
    Enclosure : 10 euro
    air gun + support : 14 euro = 10 euro + 4 euro
    stm32 : 1,5 euro
    lm317 : 0,5 euro
    24V power supply : 5 euro
    iron handle + tip : from 5 euro +-
    double oled : 5 euro (2,5 each)
    other stuff (connector & other : 5 euro

    so for 50 euro an opensource opendhardware station.

  12. iLLiac4

    Hi. Can you write step by step with pictures for this heat gun and list with needed components?


    1. jose Post author

      Nope, sorry, don’t have time for that. The BOM you can produce from the eagle schematic.

  13. jose Post author

    I think I used a 10K NTC but honestly I can’t remember. PWM works from 0 to 100 what makes you think otherwise?
    EDIT:Looking at the code the resistor should be about 470OHM, you can adjust that by changing the NTC_R value on tempsensors.c. I must have put a wrong value resistor on the board and just adjusted it in the code.

  14. sanelo

    thanks, r22 470ohm and ntc 10k works ๐Ÿ™‚
    about pwm, i use irf520 and fan blow on 90-100
    below 90 not blow

    1. jose Post author

      Try checking the voltage going to the fan when below 90%. Also try adding a capacitor in parallel with the fan. Some fans use electronic control circuitry which don’t allow varying speed by controlling voltage, but I doubt one of those would be used in one of this handles.

      1. sanelo

        Fan blow from 6 to 24v if connect to regulating power supply
        Maybe irf520 not good choice

    1. jose Post author

      moc3023 doesn’t have zero crossing detection but it shouldn’t be an issue with a resistive load. No idea why moc3043 isn’t working for you. Your mains voltage is 230-240V right?

  15. T.T

    Hey Jose, great work!

    This caught my attention (after finding your site thanks to your STM32 t12 soldering station firmware upgrade! Linked from eevblog – I will be doing this upgrade once my kit arrives)

    In saying that, this project has inspired me again! ๐Ÿ˜€ Very nice, I’ve been pricing components and I am interested in putting together this STM32 based hot air station (for learning and to end up with a useful tool – hopefully if all goes well!)

    In the post, it says you will be posting another section about the firmware features + a video of it in action!
    I hope you have this still in mind! As I am interested!

    Please continue with your posting about this project! (I’m sure it would help others to get into it – as I feel this project should be more popular in the forums than it is – similar to your T12 project ๐Ÿ˜‰ )

    All the best!

    1. jose Post author

      Hi, I did make a video but the quality was so lousy that I quickly removed it from youtube. I doubt I will have time to remake it anytime soon. For me this projects are not an end by themselves but the means and tools which allow me to work on other stuff. Currently I’m working on an homemade spectrum analyser and I use these tools everyday.
      Also 3 kids (well one has 21 so maybe not a kid anymore) and a job doesn’t leave the time I wanted to document the stuff I work on as well as I would like.

      1. T.T

        Thanks for getting back to me!

        That is definitely understandable ๐Ÿ˜‰ Time can be hard to find with so many other things going on.

        A homemade spectrum analyser sure sounds interesting! I do hope you will keep this site updated from time to time, as these projects so far have been very interesting.

        I will continue going forward with this project, thanks again for making it available!

  16. edcrane


    Thank you for this project. I have made both heatgun, and soldering station.
    The heatgun fan wouldnยดt spin below 90%, so I reduced the Pwm frequency( by increasing Tim3_Prescaler).
    Now it works as expected.
    The soldering station is working too, but the temperature fluctuates +/- 10 degrees.
    Can anyone post pids for Hakko tips. I have tried the pids from the video with the jbc tip.

    1. jobit joseph

      Can you please share the updated code with fixed fan pwm frequency

  17. Mick_sh


    Hi Jose, a made HeatGun station based your project.
    Thanks you for good job!
    All works well, use it everyday, but notice: if, when in STBY mode, start adjust temperature, heater starts without start turbine. Potentially, it’s not safe. Problem of reduced fan speed range i solved with capacitor ~1mF in parallel fan pins.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.