Skip to main content
Topic: HAKKO (907ESD) and SOLOMON (SL-10/30) soldering iron driver (Read 678751 times) previous topic - next topic

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

Reply #105
[quote author="ian"]Here is the VREF. It comes in TO-92, among others:
http://www.microchip.com/wwwproducts/De ... e=en019717[/quote]

50pp/C is bit high :( I hoped you found some more accurate one :D

I was hoping to find something like REF02 (5V 4-10ppm/C) but for 1.25 or 2.5V ... REF03 is not bad but 10-50ppm/C so similar to this MCP1525 (27-50ppm/C), bit better but similar :(

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

Reply #106
Right here is my interpretation, I'm still a Pic newbie so anything I'm missing or doing wrong let me know.

few things to note:
1) It is general purpose - I have a number of uses for this in addition to controlling soldering irons: hotplate,oven using external SSR and K-type thermocouple. Also I may have a few more offbeat uses, more on that later.
2) I'm trying to fit it into a standard 5x5cm SS/ITEAD format with Through hole components (its a bit of a squeeze!)
3) It is powered either via the USB or externally by a 5V regulated input hard wired by choosing of L1/L2

Let me know your thoughts, probably made lots of mistakes..

regards
Al

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

Reply #107
here's the 18f2550 from me - part 2 :)
The pwm I need for driver so contrast is on pot still as only 2 pwm's on this one

One other important thing. ON/OFF control with hysteresis ain't gonna cut it for me. The thermal delay is just too long with solomon iron, it oscilates on 40C swing, that's acceptable but not to me. Mine heated chamber oscillates 2C and I want to rebuild the controller .. 40C is just embarrassing :D so I'll revisit the 16F firmware to see if I can somehow squeeze PID or at least PI control in (most probably the PTC vs K-type will be compile time and not run time settings) I'll do it.

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

Reply #108
[quote author="Folknology"]
Let me know your thoughts[/quote]

You really want to link encoder to interrupt pins. The way you did it you have to pull pin state in a loop so all your mcu will be doing is handling encoder.

Multiplexing 7segs work ok if they run on priority interrupt but you have USB on priority so if usb start pushing some info trough the line the 7segs will blink - visibly. It is much better to add a 74HC595 and use 3 separate 7segs - you use only 4 pins on mcu for as many digits as you like and there's no blinking + you can use pwm to fade them if you like :)

Ktype sensor gives you "what is the difference between hot and cold joint". Hot joint is inside the heater, cold joint is inside the handle (where chromel and alumel are connected to copper wires that then go trough cable into your controller) so in order to know the temperature of the tip you need to add temperature you read from the sensor to the temperature of the handle. As handle is on "ambient" temperature you can measure ambient temperature directly on the controller. That's why I have DS18B20 on board. You can use LM35 or any other thermometer to measure ambient temperature.

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

Reply #109
Thanks arhi

Quote
You really want to link encoder to interrupt pins. The way you did it you have to pull pin state in a loop so all your mcu will be doing is handling encoder.

Well I just need it to pay attention when the button is pressed and encoder is changed, I don't want it to do anything when button isn't pressed (its encoder with button built in).

Quote
Multiplexing 7segs work ok if they run on priority interrupt but you have USB on priority so if usb start pushing some info trough the line the 7segs will blink - visibly. It is much better to add a 74HC595 and use 3 separate 7segs - you use only 4 pins on mcu for as many digits as you like and there's no blinking + you can use pwm to fade them if you like :)

Your 74HC595 is cool but I'm trying to squeeze this into a small board so will have to figure this out somehow in firmware. I need to think carefully about this.

Quote
Ktype sensor gives you "what is the difference between hot and cold joint". Hot joint is inside the heater, cold joint is inside the handle (where chromel and alumel are connected to copper wires that then go trough cable into your controller) so in order to know the temperature of the tip you need to add temperature you read from the sensor to the temperature of the handle. As handle is on "ambient" temperature you can measure ambient temperature directly on the controller. That's why I have DS18B20 on board. You can use LM35 or any other thermometer to measure ambient temperature.

Yeah I can add that internally or externally I guess, maybe have it as an option on the board. I'm looking at the different solutions for this as well as the DS18B20.

regards
Al

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

Reply #110
[quote author="Folknology"]Well I just need it to pay attention when the button is pressed and encoder is changed, I don't want it to do anything when button isn't pressed (its encoder with button built in).
[/quote]

You do not want to have encoder being read only when button is pressed. Also reading encoder by just pulling the port values usually miss few steps from the encoder (not that it is too important not to miss a step in this case but ..). Also you will save up on flash if you just put them on interrupt pins. It's what interrupt pins are for :D not that you have to use them for something else.




Quote
Your 74HC595 is cool but I'm trying to squeeze this into a small board so will have to figure this out somehow in firmware. I need to think carefully about this.

I ain't one making nor selling them so not mine in any way :D.. it's just a small chip, it should not take up too much pcb real-estate. Also if your goal is to fit it on 5x5, why not go smd. both pic and 595 and the op's are available in SOIC packages and they have raster anyone can solder with any soldering iron that can solder trough hole elements. Using 1206 resistors and capacitors and it will all be small enough to fit on 5x5 but would be super easy to solder. Note - I don't suggest going 0402 and qfn :D .. 1206 and SOIC is as easy to solder as is trough hole (actually much easier to me then trough hole).

Quote
Yeah I can add that internally or externally I guess, maybe have it as an option on the board. I'm looking at the different solutions for this as well as the DS18B20.

You have to have it on PCB .. I used DS18B20 because it requires only a single resistor and can be soldered directly on board. You can also go with some NTC in resistor divider, would work too .. some LM would require amplification and as you are saving on the board space .. I'd go with NTC or DS ..

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

Reply #111
Quote
Wrt adding capacitors in the feedback for opamps I have no clue how that works (I suck significantly with analog electronics, op-amps in particular) but I will take your word for it and add the two caps :D. I do some NF in software but if this will add some NF in hardware - even better :D

Here is a simulation I ran for filtering the TK voltage sensing. It steps through the list of [s:]resistors[/s:] capacitors seen at the bottom of the schematic.  Each of the colored plots is the output voltage with a different cap installed at the Cx locations. You can see how it quiets down nicely and the cap gets bigger.

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

Reply #112
btw if you are using PTC sensor like Weller (PT20) or HAKKO (PT ?!@$#%) then you don't care about ambient temperature, but then also you don't need to have the ktype amplification and that could be done simpler ..

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

Reply #113
[quote author="eeAlchemist"]Here is a simulation I ran for filtering the TK voltage sensing. [/quote]

Thanks I was running the similar simulation today to see how they actually effect the circuit :) They will definitely help :)

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

Reply #114
Quote
Also if your goal is to fit it on 5x5, why not go smd. both pic and 595 and the op's are available in SOIC packages and they have raster anyone can solder with any soldering iron that can solder trough hole elements

In this case its not me soldering it, its beginners which is why I'm avoiding any smd, I have another design that is smd but it is radically different from this and there is plenty of room in this case.


See attached for idea of how tight it is using through hole!

regards
Al

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

Reply #115
Quote
Let me know your thoughts,

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

Reply #116
[quote author="Folknology"]See attached for idea of how tight it is using through hole!
[/quote]

those 3x7segs have some clearance between board and resin on the back of them IIRC. So in theory you could add a bunch of trough hole pieces under the 7seg module, just send the parts on the other side of the pcb and nicely clip the wires after soldering (those solder joints that go under 7seg module). I did that with many projects back in the day, DIP easily goes on the other side of the board and dip pin don't protrude trough board enough to cause 7seg to have issue with them :). Only thing is you can't do it ~1-1.5mm near the edge of the 7seg as there's a plastic box and a resin "climbs" the box edges a so clearance is there slightly lower.

Anyhow you could put a whole 18F2550 under the 7seg, or at least all those resistors ..
I'd push the 7seg down, put the 18F under it (on the other side of the board) and arrange rest of the stuff for easy routing. There's also another way and that's to leave all components as is and send just the 7seg on the other side of the board .. that would also work (you might want to send the USB connector to other side too).

You also might want to use miniB and not full size B as you are on this picture, mini B also comes in trough hole version.

One more hint, it's MCP1525 not MC1525 :)

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

Reply #117
I'm back on the 16F firmware, the swing I have without PID is huge (40C) so I'm trying to incorporate PID in the 16F firmware.

I made it happen, full PID is there but I had to remove some options
1. no full menu, when you press button you can select start up temp and that's it. No even text "select startup temp" is present. Taking into account I'm working on the 18F version too I think 16F version could be the "simple" one with a simple interface only.
2. no real time selection of the sensor type. Since one will rarely just swap the pencil I assume this will work as well. You flash what you want to use. Selection between sensor type is simple define in firmware

There's a full pid there but without auto tuning. I might be able to get the auto tuning in but it's very very very very tight for space. 16F and floats really don't work well together. Since there's no menu, PID values must be entered in firmware. They are actually stored in EEPROM for easy change.

What is left now is to calculate pid coefficients for the solomon handle (as here I can precisely measure temperature) and then try the same ones with the HAKKO handle too.. it should work as both have same strength of heater + fairly same thermal mass so PID coefficients should be identical

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

Reply #118
PID testing done.

As it is always rise time vs overshoot I think I found acceptable value for control parameters, especially because these cannot be changed runtime (unfortunately - you have to put them in eeprom, or maybe even in code, I need to see if I will have enough ram to add read_eeprom 24 more times).

The firmware is tight in this pic and everything not required is removed. No fancy menus, only thing you can do run time is set target temperature and set startup temp (and even that might have to go, but I think I'll manage to keep it) ... 18F will hopefully give more room for menus and runtime configuration .. but since I already have 2 stations made with 16F I need this fw to work properly too :) (upgrading it with menus later is easy :) )

Attached the response curve. As you can see 280sec into the test I pushed the soldering iron on the dump sponge and held it there until 320sec then I let it "rest" up a bit and then I pushed the tip into the glass of water for 20-30sec .. As you can see the output pwm gave it bit more juice and the temperature didn't miss targeted 250C by nothing serious. PWM output is only 0-15 levels so not a very high resolution but seems more then capable to keep this baby spot on (0.1C is the play during stable time, when you solder it moves ~0.3C +- that's not noticeable on this graph, and strong cooling like sponge/water get it to skip 5-6C but nothing significant). The data on graph is sampled in every ~100-110ms while PID routine is called only once per second.

There's no way I can add self tuning code in 16F690, not even if I remove "everything" from there and leave only PID code :(

BTW when I'm at "removing everything" - this graph shows only the output from the thermocouple, there's no read out from the DS as I had to remove the DS code for PID testing - it's because I made PID koefficients changeable via encoder so I can experiment without reflashing.. so the actual temperature of the iron is about 280C (cca 30C here at my work space attm)

Comments are welcome, I'm off now to integrate all this into working firmware for 16F690 so that I can finish with 16F wrt this project :)

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

Reply #119
btw, some info about the "method" for data gathering, maybe someone find it useful :)

1. I am printing printf("%10.3f, %8.4f, %Ld, %6.2f, %6.2frn", milliseconds/1000.0, Pk, outPWM, current/10.0, temperature/10.0); to the serial port (9600bps nothing fast, no need)
2. Then I attached some USB2TTL serial adapter to my linux box (silabs cp2102 this time but not really relevant)
3. soldered a piece of wire directly on the pin10 of 16F690 (TX) because it is not broken out on my pcb
4. linked TX with USB2TTL + linked grounds
5. on linux I start
Code: [Select]
screen -L /dev/ttyUSB0 9600
This starts screen on the /dev/ttyUSB0 port using 9600bps speed. What's important part is -L as this tells screen to start logging everything on the screen so the screen creates ~/screenlog.0 and start filling it in. This way you are able to see real time data as it comes from the serial port and you have a log in a file

6. I start wonderful program called KST. I know it works on linux (comes with default distro) but no idea if there's a windoze version. I assume it does but if thy use windoze feel free to check out the link.

7. In KST I go trough data wizard, tell it that data is in the ~/screenlog.0, that I use ", " as delimiter and after few next, next, next I have the real time data graphing in front of me :). As screen actually flushes data only once per second (maybe faster if more data comes) you see updates of the graph only once per second, but you see numeric data in your screen session real time ... You can tell KST to use /dev/ttyUSB0 as a source for data (probably, I have not tried) but I kinda want to see the numbers + I like to have the log file for later checkup too ..

I hope this procedure helps someone too :) .. you can fetch same way data from arduino or any other serial logger (for e.g. BusPirate :D you can graph the analog input this way)