HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron driver

A place to document your own projects.

Re: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron dri

Postby ian » Sat Sep 24, 2011 3:03 am

The two tear down articles are great!
User avatar
ian
Crew
Crew
 
Posts: 10803
Joined: Mon Jul 06, 2009 6:14 am

Re: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron dri

Postby arhi » Sat Sep 24, 2011 4:15 am

The google translate works better and better every time :). I didn't figured out how to use wordpress to write "dual language" posts, but it's ok this way too...
User avatar
arhi
Hero Member
Hero Member
 
Posts: 2160
Joined: Thu Jun 24, 2010 11:41 am
Location: Belgrade, Serbia

Re: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron dri

Postby fcobcn » Wed Oct 05, 2011 8:10 am

Great work arhi!
Do you plan to make PCBs available?
Would love to build a couple of units.
User avatar
fcobcn
Full Member
Full Member
 
Posts: 111
Joined: Thu Jun 09, 2011 2:19 pm
Location: bcn

Re: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron dri

Postby arhi » Wed Oct 05, 2011 8:29 am

pcb available in what way? The gerber files are available in the archive .. schematic and pcb source is available as proteus files and schematic is available as kicad ... I don't have pcb as kicad because I don't want to waste time making it (I seriously dislike pcb part of kicad) .. if you want pcb you can make one using provided gerbers...

btw I'm working on 18F based solution (usb bootloader and all) that will be published when it is done .. attm I'm working on something more urgent (non electronics bread and butter related stuff)
User avatar
arhi
Hero Member
Hero Member
 
Posts: 2160
Joined: Thu Jun 24, 2010 11:41 am
Location: Belgrade, Serbia

Re: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron dri

Postby fcobcn » Wed Oct 05, 2011 9:01 am

arhi, sorry for been vague,
Maybe you have produced a batch of PCBs, and you may want to sell or trade a few of them.
Or maybe more people in the forum are also interested, so a group order could be organized.
A 18F usb version sounds great!
User avatar
fcobcn
Full Member
Full Member
 
Posts: 111
Joined: Thu Jun 09, 2011 2:19 pm
Location: bcn

Re: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron dri

Postby arhi » Wed Oct 05, 2011 10:38 am

No worries, not being native speaker usually makes stuff come out not the way we intended :D

I made the batch of v2.0 pcb's that you can see on the first post in this topic. They have error in the top silk (jp2 and jp3 mark is wrong) and the power is not solved properly and for some reason I placed the triac in the middle of the board (idiot). I use those boards (I attach external board with mc34063 instead of 7805 on board, and I attach triac via wires to the pcb) as I have them. I gave away most of them but still have few more, if you want one pm me address and I'll ship it to you for free. The old 2.0 version work with latest firmware, it's just that latest version is "cleaner / nicer" :)

As I mentioned I'm working on 18F2550 version (gone trough 6-7 revisions already) but paused for now as I'm busy with work .. I should post the work I did so far if someone wanna continue .. if I understood Ian right he wanted to add the 18F version of pcb's to his pcb drawer so you might wanna wait for that version, I'm sure it'll be over in 2 weeks the latest.
User avatar
arhi
Hero Member
Hero Member
 
Posts: 2160
Joined: Thu Jun 24, 2010 11:41 am
Location: Belgrade, Serbia

Re: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron dri

Postby arhi » Thu Oct 06, 2011 9:38 am

Here's the latest pic18f2550 schematic

Debugging, monitiring etc:
- USB
- UART
- ICSP

GUI:
- 16x2 lcd with backlight connected to pwm output
- encoder with button
- 3 buttons for quick functions

Sensors:
- NTC (the cheapest possible way to measure temp) for ambient temp
- amplification of 240x to read thermocouple or ptc

Output:
- optocoupler with triak output driving triak

The backlight intenisity is controlled with pwm (Ian requested :D)
The heater is on PWM pin so if a driver without zero crossing is used you can use hw pwm, if one with zero crossing is used you have to use software pwm
Encoder is connected to the interrupt on change pins
Buttons 1-3 are connected to int0-int2 pins

Connecting input pins to interrupt pins is important if you want to have usb working as spending time in loop reading buttons don't work nice with usb.

All input pins are hw debounced (74hc14 + capacitor). You do not have to as all input pins used are already ST (if I remember correctly) and but I like to add external schmidt as 74hc14 is under 0.1eur
Attachments
solderingironcontroller_18f.pdf
pic18f2550 based driver
(172.25 KiB) Downloaded 1597 times
User avatar
arhi
Hero Member
Hero Member
 
Posts: 2160
Joined: Thu Jun 24, 2010 11:41 am
Location: Belgrade, Serbia

Re: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron dri

Postby arhi » Fri Oct 07, 2011 10:24 am

Few more pictures of the PID control with the 16F690

As you can see it is far from ideal but more then good enough for soldering iron. Autotuning pid would be nice but imo in this case not required at all... This is better curve then any commercial soldering iron driver I tried.
Attachments
screenshot19.png
screenshot20.png
User avatar
arhi
Hero Member
Hero Member
 
Posts: 2160
Joined: Thu Jun 24, 2010 11:41 am
Location: Belgrade, Serbia

Re: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron dri

Postby ian » Fri Oct 07, 2011 10:46 am

I think this is a good marketing strategy: why aren't closed source irons willing to show their curves ;)

I think this is a good use for the USB port on the 18F2550 - updates and to graph (live?) performance variables.
User avatar
ian
Crew
Crew
 
Posts: 10803
Joined: Mon Jul 06, 2009 6:14 am

Re: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron dri

Postby arhi » Fri Oct 07, 2011 11:28 am

ian wrote:I think this is a good use for the USB port on the 18F2550 - updates and to graph (live?) performance variables.



I'm using uart for that and I will use uart for that on 18f2550 too .. as you can notice on design I made there is usb port so firmware can use it, but I can say in advance I will not use usb for anything except for bootloader as I don't want usb routines to take up space on the flash nor cpu cycles ... of course usb port is there for anyone willing to write firmware that uses it :D

Btw, wrt power supply part of the project, MC34063 is cheap and accessible but require a lot of parts so here's schematic that uses LM2574-05. Works better, requires smaller amount of parts and is only slightly more expensive.
Attachments
screenshot22.png
LM2574-05 DCDC converter
screenshot22.png (4.88 KiB) Viewed 14587 times
SolderingIronController_18F.PDF
(183.39 KiB) Downloaded 1049 times
Last edited by arhi on Fri Oct 07, 2011 11:53 am, edited 1 time in total.
User avatar
arhi
Hero Member
Hero Member
 
Posts: 2160
Joined: Thu Jun 24, 2010 11:41 am
Location: Belgrade, Serbia

Re: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron dri

Postby arhi » Fri Oct 07, 2011 11:49 am

ian wrote:why aren't closed source irons willing to show their curves ;)


actually I think that you can see the curve for the latest hakko irons

check out for e.g. FX888 there are some curves there

Image
Image

and as you can see, they do not have overshoot I have :D .. It's not a big deal to remove that overshoot I just don't have time to play too much with pid parameters (this was "good enough"). Maybe when I get the 18F station made I can add real time PID parameters tweaking ..
User avatar
arhi
Hero Member
Hero Member
 
Posts: 2160
Joined: Thu Jun 24, 2010 11:41 am
Location: Belgrade, Serbia

Re: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron dri

Postby arhi » Fri Oct 07, 2011 12:16 pm

one important difference between this graphs hakko presented and ones I presented is that I measure temperature of the heater and they measure "important temperature" of the tip. I need to see if I have some old hakko tips that I don't use any more to drill them in and mount a thermocouple in the tip (sealed with fire cement) and then repeat all the measurements .. I believe I'd get very different results as the "driver" is reading temperature from the heater while we are interested in temperature of the tip (that's why tip temperature don't go over 320C during soldering even while tip temp is set to 350C on the hakko graph). Would be an interesting thing to test ..
User avatar
arhi
Hero Member
Hero Member
 
Posts: 2160
Joined: Thu Jun 24, 2010 11:41 am
Location: Belgrade, Serbia

Re: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron dri

Postby arhi » Sat Oct 08, 2011 6:23 pm

WRT power supply .. I checked past 2 days few original drivers for some soldering irons (ISKRA, HAKKO, QUICK, SOLOMON, WELLER and few unnamed stations) in order to check what output they have on the transformer. What I found is that all use standard EI / EL transformer (the cube). Some have 230/110 switch and some are 230V only (220V actually as they are all old). The ones with switch had center tapped primary coil and ones without switch had only a single input on the primary coil. They all had 24V output but some also had additional outputs on the secondary coil. Solomon for e.g. use center tapped secondary coil and the electronics actually use the 12VAC to operate, ISKRA and Weller had 6-7V, 12V and 24V outputs, HAKKO had only 24V output, QUICK had 6V, 24V and 48V output but the 6V and 48V are used only for the heat gun (it is combo of iron+heat air)... all unnamed iron controllers I opened had only 24V output from the transformer..

This short research convinced me that removing the 7805 and second AC input is a best way to go about power supply part of the schematic because you can't except to find anything but 24VAC inside the iron you try to modify. Also I will be moving to LM2574-05 completely. It is bit more expensive then MC34063 but it takes way less PCB real-estate and works like a charm.

In case TC is used I believe we should use some good voltage reference ... a 4.8-4.9 reference would be cool but I was unable to find a simple precise one. If anyone can suggest a good cheap 4.8-4.9 voltage reference with a simple usage schematic I'd appreciate it. With NTC/PTC sensor the voltage reference is irrelevant because you always measure voltage on the NTC compared to Vdd but with TC you measure absolute voltage from the TC and that's where your voltage reference becomes important. I could use 2.5V reference and reduce amplification gain to 120... it should work too .. I have locally LM385Z2.5 but I never used it before so I'm without experience with it ..
User avatar
arhi
Hero Member
Hero Member
 
Posts: 2160
Joined: Thu Jun 24, 2010 11:41 am
Location: Belgrade, Serbia

Re: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron dri

Postby eeAlchemist » Sun Oct 09, 2011 11:12 am

I'm not sure what kind of ppm you are looking for but I like the TL431 or TL1431 as it is a versatile part and an adjustable reference. The programming resistors take away from the over all accuracy but it adjustable so you can tweak out the initial tolerance.

To me the PID looks 'I' heavy and that is where the overshoot is coming from. It looks like the D is getting swamped out. It has the shape of -I.

Also when you start playing with the loop again, consider changing D = dERROR/dt to dTEMPERATURE/dt. This is a much easier loop to tune as makes the D variable more independent of P and I.
eeAlchemist
My Blog
eeAlchemist
Newbie
Newbie
 
Posts: 25
Joined: Fri Sep 02, 2011 7:17 am

Re: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron dri

Postby arhi » Sun Oct 09, 2011 11:33 am

I tried TL431 but I did something wrong as it was not working properly. For some reason however I setup this type of references I end up having output voltage depending on the input voltage ... I know it's me who's doing something wrong here .. that's why I asked for "with a simple usage schematic" as I'm obviously reading something wrong so :D if you used TL431 and don't mind drawing a small schematic I'd be grateful :D .. I used exactly the same schematic from the datasheet and got shit on the output :(

Wrt PID looks like you haven't looked at the source :D

Code: Select all
void pidCompute(){
/**/
   float error;
   float dCurrent;
 
   unsigned int32 now;
   static unsigned int32 oldTime = 0;
   
   now = milliseconds;
   
   if( (now - oldTime) >= 1000){ //more then 1000ms elapsed

      error = temperature / 10.0 - current / 10.0;
      ITerm += (Ik * error);
      if (ITerm > maxPWM){
         ITerm = maxPWM;
      } else if(ITerm < minPWM){
           ITerm= minPWM;
      }
     
      // negative input derivative instead of
      // positive error derivative works better when changing target
      dCurrent = current / 10.0 - oldCurrent / 10.0;

      outPWM = Pk * error + ITerm - Dk * dCurrent;
      if(outPWM > maxPWM){
         outPWM = maxPWM;
      } else if(outPWM < minPWM){
         outPWM = minPWM;
      }

      oldCurrent = current;
      oldTime = now;
      setPWM();
   } 
  /**/
}


I believe

// negative input derivative instead of
// positive error derivative works better when changing target
dCurrent = current / 10.0 - oldCurrent / 10.0;


is what you suggested, and it's already there from the start :) I'm playing with heaters for a while now so I know few tricks :D ... (ignore the /10.0 it's because I keep all the temperatures in 0.1C values and not in 1C values)

As for the overshoot I agree it comes from the high I value but I didn't find that problematic. Reducing I a bit and increasing D a bit should solve it but the time overshoot last is very short so actually the overshoot don't actually propagate to the tip as we measure temperature of the heater not the temperature of the tip itself. I need to find one old tip and drill it trough so I can put a NTC or a TC inside the tip to measure real tip temperature while doing this pid as this is all only measuring the heater sensor data
User avatar
arhi
Hero Member
Hero Member
 
Posts: 2160
Joined: Thu Jun 24, 2010 11:41 am
Location: Belgrade, Serbia

PreviousNext

Return to Project logs