Genesis of the Soldering Iron Driver

We’ve been following Arhi’s work on an open source soldering station for a while now. Now that the latest version is working, he documented the complete process of designing the Soldering Iron Driver project. See his initial ideas and how they developed over 3 generations of into a final “works for me” version.

Soldering Iron Driver (SID) is finally in the “works for me” phase so I think it is time to write a short resume of what happened during the design / short history of the project.

Below you can read the original article, quoted with permission.

Generation 1 of this project was based on PIC16F690 soldered on a stripboard (pertinax with holes) and a 1602 lcd was attached to it with some flat cable. 2 buttons (plus, minus and “both” were “ok”) and one op-amp amplifying the output of a voltage divider between Gordak soldering iron sensor and 10 K resistor. The idea was to have second soldering station parallel to my main soldering station so that when I need to work with 2 different tips I do not need to pause for iron to cool down in order to change them. I ended up with classic chisel tip in the Gordak while my main soldering station had BC tip that is great for drag soldering. Firmware was super simple, display was showing raw ADC values for sensor input and same for the target value. There was no conversion from ADC values to degrees Celsius but that actually didn’t make the station any less useful. I knew for e.g. that for SMD soldering perfect value of ADC was 620, I had no clue what temperature that was but I didn’t really care as it worked flawlessly. Generation 1 used simple hysteresis based on/off temperature control mimicking mechanical thermostat. No fancy PID control was used nor it seamed necessary.

While talking to some people some “genius” told me (and me, moron, believed without testing it) that HAKKO clones use thermocouple as sensor. Since it’s fairly simple to read thermocouple (as it is documented compared to actual HAKKO sensor) I decided to go and make generation 2 so that I can have “accurate” display of the temperature.

Generation 2 of this project started with a very bad theory – I believed that HAKKO clones use thermocouple type sensor. On the other hand, this project started with a very good decision, and that was to create a project log hence I have a history of how project grows and why some decisions are made. Forum at the time seamed like a best place to do so (I still believe that was a great decision). International membership, ppl with experience not being afraid to share knowledge … convinced me to do it there instead of logging it on my own blog or some local, Serbian, forum. I was considering also but I finally decided to go with for reasons I’ll keep for myself :D

Schematic and PCB for generation 2 were done very fast and I sent gerber’s to be manufactured before I actually tested it at home. It is first time in my life that I believed something “works” without testing it first. I did make some tests at home, for e.g. I tested the analog part, but I tested it by attaching external Ktype thermocouple, I never tested it with real HAKKO sensor. When PCB’s arrived from SEEEDSTUDIO, after I assembled them, I connected the Gordak soldering iron and – puf, nothing happened, it didn’t work. The signal on the ADC input was going crazy and made no sense at all. After 10 minutes of debugging I figured out that my initial design with generation 1 was more/less correct and that HAKKO clones use RTD/PTC and not thermocouple. I was freaking out but it was too late. In order to try to save the day I created a small voltage divider on the input to the thermocouple amplifier and it partially worked. The signal made sense but it was incredibly noisy.

I managed to clear up the noise in software implementing a simple low pass filter in firmware but it’s not really what I hoped to accomplish. In order to properly read RTD/PTC you have to push some constant current trough it. I found that 1mA works like a charm and when I did that the signal was as clear as I hoped for.

In order to at least partially solved the doomed project (I had 10 PCB’s) I decided to check out if there are some soldering irons with TC sensor and I found that local store sells Solomon HQ30 soldering iron that is exactly what I need, 50W iron with TC sensor. I purchased it and tested it with generation 2 electronics and it worked like a charm.

Generation 2 used same PIC16F690 as generation 1 with same temperature control simulating mechanical thermostat. Since I had some free space in flash I decided to try to fit PID implementation inside. Reorganizing the firmware and moving some tables and strings from flash to eeprom I managed to squeeze PID implementation in firmware.

Generation 2 had another serious design flaw; 7805 was supposed to secure 5V required for the mcu, op-amp and lcd but it was unable to do so. 35V on the input was just too much for it to handle even with huge actively cooled heat sink. After few seconds the 7805 would shutdown because it overheats. The solution – DCDC converter on a separate board converting that 35V to 5V connected instead of 7805. This was my first DCDC circuit design so I needed a lot of help, and a lot of ppl on forum jumped in to help. A friend also made one DCDC for me so I can continue testing the SID.

As I like HAKKO irons way better then Solomon ones and since I have bunch of tips for HAKKO irons I wanted to have soldering station that support HAKKO soldering irons. This made me go forward and fix all this problems by designing generation 3 soldering iron driver.

Generation 3 of the soldering iron driver is continuation of the development of the same project leaning on the generation 2 design. It is logged on the same thread on the DangerousPrototypes forum. This time I decided to do it smart and think before I order and consult more with colleagues. Ian Lesnet, owner of DangerousPrototypes, had the idea that new generation be USB enabled (easier debugging, easier firmware upgrades..). I checked my drawers and I found PIC18F2550, great little USB enabled microcontroller with proper hardware to run generation 3 driver. It has USB, UART and enough pins for all functionality I wanted to implement. Before the PCB’s are made generation 3 schematic was tested on breadboard so this time I expected no surprises. PCB design on the other hand was not something I payed too much attention to.

I designed the PCB “for myself”, so you can find some parts to be SMD, because I had them as SMD, some other parts are PTH/DIP, again because that’s what I had in my “drawers”. Most of the PCB I routed blindfolded and the rest of it is done by auto router. It works, it’s not ideal, but works so I didn’t care much, especially after everything worked from the first try when the pcb’s arrived from manufacturer (ITead this time). Everything worked from first go, HAKKO 907ESD, Gordak 907, Solomon HQ30, Weller PES51… it does not look good, but it works great :)

DangerousPrototypes version of the SID was designed in parallel with the generation 3. Ian liked the idea from day one so he gave Filip Dulić (Arakis), young student from Belgrade, DP employee, to work on a DP version of SID. His idea was to produce a 100% trough hole version of the SID that anyone with el cheapo soldering iron can assemble and provide himself with a good and cheap soldering station.

Filip made the PCB in Eagle and he managed to put the whole darn thing on a 8x8cm PCB without a single SMD component. That is a huge success as I was sure there’s no way to put this many parts on a board that small :D (original generation 3 uses bunch of SMD and is on 10x10cm board). Schematic of the DP version of the SID is 90% same as generation 3. Basically they only removed the part of the schematic that allow you to drive heater with DC input trough a FET.

This version is available on the DangerousPrototypes forum. I expect DP to soon start selling the pcb’s so if you want one check out the DP site. Note that the “support” for the project will be provided by the persons selling you the boards (or maybe KIT if someone decide to make it) and not by me; I will of course always try to help as much as I can but I do not need any obligations wrt this, I brought it to “Works for me” stage :)

Article written by Bogdan Kecman (arhi).

Join the Conversation


  1. What is the raw power of this soldering iron driver? Will the heat-up and recovery be as fast as original Hakko drivers?

    1. Raw power is identical as original driver :D. Original has 24VAC input switched with triac, this one is exactly the same. The only difference is that original has analog circuit driving the triac and this one is digital circuit driving the triac. The digital version uses PID and coefficients can be tuned from the menu so you can make it “as fast as you like”

  2. The DP version of this board looks very nice. Although I don’t know if using the DP logo with the arty PCB trace fragments forming the triangle, as part of the silkscreen, is the best choice on an actual PCB with completely different traces. Just seems confusing, if you are trying to debug a board and want to refer to the the real copper traces under the silkscreen and soldermask. If you need a big silkscreen logo I’d prefer a halftone (dot matrix) pattern, that way you can more easily see things underneath it.

    I guess any real soldering station is $100 and up, so I’m curious to know the price of a stuffed board + 24V supply + reasonable quality iron.

    1. Good point about the logo, thank you.

      Cost without a case is well less than $50, but my goal is to salvage supply and case from a cheap $20 generic soldering station, and upgrade the iron and electronics.

    2. Donno how much will DP sell pcb for but the most expensive items are
      – 24VAC transformer (cost me 20EUR locally to order new one)
      – BOX

      The BOM:





      TOTAL: 38 resistors
      TOTAL: 24 caps
      TOTAL: 8 diodes
      TOTAL: 2 inductors

      Integrated Circuits,”U1″,PIC18F2550,
      Integrated Circuits,”U2″,MCP619,
      Integrated Circuits,”U3″,MOC3031M,
      Integrated Circuits,”U4″,TRIAC,
      Integrated Circuits,”U5″,LM2574-XX,
      Integrated Circuits,”U6″,OPTOCOUPLER-NPN,

      So the parts are in the 20-40$ range depending on the “where” you purchase them and in what quantity.

  3. I can tell you how much we payed for the parts, for assembling them. it comes to around $10 for the PIC and all the ICs…the rest are just resistors, caps, transistors,and, maybe another $5 (because of the trimmers)…so 15$
    A 24VAC 50W transformer are easily found/scavenged, but a new on shouldn’t cost more then $15..

    So the controller can be built for 35$ assuming we sell the board for $5(this is a number I just thought of it has nothing to do with the official price, or if the boards will be sold at all)
    A good Hakko clone iron can be found for $15…So you can have a digital soldering station that can rival any Hakko original for $50….If you really want a professional tool, although I see no reason for it, as the Hakko works like a charm, you could buy the Weller PES51 handle for ~40$ and have a digital soldering station for 75$ that rivals any Weller digital station (which cost over $130)

  4. Keep in mind those Hakko original handles were built to last, for industrial use….so the HAkko handle is more then enough…..for any use…You can even find some of those cool mini wave tips(in Russia or Ukraine) they are awesome for drag soldering

  5. The PCB of Soldering Iron Driver V1 has been arrived (got from DP Free Giveaway:) thanks DP ), now time for hunting the components, but it will take a long journey cause some component is hard to find here (in Indonesia)

  6. so far, only the DCDC circuit has been tested, it works 100% as it should. Also the Analog amplifier section has been extensively tested by Arhi so it should work without issues as well. One thing to note, there is no firmware as of now for version 1.

  7. Under the two photographs of the Dangerous Prototypes PCB there is a link in text
    This version is available on the DangerousPrototypes forum. I expect DP to soon start selling the pcb’s so if you want one check out the DP site. Unfortunately the link goes to a non-existent page.

  8. I see a few things right away that can be improved in the layout on this latest revision of the board. Try to move capacitor C9 closer to the supply pin of the Buck converter. The direction of diode D8 close to the Buck converter should be reversed to minimize the loop size. Now the switching current has to pass under the Buck converter and that can affect the GND stability. Try to connect the cathode of D8 as close to the negative pin of capacitor C11. Reroute the reference connection of the Buck converter and the inductor L2 to the positive terminal of capacitor C11. If possible, try to fit a plastic film capacitor, larger than the 10 nF, between L and N close to the triac driver. Even if the SW will turn on the optocoupler’s LED before the zero crossing there is no guarantee that the MOC3043 will turn on the triac totally “quiet”. We had to use 3 uF X2 caps in a commercial project I was involded in to pass the CE certification with a similar setup. Try to clear up the bottom layer silk screen from all solder pads. Not all PCB manufacturers are cleaning up the silk screen before printing it which can be seen from the PCB pictures.

    1. The pictures of the latest (trough hole) version are 3d rendered, they are not actual pic’s of the boards.. I never had silk screen on the pads on any board that came from SEEED nor ITead.

      Rest of the comments sound great, I hope Filip is listening :D

      I’m not sure I understood the part wrt MOC. The 3043 opens the triac pretty clean (you can see the signal’s on scope here: ).. it is really rare to see the signal not go cleanly from zero crossing .. Are you suggesting to add some 200nF between pins 6 and 4 of the MOC3043 ? I was actually thinking of adding a 400V 220nF there but never seen it in MOC’s datasheet so gave up on the idea :) Thanks again for the comment :)

      (is there a way to embed image directly into comment?)

      1. Good quality on that 3D rendered picture! I misstook it for a real board! Are you using POVRay or some other program with an EAGLE plugin?
        I think the capacitor should be placed between AC_F and AC_N, somewhere in the space between L1 and R8. The application I was mentioning was supplied with 230 Vac and used a bit more current than this. Perhaps the lower supply voltage will affect the turn on transient? We saw the wire conducted noise first when we went to a professional EMC lab and the noise levels were very low, but above acceptable levels according to the standards. Even if the noise levels are low here and might not disturb other appliances at home, we still have the possibility that we disturb our own temperature measurements.
        Don’t always trust the datasheet with all it’s simplified application examples. Usually they show only the bare minimum of components to make it work. After all, they want to sell you the component and then a short BOM is one way. I worked on a 1 kW PFC circuit 2 years ago and ON Semi had a small footnote that read something like: “EMC filtering components are omitted for clarity”. We had to add 1 common mode choke, 1 differential mode choke and a bunch of plastic and ceramic capacitors to the circuit to pass certifications.
        One final suggestion about the copper plane layout. Try to make it reach around pads and traces to join with itself again. Hard to explain with words, but have a look at the top layer between pins 1 and 8 on the Buck converter. If you move the trace between L2 and pin 7 a little bit closer to pin 8, the copper plane ends will join each other between the trace and pin 1. I have seen a lot of this on many boards and it is usually easy to fix it. Just move a trace or a via a little bit. The board will have a much more stable GND reference if you do it. You can connect planes on different layers with vias, but vias are not perfect and adds inductance. HF noise do not pass inductors good so you end up with a local voltage offset on your GND plane.

      2. “Good quality on that 3D rendered picture!”

        Only the 2 red boards without components (last picture) are 3D. Filip will have to say how they are made, I have no clue. The first picture is “real” (the one with mixture of trough hole and smd) and there’s green 3d that’s obvious to be rendering :D (output from proteus).

        “I think the capacitor should be placed between AC_F and AC_N”

        Ah so you would like to add a 220nF capacitor parallel to snubber circuit (R18, C17) only on the “other side of the heater” ?! not sure what would it do but I’m sure it would not add any problems..

        “Perhaps the lower supply voltage will affect the turn on transient?”

        I tried to measure transients with a scope and found none. The heater behaves pretty much like purely resistive load (now it will depend from heater to heater, but with this hakko heater I seen no inductive component ) … also on the original pcb I have 100nF on one side of the board and 1uF on other side of the board on the pic’s legs directly and when measuring voltage on the pic itself while running the signal is flat as it can be, I see less then 0.01Vpp (I initially wondered on how the whole adc will work with switching supply, especially as the switching frequency is fairly low – 50 kHz but it looks very good)

        Anyhow there’s a room for another cap between L1 and R8 and both ACN and ACF go near by and could be routed easily. It’s just that with 24 V and only 2A I haven’t seen any visible transients …

      3. I use eagleUp…its an export utility, and import plugin that allows you to generate 3d boards in SketchUp, they can also be automatically populated with components, but then you have to search for models…and align the origins from eagle and sketchup, also rename them to the same names as used by eagle………

        As for your comments regarding the changes on the board, I will be sure to make them, and keep it in mind the next board I route, unfortunately the boards have been sent for fabrication as they are…So I don’t know if will be making another version if this one turned out to be good enough…I really appreciate you taking your time to comment/suggest improvements…

Leave a comment

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

Notify me of followup comments via e-mail. You can also subscribe without commenting.