Sofirn SP10 Pro (AA/14500/Andúril 2) - now available!

I guess I need to publish a straight-forward set of instructions. I haven’t done exactly that yet, but I do have a ton of info here: Adventures in TinyAVR 1-Series

Basically, you need to…

  1. Make sure you have python3 installed on your computer
  2. Install “pip” for python3 (it may already be installed if you have python3)
  3. Use pip to install the “pymcuprog” package
  4. Download (or compile) the hex file
  5. Use pymcuprog on the command line to flash the hex file. I recommend doing an erase before writing the new hex file. I have sample commands in the post I linked above.
  6. As an alternative to #5, instead of trying to find your serial port and typing out your own commands, I have a python script here that you can use to issue a simple command like “flash-1616.py anduril.hex” to help do the dirty work.

I recently updated the firmware on mine and I posted a tutorial on reddit

The instructions are for Windows only though.

How can I add a line for 5C to activate strobe? I believe 5C while on currently doesn’t have a function

How can I remove the mode for momentary on while off?

Much thanks to gchart and zumlin! Once I got windows to install python properly, it all just worked! gchart, the little python script works very well also.

Also, just get gchart’s pogo adapter with the resistor and diode on board, it is a bargain!

What other lights flash this way, is this the first?

:+1: This is the first light with this programming format. Sofirn (and maybe Wurkkos?) seem interest on using it on more lights, so I think we’ll probably be seeing more of it soon-ish.

I haven’t tested it but I believe you can do it as follows:

Take lines 254 to 265 from off-mode.c:

// click, click, long-click: strobe mode
#ifdef USE_STROBE_STATE
else if (event EV_click3_hold) {
set_state(strobe_state, 0);
return MISCHIEF_MANAGED;
}
#elif defined(USE_BORING_STROBE_STATE)
else if (event EV_click3_hold) {
set_state(boring_strobe_state, 0);
return MISCHIEF_MANAGED;
}
#endif

Replace EV_click3_hold with EV_5clicks

Then stick those lines of code into ramp-mode.c (line 160 might be a good place to put it)

Remove lines 266-273 from off-mode.c

#ifdef USE_MOMENTARY_MODE
// 5 clicks: momentary mode
else if (event == EV_5clicks) {
blink_once();
set_state(momentary_state, 0);
return MISCHIEF_MANAGED;
}
#endif

Thanks for the clear instructions. That should get me going.

I Hope we can use the programmer in the future. Of course that will depend on the drivers having programming pads.

Wurkkos doesn’t dilly dally. They get new concept lights produced!

So is the flash-to-off quirk a widespread issue or not? I have yet to see it on mine and I’ve been using it nearly every evening since I got it.

I have another niggle….this light is a PITA for tail standing. I was commenting in someone else’s thread (tactical grizzly maybe) where they said it tail stands well. I find that the surface needs to be flat-flat and pretty sturdy or else this light is liable to topple over. I sat it on an old pc box and it kept falling over….got out an angle gauge and it was about 4.5°. lol. There’s only something like 30% of the circumference that is a footprint for contact - they took way too much material away. If they come out with a green magnetic cap I’ll pick that up. For now, I put the Convoy T2 16mm ring magnet back in it…sticks up a little above the ears so it’s at risk for fracture but it helps the light tail stand properly.

Other than that I like this light a lot. Picked up some brass tubing 9.5mm x 1mm and will slice off some button washers soon.

Try turning it off from level 2 out of 7, stepped ramp, advanced mode with a 14500 inside. The stepping down before off bug was reproducible that way, but I have only seen the flash once or twice before I fixed it with a firmware update.

Nice, I want one…are you ready? :smiley:

Ah, a 14500 is needed to reproduce it? That’s why I don’t see it.

I’m ramped and 14500 only. Interesting. I’ll toy with that and see if I can make it happen. Hopefully it doesn’t awake a sleeping dragon. lol

One other change this FW makes, it enables the 3C unlock to off. That alone was worth it to me to learn the new process.

I can always see the flash at low levels. Haven’t updated the software yet.

I was also able to reproduce it with a NiMH before. It was at a different mid-lowish level but I can’t tell you exactly which now.

I also have the flashing issue on mine.

Well…there it is! Happened on a fresh 14500 as well as NiMH. In stepped mode I could only get it to happen on that low 2nd step…everything else was normal. Playing with quick successive power cycles, the behavior varied a lot in both delay and duration…and one time I got the super bright flash. Man that’s an irritating surprise when you’re in a low lumen state of mind! lol. With the light on that second step and then switching to ramping, it did the same thing. Bumped it up the ramp as little/quickly as I could and the next increment behaved the same, the one after that was intermittent. I also noticed a little bit of flutter on the down ramp in that lighting range…don’t see it on the up ramp, though. Weird.

I normally use this light at levels higher than this range-of-quirkiness so I don’t think I’ll bother flashing the firmware although I still want to learn that sometime soon.

Here are some white wall beam shots of SP10 compared with my other lights. White balance was manually set at 5000K. CIE x and y numbers are from Opple Light Master and duv are calculated online

Figure 1. Sofirn SP10 Pro LH351D 5000K vs BLF-348 Nichia 219c 5000K

Figure 2. Sofirn SP10 Pro LH351D 5000K vs Noctigon KR4 Nichia E21A 5000K

The measurements are as follows:
Sofirn SP10 Pro LH351D 5000K
CIE x=0.3546 y=0.3646
duv=0.0028

BLF-348 Nichia 219c 5000K
CIE x=0.3483 y=0.3463
duv=–0.0040

Noctigon KR4 Nichia E21A 5000K
CIE x=0.3474 y=0.3417
duv=–0.0060

I prefer lights with CCT of 5000K. This is my first time with LH351D. I am a little disappointed with its tint. Calculated duv appears to be fine, but when I shine the light on my skin, my skin appears to be show too much yellow and green.

Jep, sun on hand (12:30pm right now) - nice. LH351D 5000K on hand - :confounded: