DIY Soldering Station with Hakko FX-888 Iron – Part 1

SS_FinalAfter many years persevering with a ‘simple’ soldering iron, I acquired a temperature controlled iron and was amazed at the difference it made to the quality of my work. Recently the iron failed and, although I managed to find the fault and repair it (the temperature sensor wire had broken off), it made me realize that I should keep one as a spare. It is actually quite difficult to repair an iron without an iron!

As I can’t afford to buy an expensive piece of equipment ‘just in case’, I decided to use this as an excuse for a hardware and software project based around a Hakko-FX888 soldering handpiece that I had already purchased.


I had a few requirements for what I wanted to make:

  • Temperature Controlled. The iron needs to provide good temperature regulation, preferably using the PID control algorithm.
  • Compact and light. This iron will spend most of its time stored away and will become the transportable option should I need to use an iron away from my bench.
  • A small character based LCD Display to show current values, settings and to set parameters.
  • Simple User Interface and menu system to access
  • Uncomplicated Controller Circuit that could be controlled from an Arduino Pro Mini.

As with most projects, I started with a search of the internet so that I could ‘stand on the shoulders’ of others. DIY soldering irons are a popular project and I soon settled on a number that were likely candidates. The final design I implemented was mainly based on this design, which met most of my criteria.

Basic Soldering Iron Design

A temperature controlled soldering iron is basically just a heating element and a temperature sensor for feedback. To control the temperature, the system is continuously monitoring the error difference between the set point (the target temperature) and the current value (the actual temperature). This error is used to decide how to adjust the heating applied by the iron, in our case using an Arduino micro controller via PWM.


A common method for doing this is to use PID (Proportional-Integral-Derivative) control algorithm to do this. There is a lot of information about PID on the internet – one of the best explanations I have read for micro controllers is this series of blogs. The PID algorithm is based on the formula


The three K parameters have the following meaning

  • Kp is proportional to the error at the present time.
  • Ki accounts for errors that have accumulated (integrated) over time.
  • Kd is a prediction of future error based on the trend (slope) of the current value. Kd is often not used during aggressive PID, especially when initially driving to the set point, at which time a more conservative control regime using Kd can take effect.

Controller Hardware Design

SS_Block_DiagramThe iron controller is based on the original design with changes to accommodate the LCD display. The high level block diagram for the project breaks it down into its major components:

  1. Arduino Pro Mini to manage the system.
  2. Temperature sensor amplifier for the relatively small analog signal read from the iron.
  3. Power control for the resistive heating element
  4. Character based LCD display (1602 in this case).
  5. Rotary encoder with built-in switch.
  6. A switching power supply (24V 6A, like this one on eBay)


The Schematic and PCB design in Eagle CAD format are available here.

The circuit schematic is straightforward and is mostly described in the source design. The power control elements center around the IRFZ44N MOSFET connected to a PWM pin on the Arduino Pro Mini. The output from the PID calculation (0-255) directly drives the PWM output.

An LM358 OpAmp is used to amplify the signal from the sensor. The trimpot R2 is used to set a reasonable value for the analog input during calibration (more on that in Part 2).

SS_Buck_ConverterThe Arduino Pro Mini, amplifier and LCD require a +5V interface. During the design I assumed this voltage would be supplied externally, as I was concerned that the usual LM705 based power supply would be really inefficient and create too much heat dropping 24V to 5V. It was only after the PCB was made that I found a tiny buck converter on eBay that would do the job really efficiently. The DSN-Mini360 buck converter is specified with input 4.75V to 24V and adjusted output 1V to 17V at 1A. You can just see it mounted to the back of the PCB, poking out from the edge of the fully populated board below. The output of the buck converter needs to be adjusted to 5V before it is connected to the board to avoid damaging the Pro Mini and LM358.

The LCD interface is for a two-wire SR piggyback board (details here). This can be easily changed to a more common I2C interface if required.

The PCB was designed to be single sided so that it could be made easily on my CNC setup.


Once populated, the board was complete and ready for calibration, and testing with the software, which will be covered in Part 2.

Part 2 – Software, Assembly and Calibration


7 thoughts on “DIY Soldering Station with Hakko FX-888 Iron – Part 1

  1. J Anderson

    Hello Marco,

    Thanks much for this write up. I plan on making one of these myself and appreciate that you have done some work before me.

    What is the inductor for? Everything else makes sense but you don’t mention the purpose of this part.



    1. The purpose is described in the original article referenced under the heading “Minor Schema Change” towards the end. It basically absorbs the energy stored in the soldering iron coil when it is switched on and off. It protects other components from over voltage.


      1. That makes sense. Could another option of trying to protect against this be either another diode (like you have with 1N5408) or perhaps like effective a Zener diode that goes directly to ground if the voltage goes past the desired amount.


      2. Not sure as I am not an electronics expert. As far as I know, the energy is absorbed by inducing a magnetic field, which may not be the same if you replace the inductor with a diode.


      3. Got it. I assume that since there is a diode in the MOSFET you used that another method of voltage suppression isn’t necessary and if so, another diode would probably be fine.

        Thanks for the explanation. I’m just trying to understand electronic fundamentals more as I go along. I appreciate your blog!


    1. Thanks Peter, credit also to the original project this was based on. The CNC machine is a ShapeOko2 with TinyG controller. I wrote a bit about it in some of my early posts.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s