I’m sorry, I only saw your message now. Responding:
I just posted the patch, the changes themselves were quite simple and I believe they speak for themselves. The problem, of course, is what to change, and where to change it.
To figure those out, the process I used is about the same I always use with high-quality C code like Anduril:
Some grep -r with reasonable keywords, to identify the parts of the source code that could be involved;
After examining the results from 1), have a look with less at the relevant source files to understand how what I want to change is handled, and the best way (and place) to change it. If the change is complex, I might have to look at a few simultaneously to figure things out (for that, I open multiple windows under screen and run one less process under each one).
Edit these source files to do what I need (pressing ‘v’ inside less opens up my preferred editor at the exact point I was viewing, ready for me to make my changes).
compile (paying attention to errors and warnings) and then flash into one of my lights to test.
If I can offer more clarification, just let me know,
Could this be because you’re not very familiar with the C language? If so, I strongly recommend you get this book and read it cover-to-cover, working through its examples and exercises: The C Programming Language - Wikipedia
It’s a classic and actually a very well written one – one of the best investments I did in my life were the hours I spent with this book when I started programming in C back in the mid-1980s.
And then hacking Anduril is OFC a great exercise for what you have learned in the book.
My only contact with C is playing with Anduril.
Well, the only one I know for sure is C… I’ve been into FOSS and modifying software off and on for 20 years, but a lot of things you just Do till it works, or not… Don’t worry about what the language is, learn as ya go for what you need… The only langauges I’ve actively learned are the POV-Ray SDL (A long time ago), and OpenSCAD, and eons ago I played in BASIC. A generally logical syntax, or maybe the word is structure, of C has made it relatively easy to play around in, but still 90% is over my head. Most of where it actually talks to the hardware is like speaking russian to an american toddler… LOL
I appreciate the book reccomendation a lot!
I’ve been batting around the idea of officially trying to learn a programming language, and C is the obvious choice because of Andurl… But I was putting it off too, wanted to ask a buddy that does a lot of programming both for fun and professionally, if C is worth learning these days, IF I wanted to learn something that could be professionally useful… (I’m hoping to get out of physical labor into a tech job if at all possible in the next few years…) Never get around to asking him that though.
But yeah, Anyway, I’ll pick up the book when I can!
C is a great language IMO, very fast and efficient and can run on practically any machine from MCUs to supercomputers. And at the same time it’s a relatively simple and small language with straightforward syntax and semantics, so not too difficult to approach by beginners. That Goode Olde K&R book will serve you very well as an introduction.
If you need any further tips OTR, feel free to contact me by PM (to avoid derailing this thread any more than we already did ) and it will be my pleasure to assist.
Another score for Anduril, the flashlight firmware that delivers! Incredible to think that there are people that won’t touch Anduril even if I lend them my bargepole…
Quick Anduril 2 question (well, 2):
Am I right in saying that step-down does not occur in Momentary mode?
Also, does step-down also not occur in Tactical mode?
Very good question! I do not recall seeing anything about thermal regulation for Momentary mode and Tactical mode in the manual.
The manual states for Extended Simple UI: “Old versions (before 2024-08) also allowed access to strobe/mood modes, which can be dangerous, so if you have one of those, think twice about letting kids use it. Those modes were never intended to be child-safe, and can reach full power with no thermal regulation.” But this is about the strobe/mood modes, not about Momentary mode or Tactical mode.
In the source code, I have also not come across this aspect until now. So, I do not know the answer, but I would be happy to learn about this as well. Maybe someone else can chime in.
Although I personally can’t imagine any scenario whereby I would engage either Momentary or Tactical modes long enough to trigger TR, I suppose it’s nevertheless possible.
However, of all the modes and/or potential situations where TR “step-down” might want to be omitted from the code, in my opinion, neither Momentary nor Tactical would be included. Just my 2 cents.
I did a couple of tests with a New MAO TS10 V2. I used a light meter to check output. Note: The TS10 I tested uses Sammys new 50% FET firmware 0000-2024-04-20…
Enabled Tactical, checked Tactical Maximum lumen output. It corresponds to a ceiling of 120/150.
I set thermal ceiling very low, to 31C
Ran Tactical (1H). It did NOT step down.
Ran Ceiling (2C from Off), it DID step down, within about 5 seconds.
Ran Turbo (2C from On), it DID step down, within about 5 seconds.
Conclusion, Tactical does NOT use Thermal Regulation. (it also does not use Turbo on this version of the firmware).
Next I tested Momentary.
I ramped to ceiling 120/150 and turned off the light.
Did 5C to enable Momentary
Did 1H to run Momentary. It did NOT step down.
Conclusion:
Momentary uses the same Ceiling as Tactical for its maximum (it does not remember Turbo, even if I use Turbo before turning off).
Momentary does NOT use Thermal Step down. (It also does not use Turbo in this version of the firmware)
Then I tested a different TS10 with firmware 0714-2023-12-03. This firmare has Turbo set to 100% FET… and Tactical Momentary uses 100% Fet.
Final Conclusion: (Regardless what firmware version I tested,)
There is No Thermal Regulation for Tactical (6C) Momentary Maximum, and No Thermal Regulation for Momentary (5C).
Apparently the Tactical Momentary (6C), and Momentary (5C) modes do Not implement Thermal Step Down. I dont know Why the developer made that decision. I can only report that is How it is.
Also, blinkies have No Thermal Step down, so it is possible to use Candle Mode on Maximum output, and the light will overheat. This is why it is a Bad Idea to have blinkies enabled in Simple Mode.
I have been advocating for blinkies to have Thermal Step Down enabled, but… nobody is listening…
In early Anduril there were No Blinkies in Simple Mode… Then a decision was made to Add blinkies to Simple Mode. Now there is talk that blinkies are going to be removed from Simple Mode again…
I have not seen a version of firmware without Simple Mode, lately. The latest version Im using is 2024-04-20, and it Does have blinkies in Simple Mode.
First off, for this it may be useful to have a common terminology. There are the strobe/mood modes (3H from Off), and there are the blinky/utitily modes (3C from Off). Then there is Simple UI, and there is Extended Simple UI. What we are talking about here are the strobe/mood modes in Extended Simple UI.
In generic Simple UI, there are no strobe/mood modes. In Extended Simple UI, there were strobe/mood modes until 2024-08, and there are NO strobe/mode modes after that anymore. Because there has not been an Anduril release after 2024-08 (the latest one being 2024-04-20), currently the strobe/mood modes are still enabled via Extended Simple UI.
IIRC Extended Simple UI is used by Hank and by Wurkkos, so these are the lights that you should be seeing the strobe/mood modes enabled via Extended Simple UI. I am not commenting on the addition of an Extended Simple UI here, I am also just reporting how it currently is.
This is also e.g. why a generic diagram and an exemplary model-specific diagram for model number 0135 look so different for Simple UI; it is because of the Extended Simple UI (orange background color in the exemplary model-specific diagram) that some lights have, and other lights do not.
Thanks for the tests. I personally don’t have an issue with no step down in tactical and momentary modes as the user has to hold down the switch. It is good to know what the behaviour of the lights is.
I understand that perspective. A trained operator wont have a problem with lack of Thermal Step Down.
From another point of view, it is “unsafe”, because excess heat can damage the LEDs. For example, I can imagine a less experienced person, wearing gloves, or just holding on to the tail end of a Ti light, running high outputs repeatedly without a cool down, with batteries that have higher Discharge Rates than the light ships with.
They might end up posting on Reddit, something like:
"For some reason the light wont stay on unless I keep holding the button down… Is this normal?
“Look at my new CuTiTs10, the LEDs started smoking and now one of them wont turn on. Is this normal?”
“Also, ever since I got this light, it wont turn off. Theres these disco LEDs on all the time. I have to unscrew the head to turn it off. Is this normal?”
On the other hand, if you subscribe to the concept of “tactical” mode being an actual defensive measure, ( I do Not… IMO all it does is give someone a good mark to shoot at!), you’d want it as bright as possible for as long as possible, step down to a non blinding level could get you killed; I think that might be part of the point of no step down. Dunno. But at that point, Living through any extended encounter would in theory be best; and the hell with whether you fried a flashlight to do so.
Kinda like crumple zones on cars… The car is crushed and totaled, but who cares since you live through it. (I don’t believe in that theory either, but thats neither here nor there) The applied concept is the same, the object is expendable compared to the persons well being.