I would have thought that flashlight firmware had pretty much done everything there was to do by now, but ... nope. It continues evolving. Several things have been added or improved recently:
- Manual memory: The user can now switch between automatic memory and manual memory. This determines what brightness the light uses with a single click from off. By default, it uses automatic memory, where it returns to the last level the user ramped to. With the manual option though, it always goes to the same manually-chosen level.
- To enable manual memory, ramp to the desired brightness and then click 5 times.
- To go back to automatic memory, while the light is on, click 5 times but hold the last click.
This setting (and the chosen brightness level) is remembered after battery changes.
- Factory reset / auto-calibrate: This resets all configuration values back to default, and it calibrates the thermal sensor. This should help quite a bit with avoiding thermal issues, and encourages people to experiment with settings more because there's an easy panic button in case things go wrong.
To do a factory reset: Loosen the tailcap, hold the button, tighten the tailcap, then keep holding the button for 3 seconds. The light should flash an increasingly bright warning, during which time the user can let go to abort without any changes. Then after 3 seconds, it gives a bright flash and fades back to nothing. This indicates the reset has completed.
On lights where that's not possible (like FW3A), the process is a bit different. From a regular "off" state, click 13 times and hold the last click for a few seconds. Because 13 seems like the right number for this. That may not be the easiest number to count out while clicking though, so I find it's easier to click to the beat of a song. Counting beats is more intuitive for most people, basically going "1 2 3 4 1 2 3 4 1 2 3 4 5". It matches perfectly with the beginning of this song from DOOM.
- RGB aux LED support added, as seen on the Emisar D4 V2. Instead of choosing a color at time of purchase, it can be changed on the fly. Or it can change color according to battery voltage or the current mode the light is in. It's a simple thing, really, but it's nice.
- LVP while asleep: With aux LEDs getting quite bright lately on some lights, it is important to make sure they won't discharge the battery too far. So I made low-voltage protection work even while the light is asleep in standby mode. This also is what allows the Emisar D4v2 to change its aux LED colors in response to the battery charge, so it changes color and eventually shuts off when it gets low.
- Changed initial button timing from "press on" to "release on", which should make it easier to get the shortcut-to-moon timing right. I also sped up the button release timeout a bit, to make the light turn off faster after a single click. Some people have been quite bothered by the timing of past versions, so hopefully this will fix or at least improve that.
Additionally, there are now compile-time options to choose between "press on" and "release on", and between "release off" and "timeout off".
- "Fancy" 2-level lockout mode: Instead of acting as a momentary moon mode, lockout now does momentary moon and momentary low. The first click uses the floor of the current ramp, and the second click uses the floor of the other ramp. So now there is even less need to unlock the light for quick tasks.
- Added support for the Fireflies E01 and E07 v2.
- Updated candle mode to be more calm and generally look better on the upcoming BLF lantern.
- Made rampable strobe modes auto-reverse like the main ramping modes do. So if you're increasing the brightness of the bike flasher, then release and hold again, it'll go down instead of up.
- Thermal response improvements for several lights. It's still not perfect, and I hope to do a complete rewrite eventually, but it's mostly pretty okay now.
I think that's about it for now, but there are always new changes coming.