I don’t know what code Sofirn used on the new Q8.
However, I’ve been rewriting all the thermal code (and voltage and ADC) over the past couple months, because some changes I made in November made the thermal response get a bit weird. Basically, I did a pretty large rewrite to fix some bugs which had been hanging around a long time, and the rewrite messed up the thermal behavior on some lights. So I rewrote that too.
I’ve finally got it at a point where it pretty much “just works” on every light I’ve tried it on, whether that’s a tiny hot rod or a large and more moderately-driven light… whether it’s 1, 2, or 3 power channels… and whether it’s regulated or direct-drive or a hybrid.
Anyway, here are the test results for a BLF Q8:
It may look odd, but the curve is pretty close to ideal for this type of light. It could be a little smoother, but the jagged parts aren’t actually visible during use. Each adjustment is pretty slow and gradual, and only looks steep due to the amount of time which passed during measurement.
The output gets higher as the voltage drops because of how linear drivers work. When the input voltage is high (full battery), there’s a big difference between that and the output voltage, so the difference is burned off as heat. But when the two voltages are close together (low battery), there’s less heat and it can instead produce more light. So it gets brighter as the battery drops, because it’s attempting to maintain a constant temperature.
During the entire graph, output sags over time because it’s running direct-drive, and if it was water-cooled it would produce a curve identical to the battery’s discharge curve. Basically, it keeps sagging more and more quickly as the charge drops. The algorithm then fights against that to keep output and temperature from falling too much.
Then near the end it reaches its highest level and the direct-drive decay curve takes over until low-voltage protection kicks in.
The code isn’t published yet, but that should be resolved very soon because I’m nearly done running tests.