Anduril ... 2?

Question: what do we think of:

  • Allowing 10H to exit from momentary mode?
  • Having 5C/5H remember strobe modes in a similar fashion to how 5C/5H remembers brightness in ramp mode (but without the timer).
  • A dual strobe mode flashing at both the rate of the party strobe and the tactical strobe (e.g. sometimes 0%, sometimes 50%, sometimes 100%).
  • During momentary mode, displaying voltage on the aux lights for a few seconds after the button is released? (Probably just a compile-time option.)

Anything else I can add while I'm playing with the code?

Marshall

I know this is kind of late, but could you consider adding the ability to change the speed that the AUX LEDs change color? I would also love if there was also a medium brightness for the AUX LEDS instead of just low and high. Thanks!

Thatā€™s limited by hardware.

To change the rainbow speed, just add a line like

#define RGB_RAINBOW_SPEED 0x03  // half a second per color in rainbow mode

to your cfg file (e.g. cfg-noctigon-kr4.h) and then recompile.

I donā€™t think this is a good idea. It would work for using momentary mode as a tactical UI or just an ultra-simple flashlight UI, but for uses like light painting or signaling you need to be able to click rapidly without accidentally changing modes.

I would use this, along with a timer if included.

Itā€™s 10C/10H now BTW.

Why?

I donā€™t think this is good for rapid-clicking uses of momentary mode either. Definitely put it behind a compile-time option.

Turbo mode in the Simple UI can be accessed if you set max ramp as the highest level

OK, so no two separate top of ramp and turbo if set that way. Thatā€™s a shame because having both is nice. I would like a simple mode to do everything minus the fun stuff like candle and lightening, also minus configuration. Just so a beginner canā€™t get lost in something he canā€™t change without reading the manual. I guess having a reset feature eliminates that threat.

Itā€™s really pretty hard to get lost in something you canā€™t change in the Anduril 2 advanced UI, much more so than Anduril. Every configuration is 7H or 10H, which is pretty tough to do accidentally. The blinky and mood modes always turned off with a single click. Probably the easiest thing to get stuck in is momentary mode.

I found youā€¦ā€¦

:blush:

Glad to hear it! I've been flashing Anduril2 to quite a few lights, but have a lot more to go...

Hello all,

For those who have the Lume1-FW3X driver, here is an update for anyone interested in Anduril2. I worked on some fixes and adjustments and I've had it running my my copper FW3C for a while now, and so far I think it's running mostly bug free... but I'm sure I may have missed out some! If you're interested, please feel free to try it out here. I could definitely use some help with testing all the use cases.

.hex files for flashing: https://github.com/loneoceans/lume1-fw3x/tree/main/anduril2

  • If you're flashing a new 1634, set fuses as low = 0xE2 and high = 0xDE
  • If your PCB is dated 01/20 (Rev B), you have to swap MISO and MOSI if you're programming using Emisar/Noctigon's pogoprogrammer.
  • If your PCB is dated 06/20 (Rev B), the flashing pogopads are the same as the Emisar/Noctigon ones.

Some things I adjusted:

  • Found bug in thermal control when using external temp. sensor (also applies to some versions of Anduril1) - external temp sensor formula is used for one calculation but not for the inverse calculation; added new define for allowing defining inverse formula in the cfg file
  • Added small feature called "Turbo Extra C" - additional flag to allow running Turbo at higher temperature
    • The Lume1-FW3X is regulated through the entire range (low to 3A) + the highest level being the FET (no PWM is used). This causes the flashlight to heat up fast, but sometimes it's desirable to have the light have a slightly higher threshold temperature before throttling down.
    • Added a new configurable definition TURBO_TEMP_EXTRA, which you can add to the thermal ceiling, only for Turbo mode. So for example, in this build, the default is +5C.
    • The behavior now looks like this - at all regulated levels (1 to 149), the flashlight regulates to 50C. When the user goes to Turbo (ramp level 150), the temp_ceiling is raised momentarily to 55C, and the flashlight will not throttle until 55C is hit, whereupon it will drop out of turbo, and throttle the usual way and regulate temperature at 50C.
    • This value can be set to 0 to revert to the original behavior.
  • Flag to remove gradual transitions for FET during temperature throttling
    • Some of my drivers use a 3.9kHz control signal since I'm using 10 bit (instead of 8 bit PWM, which would be a 15.6kHz frequency)
    • In these drivers, the behavior is not to throttle the FET via PWM, and step down to CC regulated modes outside of turbo
    • Anduril enables gradual transitions if thermal throttling is enabled; this leads to a 3.9kHz PWM whine when stepping out of turbo from the FET switch and circuit inductances
    • This flag disables this gradual transition so the driver transitions from 100% turbo to 100% regulated directly, without PWMing the FET
    • Note: it is also possible to set the FET PWM frequency to 15.6kHz (8 bit) to mitigate this issue, but the FET needs to be controlled by a different timer (as opposed to the same TCPWM block as the main PWM control signal) - however, this requires a physical hardware pin change. It's also possible to change the TCPWM from 8bit to 10bit on the fly since these two channels are never used at the same time, but I haven't got around to implementing that yet since it's a slightly bigger code change.
  • Factory reset by default re-calibrates the temperature sensor to 21C, which is not desirable in our case since the Lume1 driver already has a factory calibrated low-drift temperature sensor.
    • I added a flag to disable temp. cal during a reset.

For the Lume1-FW3X firmware, here are my default configs and would appreciate any feedback:

  • Default Temperature Threshold - at 50C
  • New small feature I added in Anduril2 - Turbo Extra - +5C (or set your own)
  • Minimum thermal stepdown current level - ~500mA output (1.5W)
  • Default brightness level - ~250mA
  • Default ramp mode - smooth
  • Simple UI Level and Steps - low (~10mA) to 2A output / 4 steps
  • Advanced UI Level and Steps - low (~3mA) to 3A output / 7 steps
  • Flashlight Model Number: 0314
  • SOS - enabled in Blinky Group

I generated two files, one for regular Turbo operation, one with 2C to Turbo. Which do you think should be the default?

For convenience, TK's excellently written manual: http://toykeeper.net/torches/fsm/anduril2/anduril-manual.txt

After flashing, your flashlight will be in SimpleUI mode. From off, it's 10H to get into AdvancedUI mode to unlock the features!

And finally an observation... if anyone made your own Tri-LED AUX board, the disco aux-LED mode is particularly nice... looking at the optic feels like looking into some sort of small portal.. or a flux capacitor thing..

Very excited to see Anduril 2.0 develop.

I have a mode that I would like to see, if only in the LT1. The old FAA obstruction/tower beacon mode with red light of one second on, one second off. It looks like 1.25 on and 3/4 seconds off because of filament glowing after power loss. I find the mode so relaxing when looking at old towers.

I came across a red glass vase that fits over the LT1. So if it comes about that there is an obstruction beacon mode, I am ready.

  • I always default Anduril2 to 2C for Turbo.
  • Also I always default to Anduril full UI - think this is fine for us BLFers, but factory production probably makes better sense to default to the Simple UI.

There's a lot to absorb in your post, and a few things I'm not clear on. Great to see the support though for Anduril2! Truthfully I'm more interested in seeing 1 Series MCU's come to fruition with Anduril2 because of their advantages, just one being a true factory calibrated internal temp sensor.

The TURBO_TEMP_EXTRA I understand and sounds good! Been thinking of adding a setting for GIVE_ME_30SECONDS_TURBO, so we can at least do a 30 sec measurement of lumens and throw from start, just not sure exactly how to implement it so it's not in effect when we don't want to use it... --> maybe 2C from Turbo would engage the 30 secs of no thermal reg.

I gotta review your post more.

Do you mean a mode like this? I could try playing around with it.. It does look nice.
https://www.youtube.com/watch?v=IBk_2lZwiBA

Please let me know if you have any questions! I've only scratched the surface and I'm sure there's more I can help contribute to.

For temperature calibration, I see that the 1-series has a factory compensation values pre-programmed in the factory so I assume it will be better than the +-10C for the Attiny45/85 series, but I can't find anywhere on the datasheet that says what their calibration process tolerance is.. did I miss it from the datasheet or is there a whitepaper somewhere that talks more about it? If it's +-2C or better, I suppose that's probably good enough for most people.

Thatā€™s the mode.
Got the timing off this one.

I got a prototype Attiny1616 driver from gchart, flashed it, and it came up dead-on at room temp -- this was the only ATtiny driver I've ever seen this happen with!! And I've done many! So to me with this rather small sample of 1, it's close enough

Yup, every driver that Iā€™ve built with the 1-Series that Iā€™ve verified temperature on has been pretty much dead on.

Speaking of thatā€¦ I just merged the 1-Series code into a fresh pull of Anduril 2. Now to (1) flash it on a driver, and (2) figure out how to publish it back up to Launchpad.

Great news gchart!

This is turning into a happy thread - Lume1 and 1-Series support now!!

Ok, it's late Friday afternoon, and didn't even start drink'n yet...

Okā€¦ gotta admit I have no idea what Iā€™m doing here with BZR/Launchpad. I think I just branched the code, added in the 1-Series changes, and published it. :question:

https://code.launchpad.net/~gabe/gchart-firmware/trunk

And I just flashed Anduril 2 to a driver (TomE - the same driver I sent ya). Working great. Now itā€™s time to start drinking :wink: :beer: