For the last few days I’ve been testing a few distinct characteristics of ATTiny13a that could possibly be used for a crude method of temperature threshold monitoring without any additional components. Of interest is page 155 (bottom graph) and 157 (also bottom graph) of the ATTiny13a datasheet:
Yesterday I put together a Convoy S2 with a QLite driver for ~4.4A and flashed it with some code I wrote that exploits these characteristics and took it out for a walk. It appears to work, better than I had expected. I put the threshold rather low, and when the light got warm it switched to a lower output, and when it cooled down it switched back to the highest output. The S2’s small pill (with no themal paste between pill and host) heats up pretty fast so I didn’t have to wait long. Without an IR thermometer I can’t say how accurate it is, but heat up and cooling times where rather consistent throughout our one hour walk.
So far so good, but it’s not that simple because the VCC voltage level has an impact on the result. By looking at the charts it seems that there could be a temperature difference of ~20C when the same threshold value is met, depending on if the input voltage level is 2.7V or 4.0V. This could be resolved with a zener diode, but for existing QLite boards you would loose the voltage monitoring… So maybe I’ll have a go at implementing different threshold values depending on what is read from the voltage check routine. I’d need an IR thermometer to do that.
Also, different light designs will mean the MCU is heated differently. The MCU in the S2’s small pill will heat up much faster than in for example the Supfire M6. If the same levels where used I’d guess that the M6 would run hotter before the threshold is met in the MCU.
Has anybody been down this path before?