It can drop down in large steps. Stepping back up only goes one small step at a time though.
The step-downs could be made smoother with a bit more code, but it also has a high risk of introducing bugs. I actually tried it at one point, but the direct approach was too buggy and the indirect approach was fragile. So I went with a more robust but also more visible method.
Also, the regulation is not based on the current temperature, but on the predicted future temperature. This means it’s sensitive to the rate of change. If it’s below the target temperature but rising quickly, it will step down pretty quickly. But if it’s above the target temperature and falling quickly, it won’t step down (and may even step up a little).
When it first turns on in turbo, it will generally exceed the target temperature before it stabilizes. This is because, even with the predictive algorithm, thermal lag still delays the measurements too much to avoid the initial peak. Basically, thermal regulation is rather unpleasantly like trying to steer a fast-moving cow around a hairpin turn on an icy race track. While wearing someone else’s glasses.
Yes, it’s based on the predicted temperature, not the current temperature. This helps it compensate for thermal lag. Without that, the racing cow was slamming into each turn’s crash wall a lot harder.
The light makes a distinction between the actual ramp level and the target level. The button sets the target level, while thermal regulation can change only the actual level. This allows it to step back up when the actual level is lower than the target level and the temperature is no longer too high.
To change the behavior, the ramp button code could perhaps use the actual level instead of target level, when they’re different? I doubt it would be a difficult change… and patches are welcome.
If I understand correctly, this isn’t a software bug. It means the power wasn’t disconnected long enough for the driver to lose power. To make this happen, do the following:
- Ramp to a low level.
- Click to turn the light off.
- Wait at least 6 seconds so the light will enter sleep mode.
- Loosen then tighten the tailcap quickly.
- Notice that the light doesn’t blink. Click to turn it on, and see it’s still at the last-used level.
This happens because the standby current is so low that it is able to tolerate short interruptions while it’s asleep.