Ralim / IronOS

Open Source Soldering Iron firmware
https://ralim.github.io/IronOS/
GNU General Public License v3.0
7.28k stars 723 forks source link

Remains relatively cold when heated #1299

Open lorond opened 2 years ago

lorond commented 2 years ago

Describe the bug Does not heat as expected.

Brand new just unpacked miniware TS100 device. On the stock 2.20 firmware it heats well.

To Reproduce

  1. Plug the power, screen shows value around 225-230
  2. Tap A button
  3. It heats up in 3-4 seconds and shows value around 320
  4. Actual temperature is low (about 55*) and it dosn't solder anything
  5. It the boost mode (hold A) screen shows 420, actual temperature rise to around 100*

Temperature calibration does not change anything.

Details of your device:

Additional context

Maybe CHan is an issue? Looks like it reports value with two numbers precision, not one. According to documents, device detects it as 227.9*, not 22.79:

CHan This is the handle temperature in °C. This is used for cold junction compensation of the tip temperature. This is shown in degrees Celsius x10, so 200 == 20.0 °C

Debug menu output: v2.18.70565DE

when cool (around 22-23*):

when heated up to around 310 (on screen, actual around 50*):

lorond commented 2 years ago

Some photos PCB: p_pcb

Actual temperature: p_temp

Ralim commented 2 years ago

Hello,

Firstly; thank you for the photos + good details

Indeed CHan looks very wrong and would be what is causing this behaviour. The question is why is it wrong. Looking at your PCB, it looks correct; U6 on the far right is the temperature sensor being used here (TMP36GRT - marking T6G)

Biggest suspects to check are: (1) Soldering of temperature sensor U6 (2) Contact of the connection from the little daughter board to the main PCB (3) Soldering of the STM32

If they all look fine, you can try reading the voltage on the temperature sensor output (pin 1; bottom left pin in your photo) with respect to gnd (can use power input -ve). To check what its putting out.

lorond commented 2 years ago

@Ralim Still waiting for multimeter to arrive. Will post information a bit later.

River-Mochi commented 2 years ago

could try to reheat/reflow each of the items ralim mentions and then test again. may find out which one had bad solder or cold solder joint. if you do it one at a time, you will find culprit because the Chan will change.

lorond commented 2 years ago

@Ralim if I understood your right, you talking about that pin: image image

It's about 2.8218V for cold (temp of environment) state and 2.8689V for hot state (300* on stock firmware).

lorond commented 2 years ago

Just tested another TS100, that has IronOS working well. It based on STI controller, mine work on GigaDevice, but model seems to be same - F103 T8U6: image

STI's model voltage on same pin is 0.7548 for cold (~23) and 0.8080 for hot (320). The hot-cold voltage difference seems to be close - 0.0471 on GD and 0.0532 on STI. Consider it is 300 on GD and 320 on STI temp setting.

Ralim commented 2 years ago

Yes those STM unit measurements are correct. The 2.8ish Volt measurements are out of specifications for this temperature sensor.

Did you test two different irons, or one iron and swap processor modules?

ZJJoker commented 1 year ago

Hello. I have the similar problem with a bit diffirent prerequisites. Once I've used an impropiate power supply: while soldering touched with tip another soldering station AC-powered, had a spark. After that had to replace MCU, acellerometer and transistor package. MCU marked as STM (not GD, hope not remaked). Measured Vout from sensor (after resistor)~0.775 V (pointed directly to the sensor and then to the MCU - the same). Before resitor (just from sensor) ~0.725 Factory firmware - ok, corresponds to a thermal imager . Rel 2.16 or 2.20: RTip ~ 830 Ctip ~115 Chan ~1148

Tip resistance ~ 8.6 Ohm.

Possible to solder by setting about +100 degrees. So, Treal ~ 300, Tset~ 410.

Could you propose something to resolve please?


Best regards, ZJJoker

Ralim commented 1 year ago

Your handle temperature is reading as being at 114C. Assuming that's wrong your damage is the cold junction sense part of the circuit. On the ts100, this is the TMP36 component.

This also makes sense as the Miniware firmware overwrites this to 25 C if your outside a fairly small window rather than have them accept faulty units.

ZJJoker commented 1 year ago

Ralim, thanks. If I got it right, do you mean that replacement of the tmp36 sensor could have a result?

The only thing makes me doubt, is that corresponding to the datsheet the Vout seems to be ok: src1 So ~0.775 ~= 20-25 С degrees. And the Vout still changes while heating or cooling the sensor. The 1 kOhm resistor between sensor and MCU is also ok. Just have mesured the Vs = 3.8, not 3.0 as in datasheet.

chino commented 1 year ago

Some photos PCB: p_pcb

Actual temperature: p_temp

what's that awesome temperature device you're using there!?

Ralim commented 1 year ago

@ZJJoker

So if you are reading the correct output voltage from the TMP36; and your 3.3V rail to the MCU is actually 3.3V (+-1%) then I would be suspect of connections between the TMP36 and the MCU or damage to the MCU ADC (relatively unlikely).

Just have mesured the Vs = 3.8, not 3.0 as in datasheet.

Vs should be 3.3V iirc?

ZJJoker commented 1 year ago

изображение According to the scheeme Vs=3.9, thats ok. By the way, the Vout is also ok. Does the firmware show the handle temperature when switched (without heating)? Just have tried freezing the handle without the tip - Vout decreased to ~0.6 V. After installing the tip - LCD shows 114. And by the way, is there any chance to get RAW values of ADCs with stlink?

Ralim commented 1 year ago

Ah yeah ok, its on the 3.9V rail.

The decoded raw handle temperature is in the debug menu. See https://ralim.github.io/IronOS/DebugMenu/ Han C

ZJJoker commented 1 year ago

No, I don't mean DECODED tempeature, but RAW ADC value - to check if there's any toruble with hardware. I can't still get: Vout=0.775 ~ T=25 by datsheet Real: Vout = 0.775 -> ?? F1(V) =ADCval -> F2(ADC) = 114 С (or 1148 СHan).

If F2 works fine with others, the only weakness in my case I see in F1, that converts Vout to RAWadc.

Ralim commented 1 year ago

To get a raw value you just need to build a tweaked version of the firmware.

The formula used on a TS100 is straight forward and linear: https://github.com/Ralim/IronOS/blob/07d85c82112a33d6c3b2541674667ebffe5060fb/source/Core/BSP/Miniware/BSP.cpp#L79

So if your getting 1148 we can flip that fairly trivially and say (1148×994)/100 + 4965 Which suggets adc reading is 16 376

We can then scale that into a voltage by doing (16 376/(4096×8)) × 3.3 Which gives the reading of 1.649 V

So either: (1) ADC pin is reading 1.649 V or (2) ADC Vref is not 3.3V

If you are certain that the pad on the STM32 is reading that voltage (measure at the QFN incase its your board interconnect) of 0.775V; then we can alternatively rearrange and get that the Vref pin must be floating at 1.55V.

However we can rule out Vref being wrong or ADC being damaged as your raw tip reading was 830 which is what we would expect.

So most likely answer here is still that the 0.775V that you are reading is not making its way into the ADC of the STM32.

I would be most suspect that you have a bad connection from the QFN pad to the TMP36 at this point.

River-Mochi commented 1 year ago

@ZJJoker If you need the TMP36, they sell several versions of it on LCSC.com this might be it: https://www.lcsc.com/product-detail/Temperature-Sensors_Analog-Devices-TMP36GRTZ-REEL7_C129489.html

Search for TMP36 on the website and you can pick the form that matches. I don't have a TS100 but you can tell by the photo if it looks like the one you have or not. I have ordered from LCSC.com before and even though it ships from China, it's fast and not expensive for shipping. They carry same or more parts as Digikey/mouser. LCSC.com and JLCPCB.com (to order custom PCB) are the same company.

ZJJoker commented 1 year ago

@Ralim Thanks for very detailed explanation. I have studied the source and now I do understand the algorythm. But... First, I've tried to resolder the MCU to be sure soldering is not the issue. Better I had not)) After my experiments, the MCU is detected by PC, is able for being flashed and saving config, but OLED is dead. Maybe I've spoilt it while unglueing for measuring voltage on the resistor which was under the LCD. Finaly, I've measured even the CLK and DATA signal with an oscilocope) - If my grand dad ever heard that in the last century (I'm using osiloscope to repair a soldering iron)- he'd say I've got crazy. So, now I've ordered some spareparts to revive the hardware and take a pause. Thanks once more.

ZJJoker commented 1 year ago

@River-b Thanks for the link, the store is of great choice of components! Though I'm still sure tmp36 is not to blame, as it seems to work according to the datasheet. Maybe I really had some trouble with the MCU, as for now I've remembered, once the iron heated to the red, as if it had no temperature control at all, but I've never had SenErr or smth like that. After that (I don't remeber what exactly I've done then), It was adequately responding for the temperature settings, but for -90 degrees to the value set. My investigation to be continued, as for now thats a matter of a principle.

discip commented 1 year ago

@chino

what's that awesome temperature device you're using there!?

Definitely from UNI-T! Maybe this one: UTi260B

River-Mochi commented 1 year ago

OLED is dead.

LCSC.com also sells this same OLED screen for about $2 I think. I ordered some before for Pinecil so if the ts100 has the same screen, you can replace that too. however maybe first check all the solder joints on the OLED screen. sometimes the soldering on it is very bad. my understanding is the OLED screen on all of these kinds of Irons is the one part that has to be hand soldered by a human. This leads to poor soldering joints sometimes on them or they are marginal, it may work but is not reliable. on one of my irons I re-heated it and fixed the fingers of the OLED screen.

discip commented 1 year ago

@lorond Is your issue solved yet? If so please consider closing. 😊

thanks

lorond commented 1 year ago

@discip sorry for so long time to answer. Hope, I will continue research soon. Yet not solved :(