Recently I had some PM discussion with mattthemuppet and got some insight into what kind of UI might be suitable for cycling. The result is a new driver: mobydrv.
The driver hardware is just a NANJG105C (2.8A or 3.04A) or NANJG101AK1 (1.4A), well known linear drivers with an input voltage of 3-5V, suited for one Li-ion cell (or multiple in parallel; or 3*alkaline or 3-4*NiMH in series) driving one LED (like XM-L, XP-G, Nichia etc.). Multiple LEDs can be driven using a master/slave setup.
The main goal was to make it very easy to switch the brightness up and down to adapt to changing illumination needs while riding. Switching the light off is more difficult though to avoid accidental darkness.
Also some different kinds of strobe have been implemented: Two oscillating strobe patterns for being seen, but these are not just blinking on and off, but instead oscillate between high and low brightness (so the light is never off then). They come in two patterns (regular:oOoOoOoO and double-pulse:oooOoOoooooOoOooo) and can be adjusted in brightness (just like the constant brightness modes). Not going off allows better estimation of your position/distance, while the blinking catches attention.
It also has two mode groups for more flexibility. Each mode group has it's own memory, so if you toggle groups it will return to the previously used mode of that group.
It is fully 'programmable', i.e. every mode can be changed, also the number of modes can be changed. I found the method used for changing the brightness very comfortable, much nicer than the typical ramping usually used. The steps can be counted, so you can know what level you are in.
- Short taps (<0.3s) switch up: OFF > L > M > H (> H ) (supposing you have 3 modes)
- Long taps (>0.3s) switch down: H > M > L (> L)
- and so does a press&hold: H >> M >> L >>>>>>> OFF >>>>>>> battery level indicator
- which additionally allows switching off (~2s hold)
- If you continue to hold or press and hold when already off, you get a battery level indicator: A number of blinks shows the battery status; about one blink for every 0.1V above 3.0V without load (~12 is full, ~4 is pretty empty).
- If you do a short tap immediately followed by a long tap (tap-taaap), you switch between mode groups.
- Quickly tap 8 times to get into programming mode, a dim oscillating signal indicates that. It now awaits your command, which is another series of fast taps:
- 2 fast taps: Change the brightness of the mode in which you started the programming mode (with 8 taps). This applies to constant brightness and strobe modes. The light shows that mode's current brightness, use press&hold to ramp up and down (alternating). You can use press&hold as often as you want. When you found your desired new brightness, double-tap (2 quick taps) to store it (single tap to abort).
The ramp consists of 12 steps with lots of choices in the mid/high range to suit your brightness-vs-runtime preferences: 1 2 5 10 16 25 32 40 50 63 79 100 (in %) - 3 fast taps: Switch current mode between constant brightness, regular strobe, double-pulse strobe and from there back to constant brightness. (To get from regular strobe back to constant mode, you have do the whole procedure twice.)
- 4 fast taps: Delete the last mode (if there's more than one).
- 5 fast taps: Append a new mode (max. 7 modes).
- The above programming will be temporary, i.e. not be conserved beyond a battery change or lockout. This allows testing your new setup. But you can make it permanent:
8 fast taps: Stores your current mode configuration permanently, i.e. it will not be lost when the power is disconnected (battery change, lockout).
- 2 fast taps: Change the brightness of the mode in which you started the programming mode (with 8 taps). This applies to constant brightness and strobe modes. The light shows that mode's current brightness, use press&hold to ramp up and down (alternating). You can use press&hold as often as you want. When you found your desired new brightness, double-tap (2 quick taps) to store it (single tap to abort).
- Battery monitoring: Whenever the battery falls below 3V under current load, brightness is reduced (about half). This will repeat down to a very low level, it will not switch off though.
- 170µA quiescent current when off (depletes a full 2200mAh cell in 1.5 years).
- 18kHz PWM frequency, not visible, not audible.
- The initial mode setup comes with 3 brightness modes in group 1 (2% - 50% - 100%) and some strobes in group 2 (low double-pulse, high double-pulse, high regular), but by programming you can change and mix the whole setup.
I actually use this driver in my SmallSun ZY-T29, and while switching it off is not the most comfortable thing for a 'normal' flashlight, I really like to be able to switch it up and down so easily.
PM me if you want one.