Ralim / IronOS

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

Should soldering mode be enabled on weak PD #1875

Open firstnevyn opened 9 months ago

firstnevyn commented 9 months ago

If I plug my pinecil into a dumb non-qc non-pd output like my pc.. the pinecil fails to power the heater circuit because 4.98V is 'undervoltage'

When connected to my phone which does pd negotiation...

PD Debug State 12 No VBus 1 5v 0.50A

If I exit PD Debug and press plus.. the pinecil makes a valiant effort to get to the set temp of 300C at 2.5W...

If the source is PD capable (like my Samsung phone) it completes pd negotiation. it offers too little power to be useful however it's completed PD negotiation.

zejjnt commented 8 months ago

If you connect it to a dumb 5 V adapter of course it will not get enough power to be useful.

firstnevyn commented 8 months ago

If you connect it to a dumb 5 V adapter of course it will not get enough power to be useful.

Yes but that's not the question the question is.. if you connect to a PD source that only offers 2.5W should the iron even engage soldering mode and attempt to get to temp? (the current behavior is.. a PD negotiation completed.. and even if the only offered profile was 2.5W you can enable soldering mode. should there be a minimum wattage in a pd profile that's 'acceptable'?

zejjnt commented 8 months ago

I think that the firmware in its current form uses is the easiest and cleanest way to handle PD without needlessly cluttering the code; it is also useful for troubleshooting. Of course you could add a limit, but why? That time and energy is better spent writing some useful code instead of writing something that essentially would just be there because the user didn't read the owners manual :)

firstnevyn commented 8 months ago

By turning on the mosfet...

With a normal t101 tip with a nominal resistance of 8.2ohms. 5/8.3 == .6A 3W (not too far above the .5A 2.5W the supply allows for)

With the short pinecil tips the instantaneous draw is 5v/6.5ohm = 0.8A (4w)

with #1868 this gets even more exciting 5v/4ohm ==1.25A and 6.25W

and while it's averaged and smoothed over some Time period that's double what the source allowed so unless it's pulsing the mosfet to stay inside that power/current window somehow it's well outside spec.

Which is substancially more than the pd advertisement was (0.5A (2.5W) so if a pd supply doesn't advertise at least 5V 1A you shouldn't turn on that mosfet. just like 4.95V

stephen304 commented 3 months ago

This would be useful to have, there's already an "undervoltage" detection for DC mode which is nice because you know immediately what the problem is, but when using PD 5V and pulling 0.6A (3W) you end up waiting a while before it finally says thermal runaway, so having an undercurrent error condition would make diagnosing the issue quicker and give a clearer indication of what's happening.

I think there are 2 places this could be implemented which handles different causes:

If only the second one is implemented, it will handle both cases but won't be as immediate since it will only "realize" the power supply isn't specced for >5W when it stays under 5W for too long (I would assume you would reset the "too long" timer if it reaches temp so it's only counting "continuous heating" time).

My argument for implementing something like this is: it already stops you from soldering if you provide too low DC voltage, why shouldn't it also do that in PD mode with too low current? Also as it is currently, the thermal runaway error is already doing the job, it's just not distinguishing between possible undercurrent and actual thermal runaway when it seems like it should have enough information to do so.