@tutorial: Homemade Arduino soldering iron Temperature Control

What’s up my friends, welcome back. Since I’ve reviewed the TS100 soldering iron, I’ve been working on my own portable soldering iron. So, I’ve made some tests, some research, create the PCB and finally made this project. We need a heating element to heat the iron of course. But we also need a thermocouple to read the real temperature value and then create the PID control.

External Link: https://electronoobs.com/eng_arduino_tut32.php

by: ELECTRONOOBS on 2026-08-04

But using the thermocouple is not that easy, so we also need a thermocouple amplifier IC. I’ve used the MAX66 75, so I’ve bought the SMD IC so I could place it on my own PCB. This IC has a SPI port so I could communicate with it.

~Part List

1 x 24V soldering iron LINK eBay

1 x ATMega328p-AU LINK eBay

1 x 16MHz crystal: LINK eBay

1 x i2c OLED display: LINK eBay

1 x IRF540NSTRLPBF MOSFET: LINK eBay

1 x MAX6675 IC: LINK eBay

1 x buck converter: LINK eBay

1 x J8 plug: LINK eBay

2 x SMD push buttons: LINK eBay

2 x M7 diode: LINK eBay

2 x 0805 1k resistor: LINK eBay

1 x 0805 100R resistor: LINK eBay

2 x 0805 10k resistor: LINK eBay

2 x 0805 22pF capacitor: LINK eBay

4 x 0805 100nF capacitor: LINK eBay

1 x A3144 hall sensor: LINK eBay

Wires LINK eBay


Wire, soldering iron, solder, etc...

~PART 1 - Reading the temperature

Before we build the entire PCB, let's see how to measure the real temperature. For that we need a thermocouple, the MAX6675 IC and the Arduino. Make the connections below. Be careful, the thermocouple has polarity so positive to positive and negative to negative. Onde you have made the connections, you have to open Arduino IDE:

Now, open the next example code and make sure you install the MAX6675 library. You can alos dwonload the library from below and install it. For that go to sketch, include library, add .ZIP library and open the downlaoded .zip file. You could also use the library manager and search for MAX6675.

Ok, copy the code below and compile.

Now, copy the code below and compile in Arduino IDE. If no errors, upload the code to the Arduino using the schematic above and then open serial monitor and set the speed at 9600 baud. Each half second you should have the real temperature printed in both C and F. Heat the thermocouple and see for yourself. The thermocouple has to be a k-type for this example!

~PART 2 - Schematic

We know how to read the real temperature and we know the parts that the iron needs. With all the components I've made the schematic below. We can see the ATMega328p-AU microcontroller connected to different other components. We haev the MAX6675 thermocouple read IC with SPI communication to the microcontroller. Also, main input plug with the reverse voltage diode, the MOSFET to control the power applied to the heater, push buttons with pulldown resistors, some pins for the UART port and OLED display i2c communication. We also have a hall sensor but that was not used in this tutorial. Finally, there are 4 pins for the heater output and thermocouple input.


homemade arduino soldering iron portable schematic
homemade arduino soldering iron portable schematic

Once the schematic was made and I was sure that everything is OK, I've created the layout of the board with a size of 100mm width by 17mm height. I've placed the components as you can see in the layout below with a board of two layers. The uC is on the top layer and the MOSFET on the bottom layer. Alos, on the right, we can see the input of 24V and output of 5V from the buck converter.

Now, that I have the layout, I copper fill the board and create the GERBERS and send those to JLCPCB and manufacture 10 boards. You can download the GERBER files from the link below and order your own boards.

[ESPERANDO CARGA...]

[3D_READY]
Download: Soldering Iorn GERBERs
~PART 3 - Let's mount the PCB

First thing first, let's mount the bare minimum configuration of the ATMega chip. Below we have the schematic for that. This is the configuration for this chip in order to work. It needs a 5V supply, the crystal of 16MHz and two capacitors of exactly 22pF and a 10K pullup resistor connected to reset pin.

Now, I solder these elements on my PCB. The chip, the crystal, two 22pF capacitors and the 10k pullup resistor and then connect an FTDI module like the one in the photo below to the UART port on the PCB. With these 4 elements we can check if the chip works.

Connect the FTDI to your PC and upload any serial communication test. For example, a code with a Serial.println("HI"); . Open serial monitor and test if it works. If yes, we are good to go.

~EXTRA - Burn bootloader

This part is just in case your chip doesn't have a bootloader. I recommend you to buy one with bootloader or, if not, desolder the chip from an Arduino NANO with a hot air gun and in this way you make sure it will work. Besside, the Arduino NANO has the same price as the chip by itself.


To burn the bootlaoder make the next connections between the baord and an Arduino NANO, SPI connection.

~PART 4 - Final PCB

Now, let's solder all the parts but the buck converter. Once all the parts are soldered, the OLED screen, the MOSFET, the MAX6675 IC, all the resistors and capacitors and the input plug, here is what you have to do.


Now, take the buck converter and supply 12V to 24V to it and rotate the potentiometer till you get around 5 or 5.1V at the output. Now, place hot glue on the potentiometer so we make sure it won't move by mistake and bur our microcontroller and the entire board.


Now we have the 5V. We can solder the buck converter to the board and next step is to solder the heater and the thermocouple to the H and T pins. For that, first we have to know which are the positive and negative pins of the thermocouple.


~PART 5 - Connect heater and thermocouple

Open the commercial soldering iron. As we can see below, it has 5 wires. 2 for the heater, 2 for thermocouple and 1 is earth. The heater doesn't matter, it has no polarity. But the thermocouple has polarity so we have to find that. Solder wires to the thermocouple and connect those to a k-type thermometer. If you get a good read, well, now you now the polarity.

Now, solder the heater and thermocouple to the PCB and we can jump to the code part. The heater is marked with H+ and H- and the thermocouple with T- and T+ on the PCB. Don't worry about the heater polarity, but be careful witht the thermocouple.

~PART 5 - Code

Below you have the code that has to be uploaded. Connec the FTDI module to the UART ports and uplaod the next code. Make sure, you ahev the MAX6675 and OLEd libraries installed as we haev seen before. The code is easy. Read all the comments in the code to understand more and also look at my PID temperature controller video. The idea goes like this. We start in sleep mode. We press any of the buttons and get out the sleep mode and then create a PID code. In another loop we read the temperature using SPI communication, calculate the error and finally get the PID value. Next, we write a PWM signal to the MOSFET connected on pin D3. And that’s it. There are other small "ifs" in the code that will increase or decrease the set temperature value or start the sleep mode.

~PART 6 - The case

Once uplaoded, test if it works. Connect 12 to 24V to the DC plug. It will start with the logo, then in sleep mode. press any button and change the temperature. It can reach up to 480 degrees. If it works, is time to add the plastic case.

For the case, I first shorten the stock wires and soldered the heater to my PCB. Next, I first cut the plastic case of the other iron that I’ve bought. I then designed and 3D printed a case for the electronics. The case is made out of two parts and 2 buttons. I use this plastic part from the commercial iron because is more heat resistant and already has the part where I can screw the tip.


I pass the wires through this plastic part and solder them on to my PCB. I remove the UART cables since the Iron is already programmed and test it once again with voltages from 12 to 24 volts. I get the 3D printed case. I fit the PCB inside, the size is peret. When I’m sure everything is ok, I use a bit of hot glue. I add the small plastic buttons and close the top part. And there you have it.

Download: Main Case For Soldering Iron

Glue the case and the project is done. Now, connect the power and use the buttons and test if it can solder well. Let’s talk a bit about it and future improvements. First of all, with a battery of 14V I couldn’t reach the maximum temperature. But with 24V It had no problems. Other disadvantage is the bad quality of the iron metal tips because it is very cheap. The heater gets quite hot but the heat is not well transferred and you end up with a bad iron.

I think I’ll make more research and test with the TS100 tip because it is a very high quality one and work’s very well. Also, next version will have a hall sensor and a magnet on the stand so I could implement auto sleep mode in the firmware. There you have it my friends. You have all the files in this tutorial.


If you consider helping my projects, here is my PATREON page, THANK YOU!


Leave a comment

Please login in order to comment.

Comments

ADVERTISERS
ADVERTISERS
PCBWAY