Skip to main content
Topic: My HAKKO classic and T12/T15 soldering controller (Read 282409 times) previous topic - next topic

Re: My HAKKO classic and T12/T15 soldering controller

Reply #30
[quote author="diogoc"][quote author="sparkybg"]
Every thermocoule in the world will give you 0(zero!) voltage at ambient temperature. It will start building voltage on it after you heat it above the ambient temperature or cool it down below ambient temperature. Thermocouple measures the temperature difference, not the temperature itself.[/quote]

OMG it is true. I do not know what I was thinking...

I'm trying to do my own soldering controller before give up and build your controller :)
my idea would be:
- use a laptop ac adapter for the power supply to reduce the the weight and dimension
- use a AD8495 for the thermocouple amplifier. It is for K thermocouples but if I linearize it in software it could work (maybe a stupid ideia)
- use a pic18f2550
- use a 3310 lcd
- use a rotary encoder to change the temperature

this probably is not the best topic to expose my questions but you are the only one here who has worked with T12 tips[/quote]

You can do this of course. But:
- Most laptop supplies are around 19 volts. You will have 35-40 watts instead of 70
- I am not sure that AD8495 has enough speed for this exact purpose unless you use more voltage, and less maximum PWM duty. As I see it - you will have to give the amplifier enough time to stabilise, before you make ADC conversion. I think you will need around 3-4 milliseconds for this. So in order to get maximum power from the iron you will have to use bigger voltage than 24 volts.
- For the K thermocouple - you will have to compensate/calibrate in software. Most PIC18-s have a DAC reference for the ADC, so that won't be a problem. You can adjust the ADC reference so that the ADC reads 1000 for 500 degrees celsius on the iron. Then it is very easy for the software to do what it have to do without performing additional multiplication and divison. As far as I remember, you have 1.024V internal reference, which can be boosted to 2.048 and 4.096 volts. Than, you can put this as a reference to internal DAC, and put the DAC output as a reference to the ADC. It is pretty straightforward and flexible approach. It needed very little calibration on my controller - the trimmers for the gain is nearly at 50%.
- From my work on this, I can tell that it is better to have more data, than average it, and than use this averaged temperature as the input to your PID implementation. It works more stable this way. An alternative approach is to put a filter on the amplifier and use it for averaging, but this way you have all the noise from the amplifier and tha ADC in the data. When you average in software - it is pure mathematics - you average signal + noise, and this brings the noise to the lower level and makes the input data to the PID quieter so it works more stable.

Keep us in touch with your design. I will be glad to help with whatever i can. There is nothing too hard to do in this design. In fact, the hardest thing for me was optimizing the PID algorithm to work fast, stable, and without excessive over/undershoot. Anyway, you will see it yourself. It is time consuming, but it is fun to do. :)

Re: My HAKKO classic and T12/T15 soldering controller

Reply #31
Another video. Here is how it performs when soldering a massive parts. In the video another solid copper T12 tip is heated by a smaller T12 tip.

http://www.youtube.com/watch?v=xjwervV2w7c

Re: My HAKKO classic and T12/T15 soldering controller

Reply #32
And, here's a video of JBC C245 (left) compared to chinese HAKKO T12.

I had to change the DAC reference voltage from 4.096 to 2.048 volts and to optimize the PID alorithm a bit. No hardware changes at all, except removing the two filter capacitors on thermocouple amplifier. Because the heater and the TC in C245 tips share a common wire, the TC measurement shoud be done when the power to the tip is off to avoid erratic readings because of the voltage drops on cable an connections when heater current flows. The amplifier had to be fast enough, just like the amplifier for T12 tips.

Because of the PID optimisation, now even T12 tips are performing better, with less overshoot and faster reaction on big soldering joints.

http://www.youtube.com/watch?v=s8EptN6d ... e=youtu.be

Re: My HAKKO classic and T12/T15 soldering controller

Reply #33
I have now the temperature value almost stabilized.
I reduced a lot the capacitors that I had in the amplifier and so I have a relatively fast response signal to the ADC.
My PWM period is 200ms and I turn off the heating 2ms to acquire temperature so the maximum PWM is 99% which to me does not matter.
To compensate for the reduction of the capacitors and achieve a stable temperature value, I make the average of the last 16 values ​​of temperature. I can increase the number of averaged values but I am afraid this may make the PID slower.

One thing I noticed is that as the tip temperature is different from the temperature where sensor is so I can not calibrate the temperature value for all temperatures. I calibrated to 350 ºC and the other temperatures do not match exactly, but nothing too serious.

At the moment I lack mostly the adjustment of PID parameters. I made a program in C# that receives all parameters of the controller by RS232 and displays them graphically allowing me to more easily make the adjustment of these parameters.

You can give me any tips on the best strategy to adjust the PID?

Re: My HAKKO classic and T12/T15 soldering controller

Reply #34
You may completely remove the capacitors as in my schematic. Averaging last 16 temperatures is enough for filtering out the noise, but considering 200ms period of the PWM, this may be too slow. You are averaging the temperatures from last 3 seconds, and this time is huge if you use T12 tips.

My PID runs at 50hz. And I am averaging last 8 or 16ADC results, but this results in averaging last 1/6 or last 1/3 second, compared to yous 3 seconds. Find a way to make measurements at least 20 times a second. Than you will have enough data to do filtering in a decent period of time.

Most soldering controllers run at 5-10 Hz, and this is more than enough when you have separate thermocouple, because you can read it's value at any given time and you can do all the filtering in the analog hardware. But when you have a series thermocouple, or a thermocouple that shares a connection with the heater, you have to do measurements as fast as possible, this excludes almost all possibilities for any analog filtering, and obligates you to make more measurements in order to be able to make filtering in software. Also this obligates you to use amplifiers fast enough in order be able to do the measurements faster. Consider making your period 20ms, and make the measurements in 1-2 milliseconds. This will give you 50 ADC values per second, and you can than average last 16 results. Also, before you say to the ADC to start measurement, you must give enough time for the amplifier to stabilise. For example, if you have 20ms period, and you are measuring in the last 2ms of it, turn the heater off at 18-th millicecond, than give the amplifier 1.5 milliseconds to stabilise, than make the ADC measurement, and than you can turn the heater on immediately. This will give you 90% maximum duty which you can easily compensate with slightly higher voltage, say 25 or 26 volts.

That's why you are reading different temperatures whan the heater is on and off - you are not giving it enough time, so the power to the heater devastates yous ADC results.

Also consider that when you are using a series thermocouple, there can be a local temperature gradients in the heater leads and thermocouple itself, because the power to the heater flows through the thermocouple itself. From my experience I can say that 1 of around 10 T12 tips behaves this way. So you must make your PID stable enough in order to be able to stabilise, despite the tip differences.

Also, instead of averaging you can use another type of digital filtering  that behaves much like an RC filter. For example, if you have a variable for averaging, called ADCAvg, and you read the ADC into variable called ADCVal, than for every new ADC value you can do ADCAvg=ADCAvg-(ADCAvg>>3)+ADCVal. This will result in averaged ADC value in the ADCAvg, multiplied by 8 in our case. It behaves differently than averaging, and it uses only one variable for averaging instead of a buffer with last 8-16 results.

Also, I can say that in my last software version, the temperature prediction algorithm works extremely well. When tuned properly, it completely removes any overshoot from the temperature, and still one can use a PI values that gives faster response. Currently, from the above averaged temperatures, I make a buffer with last 8 results, and I am calculating current temperature slope as the difference between the current temperature result, and the result that happened 8 measurements ago. Than I am filtering this calculated slope a second time, and then I multiply it with a gain constant that is more or less equivalent to the D coefficient in a PID, than I am adding it to the current temperature, and I am running a PI algorithm on this predicted temperature. Also, after this, I restrict the maximum possible duty at the moment if the temperature is above the desired temperature, in my case 5 percent for any degree. For example if the heater is at 301 degrees and the desired temperature is 300 degrees, I restrict duty to maximum of 95%, if the heater is at 310 degrees, the duty is restricted to 50%, and if 320 degrees, the heater is definitely off. But because I am looking at the predicted temperature, this happens not after, but before the iron overheats. Then the temperature slope gain is set correctly, the software knows exactly when to turn the power off and there is not any overshoots in the temperature.

Look at the last video I gave link to. On the left is the latest software on JBC C245 tip, and on the right it is the previous version of the software on a T12 tip. Look how the software shuts down the power (dot on the display) to the heater before it is overheated, and there isn't any overshoot - it just stops at 350 degrees and stays there. T12 behaves the same way with new software.

Re: My HAKKO classic and T12/T15 soldering controller

Reply #35
Hum I will try run the PID every 20ms or at least 40ms, I have to see if the PID calculations and other functions can complete in this period. Do you think it is preferable to run the pwn in 19 or 39 ms + 1 ms to read the temperature? In that way I read the temperatue always in multiples of 50Hz so the noise is reduced.

[quote author="sparkybg"]That's why you are reading different temperatures whan the heater is on and off - you are not giving it enough time, so the power to the heater devastates yous ADC results.[/quote]

I turn off the heater, wait 1.8ms, make the ADC measurement 4 times (pre-average), turn on the heater, and then I make the 16 last values average and run PID. I confirmed with the oscilloscope that after 1.8ms the voltage in the amplifier output has stabilized.

[quote author="sparkybg"]Also, instead of averaging you can use another type of digital filtering  that behaves much like an RC filter. For example, if you have a variable for averaging, called ADCAvg, and you read the ADC into variable called ADCVal, than for every new ADC value you can do ADCAvg=ADCAvg-(ADCAvg>>3)+ADCVal. This will result in averaged ADC value in the ADCAvg, multiplied by 8 in our case. It behaves differently than averaging, and it uses only one variable for averaging instead of a buffer with last 8-16 results.[/quote]

Your formula for the digital filter may have other advantages over the simple average but for the mathematical simulation that I did (a variation of temperature from 0 to 300) your formula takes much longer than 16 cycles for the value of the temperature reaches 300 ºC.

Re: My HAKKO classic and T12/T15 soldering controller

Reply #36
[quote author="diogoc"]Hum I will try run the PID every 20ms or at least 40ms, I have to see if the PID calculations and other functions can complete in this period. Do you think it is preferable to run the pwn in 19 or 39 ms + 1 ms to read the temperature? In that way I read the temperatue always in multiples of 50Hz so the noise is reduced.
[/quote]
The noise from mains is only reduced if you make measurements synchronously to the mains voltage. It does not matter otherwise.
If you are using floating point calculations - this will be slow. If you are using a microcontroller without hardware multiplication it will also be slow, but I think it will be achievable on 8Mhz device. Put only your ADC measurements and filtering in an interrupt routine. Put all other things in a loop. This way you will not have to worry about the speed of other routines. Than you will be able to run your PID and other functions on a 200ms period, but make measurements and filtering at 20ms intervals. The critical part here are measurements and filtering. The PID itself does not need to run so frequently.

[quote author="diogoc"]
I turn off the heater, wait 1.8ms, make the ADC measurement 4 times (pre-average), turn on the heater, and then I make the 16 last values average and run PID. I confirmed with the oscilloscope that after 1.8ms the voltage in the amplifier output has stabilized.
[/quote]
Measuring the voltage 4 times just gives you oversampling, and does not give you a real 4 measurements. With 10 bit ADC you don't really need overasmpling. Yes, this will help to suppress noise form the ADC, but nothing more. You must make more real measurements and then filter the data you've collected.

[quote author="diogoc"]
Your formula for the digital filter may have other advantages over the simple average but for the mathematical simulation that I did (a variation of temperature from 0 to 300) your formula takes much longer than 16 cycles for the value of the temperature reaches 300 ºC.[/quote]
This filter behaves exactly like your amplifier when you put capacitances on it. It behaves like an RC filter. If this is slow to you, you can try ADCAvg=ADCAvg-(ADCAvg>>2) +ADCVal. The frequency response of this filter depends of the shifting. This filter has infinite impulse response. The averaging has finite impulse response. It is up to you to decide what works best in your case. From the simulations you can see how the filter works, but you will not be able to "feel" how it works in real life, with real data. Look at the last movie I've uploaded in YouTube. This is done filtering data this way. I am not using averaging because it works better this way, although not drastically better.

Re: My HAKKO classic and T12/T15 soldering controller

Reply #37
Can believe that this iron is an legitimate Hakko?

http://www.ebay.com/itm/New-Original-Ha ... 19d83ee1e5

What would be the equivalent of this class of iron , Metcal, JBC , Weller WMRP?

Re: My HAKKO classic and T12/T15 soldering controller

Reply #38
This for sure is chinese copy, because:
1. This is a chinese seller.
2. The price is for chinese copy. The original costs several timer more.

One equivalent is JBC C245. In fact, I think it is better. It is even more compact than T12, and it has 130W peak power. It heats up 2 times faster.

Both Metcal and Weller have comparable irons. But, the tip price is x10, compared to chinese T12 clone.

Re: My HAKKO classic and T12/T15 soldering controller

Reply #39
Buy an JBC, I got the CD-2BB, fantastic stuff, if I had more money I would probably have bought the DD instead.
But, compared to the hakko 951 handle, the tips actually sits good in the jbc handle (I got T245), and it is very nice to use, and small.
I have an 951 clone, and the handle is very bad, the blue and yellow part will not hold together, and the tips come loose every so often, so i get error on the display.
It is also a bit more difficult to change 951 tips, you need to grab it with your fingers (with an rubbermat or something), but the JBC have an shape, that makes it easy to drag it out with an attachment on the station.
The prices of the C245 cartdrigdes are expensive, but people say they last forever, so..  ihope they do..
And, I don't think there are many clones of jbc ?, Hakko is wildly clones, you newer know what you get.

Re: My HAKKO classic and T12/T15 soldering controller

Reply #40
If you don't like tha Hakko 951 handle (I don't like it too), get Hakko FX-9051 handle. It is again chinese copy, but much better:
[attachment=0]

By the way here is what is inside a chinese FX-951 clone:
http://leisto.blogspot.com/2012/12/fx-9 ... emble.html


Re: My HAKKO classic and T12/T15 soldering controller

Reply #42
This is a total crap!

Make my design and you won't have any problems using T12 tips. You will be able to use the transformer from the chinese fake Hakko, so it will be a really cheap solution.

Re: My HAKKO classic and T12/T15 soldering controller

Reply #43
Hi what is the max temp of this station ?

Highpow3rpc

Re: My HAKKO classic and T12/T15 soldering controller

Reply #44
It can measure upto 500 degrees celsius. It cam regulate from 150 upto 450 degrees celsius. Although it can be made to measure and regulate higher temperatures, there is no need for more in a soldering controller.