Anduril ... 2?

I’d like to see LVP for indicator lights. I think it was on your list before, pending a rewrite, and this is a rewrite :slight_smile:

If we’re talking about breaking changes, I’d like to really push the envelope and suggest something really different! As more and more flashlights are including built-in charging via USB, I think it would be great to use the USB interface for configuration as well. The most versatile method would be to have the USB interface mountable as a flash drive. That drive could contain 1 (or more) configuration files (JSON?) that define the configuration, available modes, etc. This way, anyone could use their computer to modify the configuration (directly or using a GUI). Could even allow developers to flash updates over the USB interface too!

This would solve the problem of accidentally getting into configuration mode, allow for broader updates, and allow for easier control of the configuration. Not to mention, you could share configuration templates.

While that sounds amazing, I think it would require some significant hardware changes. If there’s no flash storage/USB controller built in and I doubt any lights on the market have this, then there’s nothing to program this feature set for. I’m not an expert on flashlights though just my take as a computer nerd.

You are right. There would need to be a USB host added to handle the communications (such as the MAX3421E). There is storage available though it is probably just EEPROM and not flash. (I personally have no experience with flashlight firmware - although I’ve looked at the Arduino code. I primarily work with ESP8266 and ESP32 chips which have WiFi. I can store files on the flash as well as host a full website for configuration.)

Additional ideas:

  • Add support for OLED display’s to show things like level, battery, etc.

First of all, thank you for all of your hard work bringing us these awesome U/Is!

I love anduril and have gotten really used to it but would still love to see you offer a second version. We would get used to it pretty quickly im sure.

I havent yet read through all the comments so I dont know if this has been mentioned.

Could we pretty please have a simple version of anduril that:

1) Is always automatically locked out after turning off? Unlock would be a double click, which also turns it on to a level you can choose. Always just a double click to turn on the light. This will solve all accidental turn ons and eliminate so many button presses for theose who use lockout regularly. (Another way of putting is is one click is batt check, 2 clicks turns on light to memorized mode)

2) Still has quick, easy access to full brightness?

This would be achieved by using the following:

From off:
•One click would give a moonlight level bat check and would be a notice that light is locked out.

Holding the button down (1h) from off/when locked out, is momentary, as usual.

Double click turns on to your last used mode.

1 click + 1hold (is that called 2h?) turns on to moonlight.

•3 short clicks, instead of being batt check from off, goes to top of ramp.

•3 click +1hold goes to strobe.

•4 clicks from off goes straight to turbo.

From on:

•One click turns off.

•Double click toggles between turbo and memorized mode.

•3 clicks to toggle stepped /smooth ramping just like old anduril.

•2 clicks +1 hold= tint ramping just like old anduril.

All other functions gone, or in a more advanced u/i that is hard to access.

I dont like lights that have a hard to access buttons like in zebralights. Though they are nice for keeping the light from turning on accidentally, they are hard for my fat fingers to operate easily when there are multiple button presses needed, especially when cold and/ or when wearing gloves (which is the case alot here in the icebox of Colorado) so that’s why I like the fw series so much. But the accidental turn ons are an hourly thing with me if I dont lock out. Its a little tedious having to click 5 times each time i want to use the light (quad click to lock or unlock,+ one click to either turn on or off, plus another to adjust brightness if neccessary. Thats alot of clicking every time I want to use my light (which is alot, every day).

Check out this post: https://budgetlightforum.com/t/-/62655

It has info related to the firmware that runs on different lights, and how to find the source code.

Thanks Toykeeper for all the work and dedication on these flashlight Uis, and thanks also for reading and pondering all our comments.

I like Andùril, but am far from being an expert. I barely use the basic stuff - long press to floor, ramping, double click for turbo, three clicks for battery check… I sort of memorized how to set aux leds or start candle mode, but have never gone into any setting adjustment or calibration. Frankly i feel like i’ve dropped into a geek fest of some sort here.

If i may deviate a bit from the accepted logic that everyone can click, click hold, long click or double/triple/quadruple click or else… i’d say that in my experience, a lot of people cannot distinguish a single fast click from a long or “hold” one. I see people pressing the button like they want to squeeze something out of it and it will register as a 1H although it was supposed to be a 1C.

A lot of people don’t expect a flashlight to have different modes or brightness. They just grab it because they need light, press the button, sometime with a very strong intention, and expect to have a decent amount of light to help them right now, without learning a UI diagram or practicing how to properly click that button. If they don’t get what they want they’ll click again until.

A simple UI should take that into account IMO.

PS: i agree with not renaming it. Andùril 2 or something would be more appropriate and productive then a totally new name.

Plasticity, in the philosophical sense as “a capacity to receive form and a capacity to produce form”. In my view, that is what makes Andúril both unique and challenging, relative to current flashlight firmwares. One of the derivates of plasticity is the issue of programmability as a double-edged sword. I will try to elucidate this when I have more time.

ToyKeeper,

Thanks so much for your continued development on Anduril and other flashlight firmwares. It's a lot of work and I'm sure the community has benefited greatly from all your work!

I'll leave the UI suggestions to more experienced members here, but generally I like the list of proposed changes already. The only items I can suggest are not quite UI based, but just from some of the work stemming from the Lume flashlight drivers... so I'm not sure if they are that relevant or not for this thread.

  • Native support for enable pin in a more granular fashion - the current Anduril implementation for some of the new Emisar lights has most of the functionality but leaves EN high when it doesn't need to be, for example during FET usage. For the Lume driver I had to add some custom conditionals in code to turn it off when not being used.
  • Support for external algorithms in separate cfg file, e.g. a temperature management system - I'd like to implement a fuzzy logic temperature compensation for example
  • Support for external sensors in separate cfg file e.g. external temperature sensor which is implemented for Lume driver, with custom temperature formula definition

That said, Anduril is already super full-featured; anything additional is just a bonus :)

Thank you

You can change the config clicks to 10 or so in the code quite easily, CRX does that on his lights so ramp config is more hidden

the main question is if this means going to another MCU with more memory in the end as 8kb are too small then

That would be perfect IMO!

Some time ago I suggested moving them to FSM to simplify building of other UIs.
I still think it would be a good idea.

It would be great to have a lightshow sequence just like the Tesla :partying_face:

Crazy…

Put microphone in flashlight, make it flash to music.

Then Facebook will buy it out and use it to spy on you.

if it hasn’t been said fork it. anduril and simplified version with new name ( i’d suggest Mjölnir ).

Have been making some good progress today…

  • Removed muggle mode, and replaced it with a “simple UI” overlay which restricts which actions are available
  • Made simple UI enabled by default (and after each factory reset)… unless the config file specifies otherwise (so it can be default or not, per build target)
  • Made it so the simple UI use a smooth or stepped ramp
  • Created configurable floor/ceiling/steps vars for simple UI, but didn’t add a menu to actually configure it yet
  • Refactored a lot of ramp-related code
  • Made battcheck exit after one readout, when in simple UI
  • Added 4C from lockout to on (mem)
  • Added 4H from lockout to on (floor)
  • Added 5C from strobes to momentary
  • Moved all aux LED / button LED config actions to 7C / 7H, to make it consistent
  • Moved all config modes / menus to 7C, to make them harder to reach by accident (also, more consistent with aux config)
  • Removed beacon config mode… basically, instead of “click N times” to set the timing in a menu, it’s “hold for N seconds” to set the timing whenever beacon mode is active
  • Reduced overall size by 190 bytes

There is still much more to do, but this has been a good start.

add the best function from the Narsil software, i.e. the ability to disable thermal control will save a lot of trouble for some models and their users

1 Thank

I’m scared of the idea that it’ll change because to me it’s soooooooooooo perfect already

This sounds very promising.

In stepped mode would be nice to have ability to control space in between steps. Fo example 1ma- 5mA - 20mA 50mA - 350ma - 1A - 3A