Nope, there’s not much I can do about that. The regulation circuit is running way below its optimal level, and it takes a while to stabilize when things are that low… especially if the driver is hot from being on a high mode.
However, I did add something to make it turn on faster during hold-from-off for moon. It now pulses a higher level for a few milliseconds to “jump start” the regulation circuit and make it wake up sooner. Before adding this, when I needed moon in the middle of the night, the process was:
- Aim light so I can see the aux LEDs.
- Hold button until aux LEDs turn off.
- Release button, and wait while moon warms up.
Now it’s more like other lights, where I can just hold the button and then let go as soon as I see light. It starts significantly faster.
Fixing it properly would require hardware changes, like adding a lower power channel which is more stable for these extra-low modes… but that hasn’t happened, so I tried to at least reduce the issue in firmware.
Due to hardware variability though, some lights will have steady output on moon, and some will have visible flickering. There’s nothing the firmware can do about that. And some lights will start a bit slowly on moon still, while others might have a bit of a “pre-flash”, because the jump-start thing isn’t one-size-fits-all. The jump start could potentially be configurable, but it’ll still start slower after the light was on turbo.
As for this dynamic PWM thing, it mostly just squishes the bottom end of the ramp downward to provide extra precision and smoother ramping for low modes. The results are something like this:
Before: (old KR4 firmware, 2020)
- 1/150: 0.2 lm
- 2/150: 0.25 lm
- 3/150: 2.5 lm (default floor)
- 4/150: 2.5 lm
- 5/150: 4.2 lm
- 6/150: 5.9 lm
- 7/150: 7.6 lm
- …
- 120: ~1700 lm
- …
- 150: ~4000 lm
After:
- 1/150: 0.20 lm
- 2/150: 0.30 lm
- 3/150: 0.45 lm
- 4/150: 0.65 lm
- 5/150: 0.90 lm
- 6/150: 1.20 lm
- 7/150: 1.55 lm
- …
- 11/150: ~2.5 lm (default floor)
- …
- 130: ~1700 lm
- …
- 150: ~4000 lm
As a side effect, it’s also finally more feasible to include moon in the stepped ramping mode, because the levels are actually spaced pretty close to visually-linear near the bottom. I’m getting pretty good results with a ramp from 1 to 130 in 8 steps.
Anyway, this change improves somethings, but it doesn’t eliminate the driver’s slow stabilization time at low modes. Much like how a human eye takes a while to adapt to darkness after seeing a bright light, the regulation circuit takes a while to adapt to very low power levels after it was burning bright. It’s slow when used at ~0.2% power or lower, especially after coming down from something bright.