Anduril ... 2?

1219 posts / 0 new
Last post


ToyKeeper's picture
Last seen: 1 month 2 weeks ago
Joined: 01/12/2013 - 14:40
Posts: 10892
Location: (469219) 2016 HO3 // I get way more privmsgs than I can respond to, so please ask in a public thread if possible, for a faster answer.
Anduril ... 2?

I did a major rewrite of Anduril. For a long time, I tried to avoid changing the UI much, and stuck to only small changes so it could keep backward compatibility. This was holding it back though, so I finally did all the bigger changes I had been avoiding. The new version is called Anduril 2.

Current status 2020-09-30: Almost done; just finishing up a few little things.

What changed? A lot:

  • Uses a “simple UI” by default. This has only the core functions, like a normal flashlight — on (ramp), off, lockout, and battery check. The rest of the features require switching to advanced mode.
    • Simple mode has no config menus, and no weird blinky modes to get stuck in.
    • Simple mode’s ramp, off/lockout behavior, and thermal regulation settings are configurable… but not while simple mode is active. To configure those things, go to advanced mode to make changes, then return to simple mode.
    • Simple mode is enabled after each factory reset.
  • Made Lockout mode easier to use as a safer alternative to “Off”. Fewer clicks to enter/exit, and direct shortcuts to/from ramp mode. Also, a new auto-lock feature.
  • Changed how config menus work, to make them harder to reach by accident and faster to use.
    • Menus are on 7H or 10H now, instead of 4C.
    • Hold button until desired item is reached, then let go to activate it and get a prompt for entering a number. No need to wait through every option if you only want to change one.
  • Remapped some button presses.
    • Off 2H: Momentary turbo (or, in simple mode, momentary ceiling).
    • Ramp 2C: Ceiling level. Or, if already ramped up to the ceiling, and not in simple mode, it goes to turbo.
    • Ramp 4C: Lockout mode.
    • Ramp 5C: Momentary.
    • Strobe 5C: Momentary strobe.
    • Ramp/Candle 5H: Sunset timer.
    • Aux LED config is on 7C/7H in both Off and Lockout modes, for better consistency.
  • Added more features.
    • Choice of 3 styles of memory for last-ramped brightness: Always remember, never remember, or remember for N minutes. (a.k.a. automatic memory, manual memory, or hybrid memory)
    • Added an auto-lock feature. Can lock the light if you forget, a configurable amount of time after turning the light off.
    • Sunset timer uses 5-minute increments and works in both ramp mode and candle mode. Use “5H” action to activate sunset timer and add time.
    • Voltage calibration function, to keep battery readings more consistent from one light to another.
    • Disco mode. Changes RGB aux LED color randomly, and quickly, while the light is in “off” or “lockout” mode.
  • Misc improvements…
    • Put some space between functions with high click counts, to make it harder to get the wrong one by accident.
    • Lockout mode’s momentary function always uses lowest brightness first.
    • Improved interactions between lockout mode and manual memory… the second momentary press uses the manual memory level if manual mem is enabled, and unlocking goes to manual mem level.
    • Changed order of blinky modes: Batt check, Temp check, Beacon, SOS (if enabled)
    • Beacon mode’s timer is set by simply holding the button, instead of using a menu.
    • Added vendor/product ID info to version check, to help reduce a wide variety of issues related to figuring out which firmware is on a particular light.
    • Reduced the minimum number of stepped ramp steps to 1, so you can configure it as a 1-mode light if you want. (brightness is halfway between floor and ceiling)
    • A wide variety of small bug fixes.
    • Completely refactored the code to make it more organized and easier to maintain.

… and probably some other things which I forgot to mention.

For full details, it’s probably easiest to just read the manual to find out how the new version works.

Original post: (old)


I’m thinking about making some significant UI changes to Anduril, and I want your feedback.

Why change it? Because there have been a bunch of little things adding up which I’d like to change but haven’t, because it would break backward compatibility. Also, there have been more and more regular folks buying Anduril lights, instead of just enthusiasts… so I want to make it safer and easier by default. It should still have all the extra features, but maybe hidden until the user does a particular input sequence.

What’s changing? The answer somewhat depends on what people say here, but here are the broad strokes of what I have in mind:

  • Replace “muggle mode” with something better, like “Anduril LITE”. It would be enabled by default, and would serve a similar purpose, but would be nicer overall. Basically it would have a smooth ramp with a higher floor and lower ceiling, no turbo, and most of the other functions turned off. It would still have battery check and maybe lockout, and perhaps other things too… depending on what people think is appropriate. Users who bother to read the manual can then press something like 6H or 8H or even 10H to unlock the full feature set, and it’d remember that setting (until the next factory reset).
  • Change a bunch of little things which have been adding up over time. For example, make the config modes harder to enter, so it won’t happen on accident as easily. Maybe change a few other button mappings, to prioritize the most popular functions. Make the aux LED config mappings more consistent, and maybe re-think how they’re configured. Configure beacon mode’s timing by simply holding the button, instead of using a menu.
  • Add some shortcuts, like from strobe to momentary, or from lockout to the ramp without passing through “off” first.
  • Hopefully add some extra features, like a configurable sunset mode and perhaps an auto-lockout timer while off… though these depend on how much space is available. Perhaps make the button LED and aux LEDs configurable separately.
  • Refactor the source code into multiple files, to make it cleaner and more organized. The single-file UI method is getting way too large.

Since these break backward compatibility, it’s probably a good idea to change the name too… to reduce confusion. Perhaps it would be called “Anduril 2”, or maybe there’s something else which is more appropriate.

What are your thoughts? What do you think should change, and why? What do you think should stay the same?

Edited by: ToyKeeper on 09/30/2020 - 04:23
ToyKeeper's picture
Last seen: 1 month 2 weeks ago
Joined: 01/12/2013 - 14:40
Posts: 10892
Location: (469219) 2016 HO3 // I get way more privmsgs than I can respond to, so please ask in a public thread if possible, for a faster answer.

In more detail, these are the potential changes planned…

Muggle mode rewrite

  • Remove “muggle mode” entirely. It won’t be a separate mode any more. It would work instead like an overlay which blocks access to extra features and limits the brightness range.
  • Rename muggle mode to “normal UI” or “simple UI”. Also rename “exit muggle mode” to “advanced UI” or “full UI” or similar. It shouldn’t sound insulting to use the simplified interface.
  • While off: Allow 1C (on, mem), 1H (on, floor), 2C (on, ceiling), 2H (on, ceiling ramp down), 3C (battcheck), maybe 4C (lockout), 6H (go to advanced UI, button mapping TBD), 15+C (version check)
  • While off: Block all other actions
  • Ramping: Limit floor and ceiling levels, use smooth ramp only, unsure if it should respect manual memory setting
  • While on: Allow 1C (off), 1H (ramp up/down), 2C (ceiling only), 2H (ramp down), 3H (tint ramp). Block turbo, and block all other inputs.
  • Battcheck: Allow 1C (off), but block all other inputs
  • Aux LEDs: In “normal UI”, unsure if user should be able to configure aux LED mode. Could maybe just lock it into voltage mode low (while off) and voltage mode blinking (during lockout).

If I’m lucky, the rewrite might even save space, leaving more room to add other stuff.

Other changes

  • Add 4H from lockout to ramp floor, to go from lockout to “on” without turning off first
  • Add 5C from strobe to momentary
  • Make the aux LED config mappings consistent, instead of using 7C/7H sometimes and 3C/3H other times (and perhaps re-think how aux LEDs are configured in general)
  • Maybe make button LED and aux LEDs configurable separately, on lights where they use different MCU pins?
  • Move config modes from 4C to … um, maybe 6C? (TBD)
  • Move sunset mode into the main ramp, and make brightness+time configurable. For example, ramp to the desired brightness, press a button sequence of some sort, and suddenly it has an dim-to-off timer. Perhaps repeat the button presses to add more time to the timer, like in candle mode.
  • Whatever UI is used for configuring sunset mode, candle mode should probably do the same thing.
  • In lockout mode, perhaps make the 2-level momentary always do the lower of two levels first? (previously, it would do the current ramp floor first, and other ramp floor second… unsure if lowest-first is better)
  • Remove beacon config mode, and instead configure the timing by simply holding the button
  • Maybe don’t allow turbo if already at the temperature limit? (or otherwise somehow make it harder to intentionally cause the light to bake itself)
  • Add an option for the light to lock itself after it has been off for a few minutes?
  • Maybe increase the frame rate of candle mode, to make it smoother?

… and possibly more. This is an incomplete list of things which might be worth doing.

I’ll most likely need to produce a separate UI diagram for the simple UI, but here’s an early rough draft which simply greys out anything it wouldn’t allow:

This isn’t a great way to show it though, so I’ve been trying to re-do the diagrams for Anduril 2. Here’s an attempt to show the Simple UI in a manner which is more, um, simple:

Barry0892's picture
Last seen: 1 day 3 hours ago
Joined: 09/20/2014 - 03:45
Posts: 600

Cool idea!

WhatsApp: +8615773183209 

My new Facebook account:

moderator007's picture
Last seen: 2 months 1 week ago
Joined: 12/23/2012 - 04:47
Posts: 3792
Location: North Carolina

What about Anduril Pro or just Anduril 2.0.
You have created a master piece Toykeeper.
I thank you for all your effort you have devoted to making flashlights great again. Thumbs Up

Last seen: 1 day 14 hours ago
Joined: 12/10/2017 - 12:46
Posts: 4499
Location: US

OMG, that’s exactly what I’ve been waiting for! 8 clicks and Hold to get into config would be perfect! My kids love to keep clicking on/off/on/off/on/off… on some of my flashlights. This way there’s no way someone can accidentally enter config.

Also I would still love to have a way to get directly to turbo from off. Double click to turbo or maybe double click to top of ramp and triple click to turbo.

raccoon city
raccoon city's picture
Last seen: 2 min 4 sec ago
Joined: 10/06/2010 - 02:35
Posts: 19077
Location: Palm Desert CA ~ West Coast is the best coast

I don't have any advice, but I appreciate your great work, ToyKeeper!  :THUMBS-UP:

tristech's picture
Last seen: 1 month 2 weeks ago
Joined: 02/11/2016 - 03:10
Posts: 30
Location: ann arbor, mi

Awesome! This will be greatly appreciated by many.

ToyKeeper wrote:

  • Aux LEDs: In “normal UI”, unsure if user should be able to configure aux LED mode. Could maybe just lock it into voltage mode low (while off) and voltage mode blinking (during lockout).

It would be cool if changes made in Advanced/Unlocked Mode (normal) could be persistent in Lite/Simple Mode. E.G. If you set aux to blue they stay blue. Otherwise I agree, voltage should be default.

RE: config modes, when I first started using Anduril, I found properly entering the right config (specifically for aux mode + brightness) to be the most obnoxious/difficult, counting between 4-6 clicks while being distracted by the flashes etc. I don’t have a suggestion per se, except maybe to eliminate how close they are to one another (ie config aux brightness with 4C, aux mode with 6C, 5C = nothing).

Lastly, and I suggest this now while you’re still in the planning phases of A2.0, it would be really neat to offer custom shortcuts (or even just one)—>
*Leave a click combo open to be set by the user for a custom action. *
For example, 3H could be reserved for whatever the user configures it to be in Advanced/Unlocked Mode. In my case it would be changing aux brightness from low to high. I don’t want to have to cycle through off and blinking every time.

For others it could be a particular strobe mode, beacon, or whatever. Maybe toggling between two particular tints.

Offering the ability to customize the actual user interface (with custom shortcuts like this) would set 2.0 apart as a truly major upgrade, not just UI refinement to make the firmware easier to swallow for the masses. jm2c

DarkShot's picture
Last seen: 9 hours 50 min ago
Joined: 02/11/2019 - 16:15
Posts: 127
Location: Canada

I like everything you’ve proposed. Is the intent to have it be fully functional on ATtiny85 equipped lights already out on the market?

The “Simple UI” out of the box is a great idea, and that UI flowchart makes a ton of sense for just anyone getting the light for the first time. Like muggle mode currently, the ability to go back and forth between the Simple UI would be beneficial for if one would want to lend someone a light, but wouldn’t want to completely reset it. Using the same keybind, like 6H or whatever is determined to be the choice, would make it easy to switch between the two.

A timeout autolock function would be good for touchy lights like the FWxx series, but having the ability to toggle it as an option on device that would remain until factory reset would be excellent for times when you don’t want to have the light lock out. Perhaps have it set as a long sequence while locked out? Like 8H so there’s minimal chance that it can be accidentally toggled while the light is actually locked out.

Momentary on lockout should absolutely start with the lower of two ramps imo*

Aggressive throttling on repeated turbo use could be good, or some way to functionally limit total power delivered dependent on a pre-determined temperature threshold.

Minor suggestions for compile-time options for anyone wanting to flash themselves or alter options to their liking:

- The ability to have Simple UI off after initial boot/reset but still retain the functionality and option to enter that mode. Just an ease of use function for power users.

- *Option to toggle momentary on lockout be either lower of the two or how it functions currently, if such a thing is easily done and if folks like how it functions currently. No reason to toggle on device.

Thanks again for all the awesome work you’ve done for the community!

trakcon's picture
Last seen: 5 hours 6 min ago
Joined: 01/23/2019 - 15:50
Posts: 488

Great ideas, TK. I didn’t see stepped mode explicitly mentioned. Please keep that around. It’s my primary mode.

I agree with pretty much everything, especially that 2-level momentary should default to the lower setting, config mode should be harder to access, and auto lock is a great idea.

Thanks, again, for Anduril and everything you contribute to this hobby.

Last seen: 6 months 3 weeks ago
Joined: 05/29/2020 - 16:25
Posts: 84

First thing that comes to mind is more sensitive thermal sensor. Realtime if possible. Would be useful for keeping hotrods safer from self destruction.

Like reducing current very quickly (within 1 sec, disable turbo, etc) until it’s under the set thermal limit.

MtnDon's picture
Last seen: 6 hours 26 min ago
Joined: 08/27/2015 - 18:25
Posts: 4250
Location: Canuk in NM

I like the idea of default mode being a “simple” or “standard” UI with the option to switch to “advanced” by some longer sequence of clicks; 8H is likely to be virtually impossible to hit in error.

Because this would be a big change I would like a distictive name, at least to Anduril2 or something totally new. I have no suggestion off hand.

I really like the momentary lockout where we can select ML or the slightly higher floor level with a single or double click-hold when locked out.

Unheard's picture
Last seen: 8 min 5 sec ago
Joined: 01/16/2019 - 11:38
Posts: 2586
Location: Germany

Brimir is a more general word for the sword in mythology.

Smile, you cannot kill them all.

jojosupir's picture
Last seen: 1 year 4 months ago
Joined: 02/17/2019 - 19:39
Posts: 134
Location: 1MDB

How about naming it with ‘Ringil’ since it doesnt backward compatibility.
Cant hardly wait to buy FL with this new firmware.

Last seen: 1 month 2 weeks ago
Joined: 03/25/2017 - 04:37
Posts: 560
Location: California

Anduril LITE for my kids sounds great!

AmbientSix's picture
Last seen: 2 years 1 month ago
Joined: 04/07/2020 - 18:18
Posts: 110
Location: US of A

I like it, it’s similar to how the ex11 is but worth a few extras. Ramping with battery check and lockout. Perfect. You could hide the ramping vs step in the advanced menu and save in eeprom. I think most here want just ramping or stepped ramp, not both. So in theory you would set that, the temp limits and calibration, and never be required to go to the advanced menu again.

Eagletac D25C, Nitecore D10 R2, Extreme E3, EX11.2, TIP, and Tubes. Noctigon KR4.

BurningPlayd0h's picture
Last seen: 3 weeks 1 day ago
Joined: 06/22/2018 - 02:16
Posts: 1797
Location: MN

My suggestion would be to make 2H from lockout activate memory mode of current ramp option. I can see how that could pose problems if manual memory isn’t enabled but maybe have it only do so if enabled, or have a toggle in the settings if there’s space?

The one thing that’s tough for me is deciding whether to set stepped ramping to a level low enough for regular use, or have it higher so my second lockout level is bright enough for what I want.

Every other change is fantastic, including making lockout always use the lower of the two settings for 1H.

Last seen: 5 hours 35 sec ago
Joined: 03/09/2020 - 23:37
Posts: 367
Location: Pac. NW

The battery voltage readout on some of my lights is off by over 0.1 volts.

A voltage calibration function similar to the existing temperature calibration function would be a welcome addition to Anduril.

How many flashlights does a "real man" need?

None, real men are not afraid of the dark.

Last seen: 1 month 1 day ago
Joined: 06/19/2020 - 06:05
Posts: 32
Location: Kuala Lumpur, MYS

I am prepared to unlearn and relearn ….

Lux-Perpetua's picture
Last seen: 9 months 3 weeks ago
Joined: 03/01/2018 - 04:39
Posts: 3194

ToyKeeper, I like your plans to improve/upgrade Andúril.

Here are some of my thoughts:

Thermal configuration

Accessing pre-selectable, user-defined step down temperatures would make it easier to toggle between a safe, conservative and a high performance setting. At least two temperature thresholds to choose of and that the user can define by the known click series would be fantastic. It would enable the user to operate the light with all features but also with the option to easily switch between something like 45°C and 65°C as the stepdown threshold. As an alternative you could also wipe the entire thermal configuration click series and only offer selectable, fixed thresholds to choose like 40°C, 45°C, 50°C, 55°C, ... up to something like 'no stepdown at all' or maybe 80°C.

I also agree that aggressive throttling on repeated Turbo runs might be a good idea. But it should go in line with user-defined step down temperatures, i.e. with safe settings in place it should not step down as aggressively.

IntelliBeam® feature

I like the idea that Surefire pursued with their IntelliBeam® feature ("IntelliBeam® automatically and seamlessly adjusts output to the optimal setting"), i.e. the driver will immediately step down when placing something in front of the flashlight, like a hand or if you put it onto a table. This will add some extra safety to new flashlights but it will require some hardware add ons in new flashlights. With the aid of a sensor (black rod) in the reflector the back-reflected light is measured. If it exceeds a certain value the driver automatically reduces the light intensity in a fraction of a second. Maybe it's worth to have something similar in more flashlights other than Surefire.

Submenu for manufacturer custom modes

With many new flashlights coming, maybe it's worth to leave some room for a submenu that each manufacturer can fill with their own customizations, e.g. for operating multi-emitter lights with different LEDs, colors etc.. I have lots of ideas on my mind like an auxiliary red LED in addition to white light that the user can operate separately.

Concerning new names for this firmware...

Well, if we stick to the Tolkien universe it might become difficult to find another sword that is as glorious as Narsil or its successor Andúril. Wink

With that said, maybe we can name this one Galadriel (a.k.a. the Lady of Light). Galad is a derived word for "light" in Sindarin (one of the most important languages in Middle-Earth). Galadriel was one of the greatest of the Elves in Middle-Earth, surpassing nearly all others in beauty, knowledge, and power.

Last seen: 1 month 3 weeks ago
Joined: 04/30/2017 - 15:18
Posts: 80

I think this is a fantastic idea. I agree that the name should be distinct with this many changes, but am ambivalent on whether it should be “Andúril 2”/“Andúril One X”/“Andúril Infinite”/“Andúril 12 Pro Max” (if the ‘brand recognition’ of Andúril is significant enough), or if it should have a different Tolkienian name.

freeme's picture
Last seen: 6 hours 22 min ago
Joined: 11/14/2013 - 22:00
Posts: 11087

Would like to see support for second e-swtich.


Lux-Perpetua's picture
Last seen: 9 months 3 weeks ago
Joined: 03/01/2018 - 04:39
Posts: 3194
freeme wrote:
Would like to see support for second e-swtich.
+1 Thumbs Up
0oklight's picture
Last seen: 11 months 4 weeks ago
Joined: 12/20/2019 - 18:51
Posts: 154
Location: London, UK

I like all the suggested improvements.

Making config mode less easy to get into would be appreciated by me.

IMO going from lockout straight to on/ramp really stands out as an excellent idea.

Re naming the two modes I think Andruil 2 Basic and Andruil 2 Advanced sounds best.

If you changed the name entirely Andruil would surely have to have distinct advantages of its own over ‘Andruil 2’ for it to remain a viable option next to the second UI, for people buying flashlights. And if your improvements work out well – it won’t. Then in my reasoning Andruil (as a brand) would sadly become obsolete. Hence I like Andruil 2 instead of name change.

May be wrong but those are my thoughts.

Last seen: 8 months 1 week ago
Joined: 10/09/2018 - 14:51
Posts: 21
Location: United States

Thank you for all your hard work Toykeeper, your thoughts on improving the ui sound very promising.

dave1010's picture
Last seen: 1 week 5 days ago
Joined: 07/04/2017 - 02:38
Posts: 480
Location: Dorset, United Kingdom

Firstly, thanks ToyKeeoer for all your work on this. Anduril is brilliant.

Would you consider moving development from bzr to git for version 2? Obviously it’s your baby and your workflow us most important. My guess is that switching to git would remove a barrier to entry to help encourage more contributions. Personally I’ve only used bzr a tiny bit and don’t grok it like I do git.

Splitting into multiple files sounds like a sensible move too. I find it much easier working with object oriented languages, so a monolithic C file is a challenge.

Thanks again.

bmengineer's picture
Last seen: 1 month 4 days ago
Joined: 01/26/2018 - 11:38
Posts: 1038
Location: Ontario, Canada

I’m sure I’ll have more thoughts on this, but the first thing that comes to mind is to remove the blink at different stages in the ramp. They’re useful dev features, but they don’t add much to the usability, and people who don’t know what they are always think it’s a glitch.

Find all my reviews of flashlights and more gear at

Th558's picture
Last seen: 7 hours 21 min ago
Joined: 01/30/2016 - 16:19
Posts: 1268
Location: United Kingdom

For anduril LITE make the key combination harder to exit. Maybe 5 presses and hold for 3 seconds on the last press. Also add an option on the normal UI to make double click from off go directly to turbo like Narsil. It would be nice to also have a shortcut which always goes to strobe at max.

For the UI name, Anduril Basic and Anduril Pro sounds good IMO. I feel like in the future Anduril LITE could be a whole separate firmware for brands that want something less complicated.

Klayking's picture
Last seen: 1 year 5 months ago
Joined: 12/17/2018 - 09:54
Posts: 155
Location: England

One thing I would really love to see in Andúril is the ability to explicitly set stepped levels. Rather than trying to work out what high and low steps would place the fully related level bang in the middle, it would be awesome to be able to define “step 1: level 25, step 2: level 50, step 3: level 100”. That way, you can set it up to have levels at precisely the output or estimated runtime that you require (assuming a table of rough outputs per level is available like with the Emisar D4). Maybe a way to define output by lumens would be better, but I don’t know how this would work considering each flashlight has a different output at a given ramp level.

I see a fair few people say the current candle mode is a bit too flickery, and I think I agree. That’s a minor thing though.

Lastly, I love the tint ramping on my LT1, but the shortcut isn’t as convenient as the brightness ramp. Not sure if this can realistically be improved much, but it’s worth considering that we might start seeing tint ramping as a staple feature of enthusiast lights within the next year or two now that the option is available within the firmware.

Th558's picture
Last seen: 7 hours 21 min ago
Joined: 01/30/2016 - 16:19
Posts: 1268
Location: United Kingdom

Yh candle mode could be improved. Usually I find the flicker a bit too much, sometimes it’s ok and other times it’s pretty much ramping up and down.

Last seen: 3 months 2 weeks ago
Joined: 11/18/2018 - 10:23
Posts: 55
Location: Spain

Overall, I think they are all great improvements.
One thing that in my opinion would be interesting, is the ability to change the ramp settings of the simple UI from the advanced UI, maybe even changing it from smooth to stepped, in a way that when you revert to simple it remains locked. Being able to calibrate thermal sensors from advanced would be nice.
Another interesting thing IMHO, would be to have a “reserved” spot in simple UI (like click-click-hold) where you can put one blinky mode of choice, such as beacon or strobe.
From all the new features, as said by others, I would put emphasis on making it more difficult to change settings, especially thermal settings, but also ramp. Maybe having an option to lock and unlock that kind of settings.

As always, thank you for doing this for the community.

Dr.Phillip's picture
Last seen: 4 months 2 weeks ago
Joined: 09/26/2019 - 04:23
Posts: 173

Well, since this would be a complete rework, would it be possible to add one more feature?

Voltage measurement adjustement. Similarly as there is temperature fine-tuning.
Currently the only option to fine-tune the flashlight is to recompile and flash the firmware.

This would make correcting any manufacturing defects much easier.