DIY Yihua Soldering Station




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.


Be the First to Share


    • Fandom Contest

      Fandom Contest
    • Cheese Challenge

      Cheese Challenge
    • Teach With Tinkercad Contest

      Teach With Tinkercad Contest



    1 year ago

    mosfet driver does it really necceccary? can i do this w/o driver

    Maddox Lab
    Maddox Lab

    Reply 1 year ago

    The mosfet-driver is the responsible of supply 12V to the mosfet.
    Also mosfet-drivers are used to protect MCUs from the high load peaks when activating and deactivating the gate.

    Of course, the IRLZ44N can be driven by 5V from an arduino pin always you put a resistor between them to protect the MCU from the peaks.
    The only con is that the lower the voltage, the more heat the mosfet disipate at Drain. (That why I used the 12V from the ATX PSU)

    The best non-driver-solution will be to use a BJT transistor to drive 12V to the mosfet from the Arduino (using proper resistors) and a pull-down resistor.

    If you wish, reply me and I can explain how and which values to use.


    Reply 1 year ago

    yes please. i have lots of irfz44n and bjt lying in the box. what would i need?

    Maddox Lab
    Maddox Lab

    Reply 1 year ago

    Here you have two possible solutions: one using a PNP transistor (most common) and other using a PNP transistor.
    The easy one will be using the PNP transistor, as it acts as the original mosfet driver, so you only need to replace the mosfet driver by this circuit and everything will be done. When the MCU signal is HIGH, it will activate the mosfet and the heater will be fed.

    For the NPN circuit, in addition of change the circuit, you must modify also the program, as now it is an "inverted driver", so every time the MCU is LOW, the heater will be fed, and vice versa. That way, you need to modify the program to also invert the output signal to stand-by at HIGH and activated at LOW.

    For the base resistor, 1k will draw only 4.3mA from the MCU and will give 215mA approx of emmiter-collector current.
    For the pullup/pulldown resistor should be enough 10k with a low power dissipation, as you don't need high switching speed.

    I hope you understand everything.
    Don't hesitate to reply if you need more info.


    Reply 1 year ago

    thanks again im gonna go with pnp.


    1 year ago

    I liked it, it looks simple and functional.What is the minimum and maximum temperature of the season



    Maddox Lab
    Maddox Lab

    Reply 1 year ago

    Sorry for late, I was very busy.
    I don't know what exactly are you referring to.
    If you are meaning of the maximum temperature I reached was 550ºC (I did not test it further), and the minimum is the room temperature of course.


    1 year ago on Step 6

    This looks cool. I would want to add a cradle for the soldering iron, though.

    Maddox Lab
    Maddox Lab

    Reply 1 year ago

    Yeah, that's a good idea. I use an external soldering iron stand.


    2 years ago

    When doing long soldering jobs a temperature controlled iron is vital. Stops the handle getting too hot plus quick recovery time. Commercial temperature controlled soldering stations cost a lot of money and this is such a cost effective solution.