E-switch UI Development / FSM

1034 posts / 0 new
Last post
mattlward
mattlward's picture
Offline
Last seen: 5 hours 27 min ago
Joined: 06/19/2015 - 09:20
Posts: 3240
Location: Illinois, USA

So, quick question… In the version used on the FW3A, assume ascending ramping… the first buzz in the pattern is 1 full 7135 and the second buzz is 7 full on 7135’s?

EDC rotation:
FW1A, LH351D 4000k (second favorite)
FW3A, LH351D 3500k
FW3A, SST20 FD2 4000k
FW3A, Nichia 4000k sw40 r9080 (favorite light!)
FW3A, Cree XP-L Hi 5A3
Emisar D4V2, SST20 4000k

beastlykings
beastlykings's picture
Offline
Last seen: 1 year 5 months ago
Joined: 12/29/2017 - 17:06
Posts: 193
Location: Michigan, USA

When ramping? Are those called buzzes? I think of them as blips, and the buzzes are when the light flutters during config modes.

As for your question, that’s a config option at compile time, but I’m pretty sure the stock firmware the first blip is a helper indicator to let you know you’re at moonlight mode, so absolute bottom of the ramp, barely using 1 7135, and the second blip, which in the default ramp config is also the top of the ramp, is max 7 7135s. I think.

Could be way wrong, but that’s how I understand it

zak.wilson
Offline
Last seen: 57 min 40 sec ago
Joined: 09/29/2014 - 14:27
Posts: 1035

The FW3A has 8 7135s.

Ceilingbounce – flashlight testing and runtime graphs for Android

mattlward
mattlward's picture
Offline
Last seen: 5 hours 27 min ago
Joined: 06/19/2015 - 09:20
Posts: 3240
Location: Illinois, USA

It does have 8. 1 in a single channel and 7 in the other channel. It is a 1+7+fet driver. If starting at 1 level moon there is a blip fairly quickly, then another and then ramp top.

EDC rotation:
FW1A, LH351D 4000k (second favorite)
FW3A, LH351D 3500k
FW3A, SST20 FD2 4000k
FW3A, Nichia 4000k sw40 r9080 (favorite light!)
FW3A, Cree XP-L Hi 5A3
Emisar D4V2, SST20 4000k

ToyKeeper
ToyKeeper's picture
Offline
Last seen: 2 hours 1 min ago
Joined: 01/12/2013 - 14:40
Posts: 10810
Location: (469219) 2016 HO3

It may be just a terminology difference, but here’s how I’ve been using the words:

  • Frame: One timer tick, or about 16ms. There are ~62 frames per second.
  • Blip: Turning off for less than one frame, as a visual indication that something happened. For example, when passing a reference point on the ramp.
  • Blink: Turning on (or going to a brighter level) for a short time, to indicate that something happened. For example, when entering or exiting lockout mode.
  • Buzz / flicker: Switching between two brightness levels quickly (but still slow enough to clearly see). Similar to a strobe, but nowhere near as intense. This is used to indicate that the light is waiting for input from the user.
  • Strobe: Turning on and off completely at a speed of ~4 Hz to ~100 Hz. This is used to irritate people.

Anduril on the FW3A does up to four blips while ramping up from the lowest to highest level. Hold from off, and these blips may happen:

  • At ~0.4s, to indicate the button has been held long enough to count as a “hold” instead of a “click”. Let go immediately to stay at the floor level, or keep holding to ramp up.
  • At ~1.5s, when going from 1×7135 chip to 1+7×7135. Happens at ~130 lm.
  • At ~2.5s, when going from 8×7135 to 8+FET. Happens at ~900 lm.
  • At the top end of the ramp, to indicate the ceiling has been reached.

However, depending on where the floor and ceiling are configured, the two middle ones may or may not actually happen. Or they may be at exactly the same level as another blip, in which case only one happens. In the default configuration, the 8×7135 to FET blip is the same level as the ceiling, so only one happens.

It also buzzes or flickers in the ramp config mode, to tell the user when they can click to enter a new value. It goes for 3 seconds, or until the user stops clicking for at least 3 seconds. Each click is confirmed by a blink.

beastlykings
beastlykings's picture
Offline
Last seen: 1 year 5 months ago
Joined: 12/29/2017 - 17:06
Posts: 193
Location: Michigan, USA

Unrelated question: I'm trying to set double click from off to turbo instead of max ramp.

I've taken this line from the double click from on section of the code: "set_level(MAX_LEVEL);"

And I've added it to the double click from off section of the code, to change it from this:

" else if (event == EV_2clicks) { set_state(steady_state, MAX_LEVEL); return MISCHIEF_MANAGED;

To this: " else if (event == EV_2clicks) { set_state(steady_state, MAX_LEVEL); set_level(MAX_LEVEL); return MISCHIEF_MANAGED;"

 

This seems to work, but I don't understand why. And I couldn't find any other references to MAX_LEVEL in the main code, though now that I think of it it's probably in FSM somewhere.. hmm.

Anyway, is this the correct implementation?

ToyKeeper
ToyKeeper's picture
Offline
Last seen: 2 hours 1 min ago
Joined: 01/12/2013 - 14:40
Posts: 10810
Location: (469219) 2016 HO3

beastlykings wrote:
I’m trying to set double click from off to turbo instead of max ramp.

I’ve taken this line from the double click from on section of the code: “set_level(MAX_LEVEL);”

And I’ve added it to the double click from off section of the code, to change it from this:

“ else if (event == EV_2clicks) { set_state(steady_state, MAX_LEVEL); return MISCHIEF_MANAGED;

To this: “ else if (event == EV_2clicks) { set_state(steady_state, MAX_LEVEL); set_level(MAX_LEVEL); return MISCHIEF_MANAGED;”

This seems to work, but I don’t understand why. … is this the correct implementation?

Adding a set_level(MAX_LEVEL) right after changing the state works right now, but it’s not guaranteed to work in the future. The reason why it works is due to a quirk of the execution order:

  1. set_state() tells FSM to replace the top of the state stack with something new.
  2. FSM handles this immediately, causing the new state’s EV_enter handler to be called.
  3. steady_state :: EV_enter calculates the brightness to use by calling nearest_level() . It also activates this brightness level.
  4. Control returns to the old state for just a moment, where it calls set_level() and overrides what steady_state just did.

But this isn’t guaranteed, because at some point the lower-level code might be changed to defer the EV_enter event handler until after the old state returns. Events are asynchronous, so their exact timing should not be expected to happen with any particular order or timing. It behaves in a synchronous manner in this case, but it might not always be that way. FSM probably should do this instead:

  1. set_state() tells FSM to replace the top of the stack, so FSM puts this change into the queue to handle later.
  2. off_state()’s code finishes running and returns.
  3. FSM handles the state change event. off_state :: EV_exit gets called, then steady_state :: EV_enter, in that order.

So it might instead be cleaner or safer to remove or change the clause which checks the brightness while entering the steady state. Like, if the EV_enter parameter happens to equal turbo, go to that directly instead of using nearest_level() to verify the values. This would work even if I fix FSM to make it queue state changes instead of doing them immediately.

ToyKeeper
ToyKeeper's picture
Offline
Last seen: 2 hours 1 min ago
Joined: 01/12/2013 - 14:40
Posts: 10810
Location: (469219) 2016 HO3

Some recent updates which are now published:

  • Added a compile-time option to select between press-on and release-on, and between release-off and timeout-off. This determines when the light responds to a single click to turn the light on or off… responding at button press, at button release, or at the event timeout. This has been requested quite a bit.
  • Changed the default turn-on timing from press-on to release-on. This makes it easier to tell when to let go for staying at the lowest level, because the light doesn’t turn on before then. (when compiled with press-on, it’ll still have the moon timing hint)
  • Made the button release timeout a bit faster, so the light should turn off a bit sooner after one click. Also, any multi-click events need to be done slightly faster, but it should still be easy to do. The timing now matches Olight’s products instead of ZebraLight. (went from ~384ms to ~288ms, or from 24 frames to 18 frames)
  • Added a user-configurable runtime option to switch between automatic memory (default) and manual memory. Some people call this “no memory” or “forced preset”. In manual mode, one click from off turns on at the same level each time, regardless of what level it was in during the previous session. To configure it:
    • Turn the light on and ramp to the desired level, then click 5 times. This enables manual memory and saves the current brightness level.
    • To go back to automatic memory, turn the light on then click 5 times… but hold the last click. So, click-click-click-click-hold.
  • Added support for the Fireflies E01.
  • Added support for the BLF LT1 lantern. Included in this is support for tint ramping.
  • Rewrote thermal regulation. It doesn’t seem to need the hard turbo drop option any more, and it’s much more stable when it reaches its ideal level.
  • Made ramp-able strobe modes auto-reverse like the regular ramping mode. So, after holding to adjust, releasing and holding again within a second goes the other way.
  • Enabled fancy (2-level) momentary moon by default in lockout mode. The second click uses the other ramp floor. So if you need a bit more (or less) light during lockout, it’s available.
  • Made momentary mode support strobes. To do this, go to a strobe mode, turn the light off, then start up momentary mode. Or, to do a regular momentary mode, go to a regular ramp level, then turn the light off, then start up momentary mode. Basically, it’ll do momentary in whatever mode you were just using, as long as it was a ramp or a strobe-group mode. Momentary strobes are useful for light painting.
  • Made candle mode a little more calm but also able to burn a bit brighter sometimes.
  • Fixed a tiny bug in lightning mode (it didn’t use the top 7 ramp levels before).

New builds are up in the usual place. I count 19 different build targets now.

If anyone has the ability to reflash easily, testing is appreciated. Smile

oto
oto's picture
Offline
Last seen: 1 week 3 days ago
Joined: 01/05/2017 - 09:30
Posts: 185
Location: LV

ToyKeeper wrote:
Some recent updates which are now published:
  • Added a compile-time option to select between press-on and release-on, and between release-off and timeout-off. This determines when the light responds to a single click to turn the light on or off… responding at button press, at button release, or at the event timeout. This has been requested quite a bit.
  • Changed the default turn-on timing from press-on to release-on. This makes it easier to tell when to let go for staying at the lowest level, because the light doesn’t turn on before then. (when compiled with press-on, it’ll still have the moon timing hint)

Thank you!
beastlykings
beastlykings's picture
Offline
Last seen: 1 year 5 months ago
Joined: 12/29/2017 - 17:06
Posts: 193
Location: Michigan, USA

Holy crap TK! YOU’RE AWESOME!

First off, thanks for the insight on double click turbo from off. I’ll admit this is a bit like sorcery to me, so it’s gonna take me a few re-reads to parse out and fully understand what you’re talking about.

Secondly, I finally got around to flashing my FW3A last night. I wanted fancy moon lockout mode. Before I built the hex I thought.. I should probably merge the latest fsm just in case. And then when I went to enable fancy moon I seen it was already enabled by default! Took me by surprise, I had to make sure I didn’t mix up my files. I figured you had enabled it by default now, which is pretty cool.

But then this morning, I just read your change log here, and DANG! I was literally sitting on my couch with my FW3A, giggling as I tried every new feature that I didn’t even realize I flashed last night haha.

You’re the best, and your changes to the code have solved many problems. Most recently one friend had been bothered by the thermal regulation on his D4, does this solve that thermal problem as well? Or alleviate it? I suppose I’ll flash it to test it for you best I can as well.

Also another friend had been confused by the ramp in strobe modes, but now that is much more intuitive, thanks!

Of course momentary strobes seem fun, and candle and lightning mode are already awesome, but it’s nice to see them receiving tweaks.

I don’t have much use for the button mode timing options and such, I’ll just trust your opinion on the defaults, but I’m glad the option is there.

Anywho, I guess I’m one of the first to test your newest revision haha. I’ll let you know if I find any trouble!

Sorry if this is a bit too flattering, but honestly, thank you for your hard work. You rock!

Edit: ah, it seems I merged before your final revision. I don’t have the use_Manual_memory enabled apparently. Well I guess I know what’s next, I’ll be reflashing this FW3A lol

gkushev
Offline
Last seen: 2 hours 6 min ago
Joined: 04/21/2018 - 12:34
Posts: 72

Two days ago I flashed Anduril build from 22-05, on Sofirn Q8 and now we have a new one, with even more features. I guess I’m flashing it again Smile Thanks for the update ToyKeeper!
I configured thermal stepdown to 45 degrees, but flashlight temperature goes up to 52 degrees by it’s own readings. Sadly battery of my IR thermometer died and can’t check body temperature on the fly. Anyway I like the idea about manual memory and 2 more lockout. I had no problems with shortened button release timeout, at least by now.
I wonder how hard is to flash firmware on PL47 and E07. It has 7 pins on the driver spring’s side, I assume they are used for that, am I right?

Agro
Agro's picture
Online
Last seen: 1 min 46 sec ago
Joined: 05/14/2017 - 11:16
Posts: 6874
Location: Ślōnsk

I love manual memory!
Thank you TK!!!

Agro
Agro's picture
Online
Last seen: 1 min 46 sec ago
Joined: 05/14/2017 - 11:16
Posts: 6874
Location: Ślōnsk

But I’ve got a very important question:
Does removing power reset manual memory?

ToyKeeper
ToyKeeper's picture
Offline
Last seen: 2 hours 1 min ago
Joined: 01/12/2013 - 14:40
Posts: 10810
Location: (469219) 2016 HO3
beastlykings wrote:
thanks for the insight on double click turbo from off. I’ll admit this is a bit like sorcery to me, so it’s gonna take me a few re-reads to parse out and fully understand what you’re talking about.

I should probably make another option for this. It has come up a couple times. Normally, people can make double-click-from-off-to-turbo work by setting the ceiling level as high as it can go… but some have wanted a lower ceiling while having the shortcut go to full power instead of the ceiling.

beastlykings wrote:
thermal regulation on his D4, does this solve that thermal problem as well?

I’m not really sure. I still need to take apart a sacrificial D4 to reflash it and run thermal tests… or fix the last one I killed this way. It works on FW3A though, which has fairly similar behavior.

beastlykings wrote:
Anywho, I guess I’m one of the first to test your newest revision haha. I’ll let you know if I find any trouble!

Thanks! I don’t want to merge this stuff into trunk until a few people have tried it.

gkushev wrote:
Two days ago I flashed … now we have a new one … I guess I’m flashing it again Smile

Sorry for the rapid churn. At least the Q8 is easy to flash. Smile

gkushev wrote:
I configured thermal stepdown to 45 degrees, but flashlight temperature goes up to 52 degrees by it’s own readings.

It’ll run at turbo for at least a few seconds even if it’s too hot. After that, the results depend on how fast it can reach a stable level. Regardless, I expect it’ll typically exceed the temperature limit for a short time initially before it settles at the desired temperature.

gkushev wrote:
I wonder how hard is to flash firmware on PL47 and E07. It has 7 pins on the driver spring’s side, I assume they are used for that, am I right?

If you have the right pogo pin adapter, flashing a PL47 is really easy. E07 may require unsoldering the aux LED board though, since it can interfere with reflashing. I’d definitely try it first, but if it doesn’t work, the aux LED board is probably the reason why.

I hope I can get someone to make the pogo pin adapters available commercially, because they’re really useful and most new BLF-related lights coming out support it now.

Agro wrote:
Does removing power reset manual memory?

No. It saves the manual memory info to eeprom. So if manual memory is enabled, loosening/tightening the tailcap won’t go to the default 1×7135 level. That’s only available while using automatic memory. However, you could save that level to the manual memory slot, or configure the stepped ramp so one of the steps hits that level exactly…

beastlykings
beastlykings's picture
Offline
Last seen: 1 year 5 months ago
Joined: 12/29/2017 - 17:06
Posts: 193
Location: Michigan, USA
Agro
Agro's picture
Online
Last seen: 1 min 46 sec ago
Joined: 05/14/2017 - 11:16
Posts: 6874
Location: Ślōnsk
ToyKeeper wrote:
Agro wrote:
Does removing power reset manual memory?

No. It saves the manual memory info to eeprom. So if manual memory is enabled, loosening/tightening the tailcap won’t go to the default 1×7135 level. That’s only available while using automatic memory. However, you could save that level to the manual memory slot, or configure the stepped ramp so one of the steps hits that level exactly…


The way you implemented it is great, I don’t want to reset light config every time I.change battery. Smile
oto
oto's picture
Offline
Last seen: 1 week 3 days ago
Joined: 01/05/2017 - 09:30
Posts: 185
Location: LV

I played around with the new update and I love it! Finally Anduril works the way I prefer – release-on, release-off, no moonlight and no delays. Smile
Did not run into any bugs. Just one note: muggle mode still does press-on, timeout-off.

Ryzbor
Ryzbor's picture
Offline
Last seen: 4 hours 29 min ago
Joined: 01/21/2018 - 10:52
Posts: 386
Location: Poland

My favourite Anduril feature: The short blink on moonlight which was very good on the ROT66 is almost unnoticeable in the FWA3 completely missing it’s point. It that fixed in this new “update”?

virence.com Nichia E21A sw30+sw40 Wizard Pro ; Skilhunt H03 XP-E2 660nm ; Wizard Pro E21A 2000K ; S2+ E21A sw40 d220 ; Sofrin C01R 660nm, Mf01 Mini Nichia 219B sw35+sw40

nick779
nick779's picture
Offline
Last seen: 1 month 3 weeks ago
Joined: 03/09/2018 - 15:46
Posts: 453
Location: Pittsburgh, PA
beastlykings wrote:

Here is a comparison of the new candle mode vs the old

Ive played around with the candle modes for a while, and im still trying to get used to the FW3A version with the higher brightness fluctuations. Ive been a heavy user of it since the D4S pretty much came out but I havent flashed my D4S in probably 7-8 months. The FW3A is definitely more flame like and realistic, but sometimes it subjectively feels too active.

Either way, FSM and Anduril are amazingly functional pieces of code and theres no way I could have written them myself so no complaints.

ToyKeeper
ToyKeeper's picture
Offline
Last seen: 2 hours 1 min ago
Joined: 01/12/2013 - 14:40
Posts: 10810
Location: (469219) 2016 HO3
oto wrote:
Did not run into any bugs. Just one note: muggle mode still does press-on, timeout-off.

Oh yeah, I didn’t change muggle mode. I should probably put that on the todo list.

Ryzbor wrote:
My favourite Anduril feature: The short blink on moonlight which was very good on the ROT66 is almost unnoticeable in the FWA3 completely missing it’s point. It that fixed in this new “update”?

You mean the moon timing hint?

At some point in the past few months, I increased the duration of that to make it a bit more visible… but it’s still hard to see on some lights. It went from 8ms to 12ms, but that’s still pretty quick. It can’t really get much longer without interfering with other things, since each frame is only 16ms long.

When using “B_TIMING_ON = B_RELEASE_T” (turn on at button release instead of button press), the moon timing hint is gone entirely. It serves no purpose with release-on timing, because the LED doesn’t even light up until it has been long enough to count as a “hold”. So this helps on lights where the timing hint is hard to see.

Ryzbor
Ryzbor's picture
Offline
Last seen: 4 hours 29 min ago
Joined: 01/21/2018 - 10:52
Posts: 386
Location: Poland

ToyKeeper wrote:

You mean the moon timing hint?

At some point in the past few months, I increased the duration of that to make it a bit more visible… but it’s still hard to see on some lights. It went from 8ms to 12ms, but that’s still pretty quick. It can’t really get much longer without interfering with other things, since each frame is only 16ms long.

Yes. Strange it works nicely on the ROT66 but not on the FWA3.

virence.com Nichia E21A sw30+sw40 Wizard Pro ; Skilhunt H03 XP-E2 660nm ; Wizard Pro E21A 2000K ; S2+ E21A sw40 d220 ; Sofrin C01R 660nm, Mf01 Mini Nichia 219B sw35+sw40

Klayking
Klayking's picture
Offline
Last seen: 9 months 2 weeks ago
Joined: 12/17/2018 - 09:54
Posts: 155
Location: England

Hi ToyKeeper, IRL software tester here to let you know that I haven’t noticed any issues with the latest version of Andúril (yet!)

I have only been messing with it for around 10 minutes, but so far I am loving the release-on behaviour. Moonlight is much easier to land on now, without accidentally blasting a few hundred to a few thousand lumens instead.

Momentary and reverse ramping strobes are a brilliant addition. I need to have a go at light painting now that I have a good enough excuse. The new, calmer candle mode looks really good too. I use candle a lot, and I don’t think that’s going to change any time soon.

That 2 level lockout functionality is brilliant. Moonlight is rarely sufficient in my normal use, so I was somewhat discouraged from using lockout. Now I have it so that I can single click for momentary moon, or double click for momentary 60 lumens. Perfect! On those occasions where I just quickly need some light, lockout is no longer a hindrance.

I noticed that the ability to switch between automatic and manual memory was enabled by default too. When I was reading about the changes I though you meant it would be disabled, however sure enough I was able to set the fully regulated level on my D4S as the level that the flashlight always switches on into with a single click. I wasn’t sure I’d like this, but it’s really growing on me quickly. I like having the ability to swap between automatic and manual memory on the fly, too.

All in all, fantastic update TK! I haven’t tried tearing a light apart to flash it yet (D4S with flashing holes is ez mode), but I might have to give it a go with my FW3A at some point. Big Smile

Lexel
Lexel's picture
Offline
Last seen: 1 year 3 weeks ago
Joined: 11/01/2016 - 08:00
Posts: 5895
Location: Germany

I fglashed a driver with
INDICATOR_LED_SKIP_LOW

seems the first time after flashing it is in low mode
then 7 clicks do ON/OFF

treellama
Offline
Last seen: 4 hours 32 min ago
Joined: 12/08/2018 - 21:20
Posts: 259
Location: Pittsburgh

Just updated my FW3A. Manual memory is fantastic—my two most used levels are moonlight and 1×7135 so now I can have quick access to both.

Lexel
Lexel's picture
Offline
Last seen: 1 year 3 weeks ago
Joined: 11/01/2016 - 08:00
Posts: 5895
Location: Germany

I found a weird bug or new feature with Anduril

on newly flashed driver I have the ramp ceiling set to about 75%
#define RAMP_SMOOTH_CEIL (MAX_LEVEL*142/150)

.

driver is off:
When I double click to Turbo it goes to 75%,
a 2. double click goes to 100%

driver is on
start the driver with single click then do a double click it is right to 100%

i42dk
i42dk's picture
Offline
Last seen: 1 week 1 day ago
Joined: 08/30/2017 - 05:35
Posts: 201
Location: Denmark
Quote:
momentary mode support strobes

Hahaha. The flashlight wars we have for fun with the kids just got an upgrade. Pew pew pew, just got fully automatic; pewpewpewpewpewpew Big Smile

Lexel
Lexel's picture
Offline
Last seen: 1 year 3 weeks ago
Joined: 11/01/2016 - 08:00
Posts: 5895
Location: Germany

I got returned a Anduril flashlight from a customer who reported that the light gets very regularely stuck in a sort of blinky endless circle

I tried hardware fixes but it seems that the firmware itself gets stuck somehow

The MCU gets stuck, while the light was at max ramping and get turned on again
the light needs to be disconnected from voltage to gets it out of the stuck behavior

I have it tested afterwards on a bench power supply trying to trigger the error

The light gets stuck the Indicator LED lights while the Output is off about 1 second
then a short blink of main LED and the Indicator LED gets out

First I thought its a 5V problem so I reinforced filter caps with no success

I have now the error reproduced on bench power supply

This is the 5V supply of MCU with oscilloscope

Indicator LED bahaves like this

The output of PWM 1 and PWM 2 are a short pulse packets



Wieselflinkpro
Wieselflinkpro's picture
Offline
Last seen: 3 months 6 days ago
Joined: 05/21/2015 - 04:34
Posts: 980
Location: Germany - TLF

Lexel wrote:
I found a weird bug or new feature with Anduril

on newly flashed driver I have the ramp ceiling set to about 75%
#define RAMP_SMOOTH_CEIL (MAX_LEVEL*142/150)

.

driver is off:
When I double click to Turbo it goes to 75%,
a 2. double click goes to 100%

driver is on
start the driver with single click then do a double click it is right to 100%


Yes thats right. I can confirm it on my FW3A.

Now I recal that I have recognised it former, but I was not thinking about a possible bug, I didn’t think anything with this driver-behavior.

ToyKeeper
ToyKeeper's picture
Offline
Last seen: 2 hours 1 min ago
Joined: 01/12/2013 - 14:40
Posts: 10810
Location: (469219) 2016 HO3
Klayking wrote:
Hi ToyKeeper, IRL software tester here to let you know that I haven’t noticed any issues with the latest version of Andúril (yet!)

Thanks!

It really helps having people test things… I’m so accustomed to the UI that I’m likely to miss stuff.

treellama wrote:
Just updated my FW3A. Manual memory is fantastic—my two most used levels are moonlight and 1×7135 so now I can have quick access to both.

Sorry it took so long to add this function. People have been asking for it since 2017. Facepalm

ToyKeeper
ToyKeeper's picture
Offline
Last seen: 2 hours 1 min ago
Joined: 01/12/2013 - 14:40
Posts: 10810
Location: (469219) 2016 HO3

Lexel wrote:
I fglashed a driver with
INDICATOR_LED_SKIP_LOW

seems the first time after flashing it is in low mode
then 7 clicks do ON/OFF

That’s an error in your config file. Stop setting the default to a mode you don’t want.

Lexel wrote:
I got returned a Anduril flashlight from a customer who reported that the light gets very regularely stuck in a sort of blinky endless circle

I tried hardware fixes but it seems that the firmware itself gets stuck somehow

That was fixed in 2018. It happened sometimes when the switch signal was extremely noisy, and could generally be fixed by replacing the switch… but I modified the code to tolerate unusually bad switch hardware last year. Sounds like the firmware on that light is probably very old.

Lexel wrote:
I found a weird bug or new feature…

That’s intended behavior documented on page 1 of both manuals, and in the UI diagram. It has been that way since day 1.

Sometimes it takes new users a while to notice, but I’m a little worried that someone who builds products and sells services based on this code didn’t know about it.

Pages