Anduril ramping rate equation

Two Sofirn flashlights I own have a ramping option. The ramping is perceptually not quite smooth.

Anduril ramping is reported to work better. Would anybody know what function it uses to achieve it?

p.s. This may be naive, but I figured that the normalised current should increase as roughly the 4th power of the normalised ramping time (normalised being scaled from min to max as 0 to 1 or 100%) to make brightness changes more perceptually satisfying.

Screenshot_20241205-003859-01

Based on FC11C current/lumens measurements and the assumption that inverse gamma function can satisfactorily map luminance to perceived brightness.

1 Thank

We have Andruil goddess here ToyKeeper, you can ask her, or read the Andruil source code. It’s available on GitHub I believe.

@ToyKeeper, could you comment please?

The shape depends on the driver because the response of the driver might be different. There is a level_calc script in the repository that can help you with calculating the ramp values. Often it is used multiple times for different parts of the ramp.

And how to use this script in real word ?

Anduril uses logarithmic ramping as in your picture.

It seems to me that Anduril ramping uses [NormCurrent] = [NormRampTime]^3 by default.

This is not that far off from the exponent of 4 that I suggested based on nesting measured lumens vs amps relationship for Nichia 519a and gamma 2.2 mapping lumens to perceived brightness.

For example like this:

level_calc.py 5.7895 2 150 7135 0 0.1 125.25 FET 1 10 1200 --pwm dyn:61:4096:255:2.5 --clock 5:11:2.0

But there is also an interactive mode (with fewer options).

1 Thank