Introduction: DIY Yihua Soldering Station

If you are into electronics hobby like me, you must have use a soldering iron in order to make your prototypes or final product. If this is your case, you probably have experienced how your soldering iron, along hours of using, gets overheated such a point the handler can also melt the tin.

That's because a normal welder which you connect directly to mains voltage, acts as a simple heater and will heat and heat until you disconnect it. That can damage some temperature sensible parts when the solder is overheated.

And this is why the soldering station are the best option for electronics. (if you only solder cables, maybe this is not for you).

The problem is that solder stations are a quite expensive and maybe not all people want to spend 60 or 70 bucks on a digital one.

So here I am to explain you how you can create your own cheaper soldering station using a Yihua welder, which is the most common type of welders (and cheapest one) you can find on Aliexpress.

Step 1: Get All Components

To create your own soldering station, you need a solder (not any solder, you need an special one intended for stations) and a power supply to heat it. Also you need a way to measure and control the temperature and also an interface to control the station.

You need to buy the parts according to it specifications, so be aware of not to buy incompatible parts. If you don't know what to buy watch the full post first to decide or buy the exacts components I used.

A generic list of components is:

1x Soldering Station Iron
1x Power Supply
1x Case
1x MCU
1x Thermocouple Driver
1x Relay/Mosfet
1x Interface

In my case, for that project I used:

1x Yihua Soldering Iron 907A (50W) - (13.54€)
1x 12V ATX Power Supply - (0€)
1x 24V DC-DC Booster - (5€)
1x MAX6675 Thermocouple Driver for K Type - (2.20€)
1x Arduino Pro Mini - (3€)
1x IRLZ44N Power Mosfet - (1€)
1x TC4420 Mosfet Driver - (0.30€)
1x OLED IIC Display - (3€)
1x KY-040 Rotary Encoder - (1€)
1x GX16 5 Pin Male Chassis Connector - (2€)
1x OPTIONAL 2N7000 Mosfet - (0.20€)

TOTAL: ± 31€

Step 2: Measurements and Planning

The first step I had to do is planning the project. Firstly I bought the Yihua welder cause was on offer and I wanted to create the station around it, so when it arrives, I had to measure everything about it for ordering the correct parts needed for the station. (That's why is important planning everything).

After a while searching for the Yihua connector, I found that is a GX16 of 5 pins. Next step is to find the purpose of each pin. I attached a diagram I made in Paint of the pin-out I measured.

  • The two pins on the left side are for the heating resistor. I measured a resistance of 13.34 Ohms.
    According with the datasheet which says it can handle a power up to 50W, using the equation V=sqrt(P*R), give me a maximum voltage @50W of 25.82 Volts.
  • The center pin is for the shield grounding.
  • The last two pins on the right side are for the Thermocouple. I connected those to a meter, and after doing some measurements, I conclude that is a K type thermocouple (the most common one).

With this data, we know that for read temperature, we need a Thermocouple driver for K type one (the MAX6675 K) and for powering up, a 24V power supply.

I had a few 500W ATX PSUs at home (a few of them, yes, so you will see them in future projects too) so I decided to use one instead of buying a new PSU. The only cons is that the maximum voltage is now 12V, so I will not be using the whole power (only 11W) of the soldering iron. But at least I got 5V outputs too so I can power up all electronics.

Don't cry cause of losing almost all power of the iron, I got a solution. As the formulae I=V/R tell us that powering the solder with 24V will draw 1.8Amps of current, I decided to add a boost converter. A 300W DC-DC Boost converter, so for outputting 2 Amps is just enough. Adjusting it to 24V and we can almost use the 50W capability of our welder.

If you use a 24V PSU, then you can skip this whole booster part.

Then for electronics I got an Arduino Pro Mini and an IRLZ44N mosfet for controlling the heating (can drive >40A) drived with an TC4420 mosfet driver.

And for the interface, I simply used a rotary encoder and an OLED IIC Display.

EXTRA: Because my PSU has an annoying fan always running at max speed, I decided to add a mosfet to drive it's speed using PWM from the Arduino. Just for taking out that ultra-speed fan noise.

MOD: I had to disable the PWM and set the fan at max speed because it made an horrible electronic noise when I applied the PWM regulation.

Step 3: Prepare the Case

As I used an ATX PSU which has a good metal free-spaced case, I decided to use it for the whole project, so it will look cooler.The first step was to measure the holes to do for the connector and the rotary, and place the template in the box.

I decided to use the old cables hole of the ATX for the Display.

Next step is to make those holes with a drill and clean it with some sandpaper.

Step 4: The Software

The last step before assembling everything is to make the main software which is going to operate the station and make it functional.

The code I write is very simple and minimalist. I use three libraries: one for driving the display, other for read data from the thermocouple and the last one for save calibration values into EEPROM memory.

In setup I only initialize all variables used and all instances of libraries. Also here is where I set up the PWM signal for driving the fan at 50% speed. (mod: due to noise, I finally adjusted it to 100%)

In loop function is where all magic is happening. Every loop we check if is time to measure temperature (every 200ms) and if temperature is different from the established one, it turns on or off the heater to match it.

I used the Hardware Interrupt 1 for detect each rotary encoder rotations. Then, the ISR will measure that rotation and set the temp accordingly.

I used the Hardware Interrupt 2 for detect when the button of the rotary is pressed. Then I implemented a functionality for turning on and off the soldering iron with his ISR.

Also the display is refreshed every 500ms or if adjusted temp varies.

I implemented a calibration functionality by double-clicking the knob button where you can compensate the temp difference over the heating-element sensor and the external iron tip. By this way, you can set the correct iron temperature.

You need to use the knob to adjust the offset until the station read temp is equal to the iron tip temp (use an external thermocuople). Once is calibrated, press the button again to save it.

For everything else, you can watch the code.

Step 5: Assemble Components

Following the circuit diagram, is now time to assemble all components together.

Is important to program the Arduino before assembling it, so you have it ready for first boot.

You need also to calibrate the Step-up booster before so you can avoid damaging the soldering iron or mosfet due to over-voltage.

Then connect everything.

Step 6: Test and Calibration

After assemble all, is time to power it up.

If solder is not connected it will be displayed the message "No-Connect" instead of the temp. Then you connect the solder and now the temperature is displayed.


To start the calibration you must set the temperature to the one you will use the most and then start heating the solder. Wait for a minute for the heat to transfer from the core to the outer shell (iron tip).

Once is heated, perform a double-click to enter in calibration mode. Use an external thermocouple to measure the temperature of the tip. Then enter the difference between the read of the core and the read of the tip.

Then you will see how the temp varies and the solder starts heating again. Do it until the adjusted temp is equal to the read one of the station and the read one of the tip.