Anduril ... 2?

Extended:

  • offer overheating and undervoltage protection
  • include cell to make sure it’s a good one
  • include charging so there’s little incentive to remove the cell
  • lock the cell inside so it can’t be removed without a special tool (but make the tool available to tinkerers)
  • (ADDED LATER) make physical design that makes accidental activation unlikely
  • add features like the already mentioned output reduction when the light is close to some object. I know it’s hard to do perfectly but even if you can stop half of damage induced this way - it’s better to have it than not.

one thing that annoys me about stepped mode is, if you get more than about 8 levels, it takes longer to go through them than in ramped mode.

maybe make it go from floor to ceiling in less than X seconds no matter how many steps there are

all i would really want is a muggle mode that works, even if it is less simple
( i have the muggle mode that randomly decides the temp is too high and reduces to lowest level after random seconds)

So, my personal setup for the D4V2 is as follows:
Smooth ramp: Full range from level 1 to 150
Stepped ramp: 3 levels. Low is level 25 (~20Lm), high is level 105 (~1000Lm). This puts the middle level squarely on the max regulated level of 65 (~150Lm).

In addition, I set mode memory to always switch the light on at level 65. The fully regulated 150Lm is useful in a wide range of scenarios where I just need an arbitrary amount of light. It’s also convenient to get as much light as possible from the most efficient output range with a single click. The blink is useful if I’m ramping up and down and I want to know where the threshold is without turning the light off and on again. Before TK implemented the mode memory customization, I relied on the blink as the only way to get back to just under the FET threshold in normal ramping operation. I still do on my FW3As, which aren’t so easy to re-flash.

I usually have my D4V2 in the smooth ramp mode for general EDC tasks, but often switch into the stepped mode if I want a better idea of how much power I’m consuming when using the flashlight for longer periods of time. The low step is good for close up stuff at night, medium is efficient for walking, and high will slowly heat up and step down to a sustainable level, but it lasts a while unlike turbo (which is still accessible with a double click if needed). I seem to be fully utilizing both ramp modes and I really like my current setup now. The customization options of Andúril are fantastic.

I will give you my ideas tomorrow, but what about naming it Anduril Next?
This way it doesn’t insult our old Anduril version and its users, like in the Anduril Pro case

Was going to reply to everything at once, but it would make a very long post… so I’ll split it into a few and try to keep similar topics somewhat grouped together.

First, the name:

I’ve been thinking the same. Different name means different UI, not just an iteration of the existing UI. So I think it should probably be “Anduril 2” to make it clear that it’s still mostly the same, but different enough to give it a version number bump.

These things are generally already done or at least in the plan:

That’s in the plan. :+1:

Yes, smooth/stepped is sticking around. It’s not yet decided whether it’ll be possible to have steps in the simple UI though. It could potentially use the current ramp style and number of steps, but change the floor and ceiling to a narrower range… maybe.

This is already implemented, and will be improved by replacing muggle mode with an overlay-style simple UI.

This is already possible and has been done, but it happens at compile time.

The factory reset function does this. The user would still need to exit the simple UI after a reset though, to get access to the full feature set again.

It already supports two e-switches, as long as they do the same thing.

It also supports an e-switch plus a clicky switch, where the clicky gives it momentary mode all the time. Side + clicky goes to moon. Enable START_AT_MEMORIZED_LEVEL to use it.

Beyond that, redesigning the UI to take advantage of multiple e-switches would basically make it a different UI… so it would be a different project. Not saying it can’t be done, but it’s out of scope for Anduril.

That’s definitely one of the options I’m considering. It would then be possible to configure the simple UI, but only while the advanced UI is active. For example, it could keep the aux LED settings and maybe the ramp type and manual memory setting, but set a different floor and ceiling in simple mode. It could potentially also allow setting the simple-mode floor and ceiling, though I’m not sure how the UI for that would work.



That’s an interesting idea which hasn’t come up before.

It could perhaps do “low-floor high-floor” when manual memory is off, or “low-floor manual-mem” when manual memory is on?

It may end up with gaps between some of the functions which require more than a couple button presses. However, most of the parts which people get mixed up won’t be enabled in the simple UI so I suspect this type of issue may become less common.

It’s something which has come up a few times. Normally I’d suggest setting the ceiling to turbo, since that’s kind of the point of having an adjustable ceiling. But perhaps there needs to be more discussion about the various tradeoffs here, whether it’s worth having a separate ceiling and a shortcut from off to turbo, and what would have to be sacrificed to make that happen.

Like, there’s the question of what 3C should be. It could be a turbo shortcut. Or it could still be battcheck. Or I’ve been thinking about whether 3C should go to lockout, to make lockout more convenient to access.

There’s also a question of what 2H should be. It’s currently “go to ceiling and ramp down”, but maybe it doesn’t have to be. It’s nice for symmetry and consistency, but I never really use it and I’m not sure if anyone else does either. Perhaps it could be mapped to something else instead. There’s no shortage of other functions which could benefit from a shorter button mapping.



I’ve been thinking the battcheck function should exit after it finishes one readout, when the user is in simple mode, like the version check does. This may help people avoid getting stuck. Can’t do that with lockout mode though.

It depends on the light and the brightness level being used. The formula isn’t great at adjusting to the full variety of configurations where it runs. It could also really benefit from higher resolution in terms of time and brightness, to allow for smaller / smoother changes. If I figure out a good way to do it though, I’ll probably do it.

This has come up a few times, and I think it’d be a good idea to add it. There might not be room on tiny85-based lights though, so it could potentially be tiny1634 only or otherwise be enabled on a per-device basis.

The blink is only there on some lights, where it’s relevant. Mostly just on FET+1 designs. It’s not there on some other lights, and I’ve been wanting to remove it on more. However, it’ll still blink at the ceiling.

One thing worth mentioning though… With the blink gone, it’s much harder to hide imperfections in the joints between different ramp segments. If the slope changes, it’s much more noticeable. So it’s often not difficult to tell where the segments join, even without the blip… which is both a good and bad thing.

I’m hoping that every feature it currently has will also work on tiny85 in Anduril2… but depending on how it works out, new features might require a bigger MCU.

Yes, the simple/advanced default value will be configurable at compile time. And the current/other or low/high momentary lockout order should be a compile-time option too.

At some point, probably yes. But not as part of this revision. That migration is a separate project.

Git is really not designed for the way I work, and the features tacked on later to address this are fairly shallow, so it’s going to be a very frustrating process. But Git won the DVCS wars, so it should happen anyway.

Would be nice if I could go back and have a long talk with Linus Torvalds back in 2004 or early 2005 before he made Git, to prevent him from making some of the mistakes he made. At this point though, it’s probably too late to fix those things because they’re too deeply ingrained into the Git ecosystem.

Since the sensor is a hardware trait, I can’t change it in firmware. The most I can do is change the thermal regulation algorithm…

… which is very tricky to do well.

It was recently rewritten, again, with the help of pakutrai (08-15 User). The test results are posted here. It’s still not perfect, but hopefully over time it can keep improving.

In any case, the thermal code isn’t really part of the UI, so it’ll likely be unaffected by the UI changes.

Given that the D4 can start fires in like 3 seconds, this is a question of full power or safety. On some lights, it can’t really be both at the same time. However, on other lights like the LT1, full power is pretty safe. So it has different settings on different lights. When it can be safe at full power, it allows full power by default in the simple UI… but when full power is definitely not going to be safe, it doesn’t.

It’s an interesting idea, but depending on the details it may be getting into the territory of becoming a different UI. Like, it could let the user customize every button sequence, similar to the YLP Unicorn, but then it wouldn’t be Anduril… it would be something else. So it might be better as a separate project.

Perhaps there could be one blinky in simple mode, but I’m not sure if people would like that or hate it.

It sounds like you should design a new interface which has these things. I’d suggest using a new name for it though, instead of Anduril.

Yeah, I don’t know of a way to make it easier to access without sacrificing something more important.

I don’t think a separate UI for biking is likely in Anduril, but a bike-specific UI could be created. For now, the closest it has is the strobe mode memory which can go directly to the bike flasher with a click-click-hold.

There are already two shortcuts to strobe from off:

  • Navigate to the strobe you want, in the strobe mode group. Then turn the light off. Afterward, a 3H action goes directly to that strobe, using the same settings you left it in.
  • For even faster access, after you turn the light off from strobe mode, click 5 times for momentary. Then simply holding the button activates strobe.

… and in the update, I’m also adding a thing to make that second option easier. Go to the strobe you want, then click 5 times to go directly to momentary. No need to turn the light off first.

Not sure about having two temperature limits in regular modes, but perhaps it could do something like set the Simple UI temperature limit 5C or 10C lower than the Advanced UI limit?

However, given the issues with factory calibration (or lack thereof), that means a much higher chance that the Simple UI would think it was always overheating. So it could be a significant usability issue for the people the update is intended to help the most.

It’s something to at least keep in mind though, since a lower limit in simple mode would help with the goal of safety.

I’d like to keep that one easily accessible, in part because I use it a lot. It’s supposed to be quick and easy to switch between ramp styles. Have heard from a few other people who switch back and forth a lot too, like what Klayking mentioned earlier.

This is much more tricky.

Probably won’t happen in Anduril, because the UI for it would be a huge pain to use. A big part of why it works the way it does now (floor, ceiling, number of steps) is to avoid setting the levels explicitly. I’ve never seen a UI implement that well without requiring a separate configurator app, and a configurator isn’t feasible on most of the lights Anduril supports.

If you can think of a really slick way to configure the levels though, perhaps it would be feasible.

I can’t add these with a firmware update. They require hardware features which don’t exist on most (or all) of the lights Anduril supports.

I’m playing with my new IF25a which is my first Anduril light today.

While off: Changing the aux light brightness requires seven presses.
While in software lock out: Changing the AUX light requires three presses. I believe this should also be seven.

Here’s why:
I intend to use this feature to show a dim aux when in lockout and a bright aux when in normal mode. For me this is a safety function and lets me know at a glance which mode the light is in. I expect it will also encourage me to set the lockout at night when I put it on my night stand. However, I’ve already found I’m prone to accidentally changing the setting while trying to take it out of lockout mode. For consistency sake and to prevent user error, I feel both modes aux lights should require seven clicks to change. People might not prefer extra clicks but I doubt many people change their aux all that often. Maybe on a D4v2 with different style AUX lights? If I could somehow lock these settings I’d be happier but I’d be just as happy if it took 7 clicks in both modes. It’s too easy to accidentally change.

Thanks for all the work you do. Anduril is awesome and I love the name too. If we have to mix it up I vote for Eärendil to be the new name.

I think the thermal calibration is going to be one of the toughest issues making lights safe. As things currently are, basically every Anduril light needs to be configured first thing.

As for changes to Anduril, I’d like to set the light up how I want it and then turn off all the config menus. Temperature calibrated? I never want to end up in that menu again. Ramping set (instead of stepped)? Get rid of it. On my LT1, I actually frequently end up messing up either the tint ramping or switching into stepped ramping. I think the issue lies with setting the double-click from off to not be turbo. So I end up “triple clicking” instead of going “on” and then double-click (3C instead of 1C;2C). Double-checked it; my FW3A came by default with 2C from off to top of ramp, whereas the LT1 came with 2C from off to the maximum brightness it achieves. I guess I’ll go find the instructions to set top of ramp to max and try the FW3A again.

This is a great idea TK! The 2H shortcut is so easily accessible but it currently does something mostly useless (IMO). Perhaps this could be used to go straight to Turbo from Off?

Pretty slick setup Klayking! I’m constantly tweaking mine as well. I like what you’ve got going on here and I’ll probably adopt something similar. I’ll likely use stepped mode to have a dedicated max regulated level as that will let me take advantage of the efficiency without having the blink in smooth ramp. I’d like more than 3 steps though so I’ll have to do some math :slight_smile:

Yes. But your feedback matters to manufacturers.
If you feel something listed above makes sense you can communicate that to them - and it’s likely that some future hosts will get such support.

I agree, coming up with a slick system for this on a single button UI is tricky. Here’s the simplest I can think of:

  1. Enter step config mode with whatever shortcut is used and the light will flash once then start buzzing as it currently does.
  2. In config mode, press nothing: the buzzing will stop and config will exit.
  3. In config mode, press once to set the lowest step at output level 1, and keep clicking to raise the level of this lowest step.
  4. When happy with the lowest step’s output level, wait a moment and the light will flash twice to indicate step 2 config is starting, followed by more buzzing.
  5. Step 2’s config will start at the same level you clicked to when setting the first level. Clicking nothing will cause the config to exit and save your single step. Clicking once will advance to one level beyond the first step, and more clicks will keep moving up in brightness.
  6. Repeat the process of adding more steps, each brighter than the last until you no longer want any more steps. Allow config to exit.

Thanks to continuing on from the last step, I don’t think this will be anywhere near as painful to config as my initial idea of bashing out a number of steps, then a number between 1 and 150 for each step. I can’t see this taking appreciably longer than the current step setup to configure, though there is indeed a slight increase in complexity. As this would be located within the advanced mode though, I think the extra control over your stepped levels would be worth it. I’m interested to hear what everyone else thinks about this though.

I think this is neat, and have an idea.

First, to have less levels only for this menu (let’s say 30, with a known level for each mode that doesn’t use PWM, so you have a reference. Maybe with a formula you can relate the levels from the 30 ramp and the 150 ramp, like multiplying by 5, except level 1 that remains the lowest). This reduces the ammount of clicks and still allows room for enough choice.

You enter configuration and on the first ‘buzz’ you enter the number of modes (also allowing a single mode, that would be nice). Now it asks as many ‘buzzs’ as modes you have put, and you just click from 1 to 30.

If you configurate more modes than you had previously, it remembers the modes you had on first place (if you don’t touch anything during the buzz), and adds more on top. If you eliminate modes, it eliminates starting from up, and deleting the highest ones. You can also edit just one mode, leaving the rest as it was just like you can do now.

For a typical 4 mode configuration, let’s say that you need about 4 + 2 + 7 + 12 + 25 = 50 clicks as an example. With the current interface, seleting 4 modes, floor on level 10 and ceilling on level 125 you need 4 + 10 + 26 = 40 clicks. Not that much of a difference and you get to choose with more flexibility, although you give up your 150 levels (just for stepped, not for ramp). You can’t stop that precisely on the ramp anyways.

In addition, you can even configure special modes, such as candle mode, to numbers higher than 30, or with holds instead of clicks. The brightness of said candle mode (or freq of strobe or beacon…) would be adjusted from the original special mode location.

Maybe this last thing is overcomplicating it :stuck_out_tongue: .

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.