New Basic UI (based on FSM/Anduril code) - do you like it?

Hi everyone,

I would like to present my ideas for an enhanced and improved user interface. I try to adopt everything that is popular in UIs like Wurkkos FC11 or Sofirn SP33 V3 and refine/add some features for more convenience and more consistency with the Andúril UI that flashoholics love so much. The focus on this UI will be essential, basic functionalities that most customers look for in a budget flashlight. Finding a good balance between fully-featured UIs like Andúril and KISS-principle lights is quite challenging, though. ;-)

Latest design:


Previous/historic ideas (for reference)...

The UI (drafted in Inkscape):

Abbreviations were adoped from TK's Andúril, i.e.

1C = 1 Click

2C = 2 Clicks

1H = Hold

Changes for the UI:

Add optional switch button illumination when OFF (STANDBY) or LOCKOUT

Add UI functionality: 7 clicks from OFF (STANDBY) to cycle switch LED from off - low - high - beacon
Add UI functionality: 7 clicks from LOCKOUT to cycle switch LED from off - low - high - beacon
[Both modes work independently, i.e. you can have a different setting in LOCKOUT and a different setting when the light is OFF (STANDBY)]

Enhance ECO mode in STEPPED MODE

Add two more ECO modes to the UI (0.2lm - 0.5lm - 2lm) in STEPPED MODE
Change UI: Hold from OFF to start 1st moonlight mode (0.2lm), keep holding to cycle to next mode (0.5lm - 2lm - 0.2lm - 0.5lm…)
RAMPING MODE will remain as is, starting from the lowest brightness (0.2lm) by „hold from OFF“ and ramps brightness up by keep holding the button

Remove ECO mode from the standard mode order in STEPPED MODE (Low - Medium - High only; Eco mode will be hidden)

Change cycle operation between STEPPED and RAMPING

OLD: Hold 3s from OFF to cycle between STEPPED and RAMPING (would be conflictual with Eco modes)
NEW: Click 4x from ON to cycle between STEPPED and RAMPING (no conflicts)

Change TURBO/STROBE behaviour

Double click from ON: TURBO, another double click to return to previous standard mode, single click to turn OFF
Double click from OFF: TURBO, single click to turn OFF
Triple click from ON: STROBE, another double click to return to previous standard mode, hold button to cycle between STROBE - SOS - BEACON, single click to turn OFF
Triple click from OFF: STROBE, hold button to cycle between STROBE - SOS - BEACON, single click to turn OFF

Hardware improvements (with regard to Wurkkos FC11 only):

  • Remove timed stepdown after 90s and implement ATR (55°C stepdown temperature).
  • Add PowerDelivery compatibility to the USB-C circuit to charge with smart chargers at 5V 1A (5W).
  • Replace standard driver by constant current buckdriver (see Sofirn SP35 for reference) for better and stable output regulation.
  • Include a more powerful battery.
1 Thank

Sounds great, especially the buck driver!

I haven’t used the “v2” UI, but one of my issues with the original FC11 was that the ramping was scaled poorly (too fast at the low end and too slow near the top). Has this been adjusted at all in this UI or the previous one?

It looks a lot like a simplified Anduril with a sprinkling of Manker’s recent UI update (the multiple moon modes). At first pass, I really really like it! A few comments/questions:

  1. I see no exit sequence from Lockout. Would it be like Anduril in that you need to loosen the tailcap and reseat it to exit Lockout? I see it’s 4C, nevermind!
  2. I don’t see how you exit Moon modes, but I’m guessing that’s just a 1C?
  3. When in Strobe modes, is there a 1C action? Does that turn the light off? this is in your description, just not in the diagram
  4. Since 2C from Turbo takes you back to the L-M-H modes, I’m guessing that 1C turns the light off? this is in your description, just not in the diagram
  5. PowerDelivery :+1: :+1:
  6. Buck Driver :+1: :+1:
  7. Remove timed step down :+1: :+1:
  8. ATR: please please please improve this algorithm (if they haven’t yet)

These sound like awesome improvements. I second BurningPlayd0h’s question about the ramping though.

Just don’t make the UI more complex than necessary. There are a lot of nice-to-have features, but focus on the core feature makes the light easier to use for new users and more reliable for advanced users. The suggested UI seems to be good.

Invest more time in creating a good, efficient boost driver. This is something that most budget lights don’t have. Keep in mind: A product sells when it has something special.
Software is relatively cheap. A firmware like this can be developed by a single person in few days to some weeks and once it’s done it can be used for thousands of flashlights. The driver has a big impact on your BOM. Not easy to find a working tradeoff between performance and cost. But it is worth the effort.

USB-C charging is often requested. Make it work with modern USB power supplies. No big deal, there are standard solutions that don’t cost much. A hole with a plug is easy to do and cheap. Not the nicest way, but better than nothing.

TIR optics! Reflectors are a bit dated. Select a TIR optic that works with the selected (high CRI!) LED.

Thermal regulation: If the light requires thermal management, do it right. A timed step down doesn’t help because it depends on the initial temperature. Sadly Sofirn/Wurkkos ATR is a big fail. If you can’t develop a reliable, non-oscillating regulation – just don’t do it. Use a simple step down depending on the temperature, but don’t step up again automatically. The user can increase the brightness again if he wants and the regulation should step down after some time.

Those seem like nice improvements! The only thing I’ll really miss from Anduril is the voltage readout. And good they are implementing PD compliance! I can’t believe some simple resistors get omitted on Type-C ports of some recent flashlights so they only charge with USB A -> USB C cables :person_facepalming:

Wow.. A lot of work has went into this.. Great job really!

Great job on this! Two areas I would have questions on and concerns, but maybe it's been covered in other threads or discussions.

LVP - I don't see it mentioned, and Anduril does a great job of this, even checking while the main LED(s) are off, ensuring the AUX/switch LED is even turned shut down. Will this firmware be as robust?

parasitic drain - we often overlook this

First of all, thanks for your work Lux-Perpetua.
I recently had contact with the FC11 (to gift to my aunts) and I liked the UI on the light, quite “simple” and easy to grasp.

Looking to your proposal I would like to note/ask some things. Please see it as a compliment to your effort and work, but also as a perspective from an eventual buyer.

And sorry if my obersvations are to stuck in the current UI :zipper_mouth_face:


  • SOS and BEACON - for me…useless modes. On the FC11 what I liked was that there were no other blinky modes to confuse my aunts (muggles). I know that it would imply holding from STROBE, but still, they are mostly useless, unlike strobe that can be more usefull on a daily situation (marking your position on the street when walking, signaling to someone).

- 4C to change between groups - Although the Hold from OFF in the “old version” could conflict with the Eco mode, in this case, I am not sure if it would be a better option to use 5 or 6 clicks from ON to alternate between the modes. 2C is already for Turbo, 3C is already for strobe, and for someone in “panic” 4C can be engage and disengage in Turbo without wanting. Just a thought. 5 or 6C would give the information that you really want to alternate between groups.

- ECO mode without transition to upper levels - If on the one side I do like the existence of different ECO levels through which you can cycle to suit your low illumination needs, on the other side I will be honest that I do not appreciate the absence of a transition bewteen ECO and LOW.
Because when you want to “jump” to the main cycle (L-M-H) you risk entering High instead of Low or Medium instead of Low. Unless the flashlight had the “always start in LOW” configuration (which is not nice for people that appreciate these lights for the memory feature), it will always be a blind shot in which mode you will start after leaving ECO modes. In this case, I appreciate more the current/old UI.


- Shouldn’t the 2C from STROBE go to TURBO instead the main cycle? This question is due to the coherence of the commands, as 2C is normally for Turbo/leave turbo. If the blinkies where not there, maybe a 1H from Strobe could go for the main stepped modes.

  • Isn’t there access from Turbo to Strobe?

Sorry if I understood wrongly any indication. This is a nice work and I hope some changes can be implemented to make these even better lights :+1:

It’s a <—> bidirectional arrow between off and lock-out if you look at the chart closely

Ahh yeah, good catch.

Thank you very much for all your feedback. The more feedback, the better the UI may get. Meanwhile I have continued to work on the "Essential UI" that could (and hopefully will) be used at least for some of Wurkkos's/Sofirn's upcoming flashlights.

Here's my latest update:

Most issues mentioned above were hopefully resolved. I have tried to improve the moonlight modes in stepped mode to not be caught in M1, M2 and M3 but to step brightness up to Low - Medium and High via 1H.

What's still to be considered?

  • 3C for access to Strobe from Turbo/Moonlight not correctly represented yet.
  • Accessibility of Turbo from Strobe to be discussed.
  • Reverse direction of stepped ramping via 2H or 1H (within 1.5s) similar to Andúril?

I must admit, I was not (that much) aware of this issue. However, I will pick it up for my upcoming discussions with the manufacturer(s). As brightness increase is not linear with the current increase it's some sort of science & math to do it properly. I'll leave this one to the engineers. :-D

Yes. Unfortunately, there were still some loose ends to tie up after I uploaded the picture. I hope the updated chart looks better. ;-)

TBH, until now this is more of a wishlist than an actual schedule. :-)) Some hardware features like PD compliance or buckdrivers are very likely to happen. As gchart and SammysHP correctly noted before, thermal regulation (ATR) is still a disputable in their proprietary firmware. I was told it has been improved with a much flattened amplitude of output fluctuation, see SP35 for reference. Unfortunately, we have not seen their new ATR in action yet. Sofirn's SF47T has just arrived at my door for being tested in the next days. I hope it already uses the new improved thermal regulation. TL;DR, voltage readout may be considered but I have some doubts. For one, accuracy of the chip's readings and for second I fear that most people will be fine with the standard indicator (green - red - flashing red) in the switch button LED.

Agreed. I have recommended Sofirn to some Chinese manufacturers that make high efficiency optics, e.g. Yajamei. They are about to testing some narrow-beam optics now, so this subject has been addressed already. :-) Wurkkos FC12 will be using a triple LED TIR lens as these were easier to source. I also recommended them a triple lens as it has a better beam shape compared to quad lenses (unless the LEDs are aligned to the board in different angles). My plan is that FC12 will be using different configurations like a microlensed/frosted optic or clear-narrow-beam optic as well as different LED setups like 3x LH351D 2700K - 5000K but also a "triple independent" model with 1x 2700K, 1x 4000K and 1x 5000K to work in serial connection to select each tint separately. I hope all of this can soon be discussed on a separate thread dedicated to the FC12 model.

Good point. Thanks Tom E. I will bring this to the manufacturer's attention more clearly. IMHO, LVP must work properly even if only the button LED drains the battery.

Muito obrigado MascaratumB. :-) I see what you mean. I hope that 1H from Strobe will be hidden enough to not be irritating for most users. Some customers may like SOS or Beacon. If it was up to me only, I would remove the entire strobe functionality. :-P

Hard to disagree with you here. Let's hear some more voices on that, so we can see where we are going. ;-)

I took your criticism into account. Please have a look at the new approach. I hope I have found a good compromise that is also in line with the stepped mode ramping of Andúril.

2C should normally bring you back from Turbo AND Strobe to the memorized standard stepped mode / ramped brightness. 3C from ON would always take you to Strobe. Maybe the UI chart needs some more finetuning to represent it correctly. Personally, I doubt that anyone has ever cycled between Strobe and Turbo mode but I am open to any better ideas, of course. However, in the name of consistency we could for sure change it to 3C to jump back from Strobe to the main cycle and 2C to go to Turbo.

Ah yes that would be nice in some cases, but I mostly forget Anduril has this functionality :person_facepalming:

Fair points, a voltage readout will be useless to most users I think. I also like a visible LED indication (sad to see some Sofirn’s with Anduril but without the status LED :confused: ), so both would be amazing! A “hidden” (5C/6C?) voltage readout would be very cool but certainly not required.

Well, I just bought the SP36 LH351D in 5000k, 2700k and now 4000k to, among other things, have a good reference for each value. But an all-in-one 21700 light would also be amazing! Microlensed/frosted optic or clear-narrow-beam optic and different LED configurations also sound awesome! I’ve already got a lot of Sofirn/Wurkkos lights, and I guess I won’t stop buying them any time soon :innocent:

Lastly, I’d love if the Sofirn/Wurkkos development thread becomes a little bit more more active with rumors/lights in development (how is the LT1 v2 coming along, …?). That way I can maybe sometimes hold off to buy a certain light (although this could also negatively impact sales maybe, I know) and also wait in joyful anticipation for new lights :smiley:

I love it.

This should be made in every flashlight if you ask me. Buck drivers, ATR at 55-60deg and simple UI.

Got a suggestion - can you insist they use an Anduril compatible MCU? Even better, we should actually develop this from the FSM/Anduril baseline for them.

I don't trust they can get the subtle things done correctly, like true ramping, LVP done the right way, and basic timing of critical things. I know I and TK spent a lot of time to get timings just right, and I see it done wrong in so many lights. Dunno, this may be a big ask...

Battery voltage,Don’t know if it would be possible with your button LED plans. How about edit, from OFF only 1H to go to moon light also flashed out the battery voltage on the switch just one time 1 or 2 seconds after releasing? No way to stop it, it just happens. they are already doing that now with the five second thing.edit Or just let the switch flash out the voltage anytime you turn the light on in any mode.

Honestly, that does sound like a pretty good idea Tom and could potentially save them development time. That’s what FSM (spaghetti-monster) is all about. The hardware interface layer is already there, you just configure a UI on top of it (like Anduril, Anduril2, Baton, Darkhorse, FireFlies UI, Meteor, etc).

Ya know… they could always use the attiny1616 :wink:

Yep! The 1616 is the best option: smallest footprint, less pins for flashing, cheapest, newest, calibrated temp sensor.....

Made some changes

That's a brilliant idea, guys! I will do my best to convince Wurkkos introducing the AVR-1 (1616-MNR) MCU which offers more I/O options, more memory, a factory-calibrated thermal sensor and more accurate thermal regulation than the ATtiny85. If it was possible to map this UI into the FSM/Andúril baseline it would be amazing. Thinking even further and provided that Wurkkos/Sofirn will somehow introduce flashing pads on their drivers it would even be possible to individually flash Andúril or this more simplified UI onto the MCU. Even though this would be a major breakthrough for their assortment of lights, it will for sure require sensitive and intense communication with the product managers in charge. ;-)

Meanwhile I made a new draft which incorporates some points from the former agenda. I received quite some criticism by TLF members who complained about too much complexity and moonlight modes that ramp up into the standard modes (L-M-H). As always, you can never please everyone.