SP36 head disassembly / reflash -- non-destructive? (ReFlashed! Didn't Break! - much-)

I’m pretty sure I’ve seen this answered somewhere, but I can’t find any references to it today.

As best I can recall, these are glued shut and require exceptional efforts to open. A step of one thread even involved soldering lifting tabs to the battery contact and using an improvised gear puller.

I suspect the only practical way to achieve this involves replacing with BLF versions, but I want to double check before I dip into the kid’s college fund - again. :student:

They’re all glued, but its easy to open without any damage.

I received my new mcpcb with Samsung Lhd emitters from Barry (for just 10$, including shipping) still have to replace the xpl2’s

This is how i opened it

Ahhh… THAT was the thread I was thinking of. Thanks!

I’m not as worried about changing the LEDs as I am with flashing Anduril. Well, unless adding aux lights into the head is an option. If that’s an easy substitution, I’d feel kind of silly not looking into it.

I got the bezel to come loose with my hands. What about the reflector? It seems to be pretty well connected to… something.

Now to figure out how to remove the switch ring. Since I’m going to be doing this more than once, is there a specific 4 pin spanner to look for?

I’ve had some success and a tiny bit of failure, so here I am.

I managed to get the switch and driver out. In the process I lost the tip off a dental pick. All in all, a fair trade I think.

The tools I used: A pair of weird, long needlenose with rounded tips, a dental pick, and a medium-stout S hook.

A little bit of careful convincing with the needlenose and the switch ring came right out. Holding them square and keeping outward pressure on the jaws made it fairly easy. Tip - try rotating the light instead of spinning the pliers.

Now came the fun part - getting the button itself out. I could only get a little purchase with the pick at the bottom of the board, and on one edge where there was a little divot out of the board. Some careful prying (and the sacrifice of the fine tip of the pick) and the switch was out.

Now it’s time for the scary part. Blindly jamming bits of metal into its brain. From the threads linked to above, I knew that the only things under the switch were soldered wires. Don’t be an idiot and things should be fine. (Side note - while the shape might be right, one of those disposable plastic dental floss sticks is nowhere strong enough to pull this off)

I straightened one side of the S hook a bit, put in in the hole, being careful to not pinch the switch wires, and gently pressed. Then I pressed some more. This was followed with some mild swearing, a little more pressure, then a pop.

I cleaned some glue off the driver to make reinstallation and subsequent re-dissassembly easier, then put it back together to make sure I hadn’t broken anything. And It Still Worked!

Now I’m off to find the programming tools I’ll need. Lets see… USBASP, some wires, that weird 8 pin clampy thing, etc.

I must be broken. I’m sitting here wondering how I could make some holes in the driver to pass wires and glue a pogo-pin contact to the battery side. :disguised_face:

Good job, glad you got it open! Those photos will be very helpful for people looking to get theirs open as well.


I’ll try to add more ‘for dummies’ steps as I figure out the Anduril flashing part too. Not necessarily step by agonizing step of finding and installing the software, but cabling, hookups, etc.

A side note - I lit this one up next to a BLF version to compare the output and see if / why I would want to change out the LED board. I’ll get images at some point, but for now I’ll just describe it… I don’t want to change them. The older one had an incredibly soft edged hotspot and a pleasing tone. The BLF version had a much more sharply defined hotspot and a very subtly less appealing tone.

Mine was pretty easy, it surprised me, as I was prepared for battle. I used a loop of 14ga wire. I bent maybe half an inch of each end 90 degrees and soldered it to each side of the battery contact ring. I figured the bend would allow much more of the wire to be soldered to the ring. I put my middle finger through the loop and gave it a little pull to test, then a little more, and the thing popped out before I really gave it hell. Maybe some of them are tougher than others.


This is not a ‘For Dummies’ step by step. You’ll have to follow some links and understand a few things. I hope these details help you get over some of the rough patches and uncertainties I ran into.

If you can get something attached to the battery ring to pull the driver, consider it. Getting the switch out is annoying. Getting it back in properly (and straight!) is also quite annoying

If you have access to a vice, consider rounding a nail and bending it like you see in some of the other links. Using the unbent S hook requires strong pliers and a moderate amount of whispered cursing.

A little lube on the button retaining ring and where it touches the rubber cover will make it easier to tighten down the ring without spinning the switch in its hole.

Sofirn uses glue… because its designs seem to require it. Don’t be foolish and try to clean it all off the ledge where the driver sits. A little glue will make the driver stay in place while you’re reassembling things later.


All my parts finally showed up. Odds are high you can find similar items cheaper, but I didn’t want to wait a month for Chinese shipping and wanted to get a quality test clip instead of a ‘mostly works’ copy. I also had an Amazon balance I could dip into.

- CPT-063 Test Clip SOIC8 Pomona 5250

- complete overkill jumper wire set

SOFTWARE/ Config resources I used - Windows Specific:

- ATiny13 flashing tutorial - this has nice pics on jumper wire hookups

- D4v2 flashing instructions - more useful details, and good download links for the two programs you need.

If you want to customize your code, you’ll have to download the source code and an IDE/Compiler. I’m not getting into that right now. If I do, I’ll add something about it.


The SP36 runs an ATiny85

Once you get things hooked up, this is the command to test the connection.
avrdude -p t85 -c usbasp -n

When your connection is tested and working, this is the command to do the flashing. Note, you’ll have to have a hex file in the folder you’re in and use the right hex file name. (the part in bold)
avrdude -c usbasp -p t85 -u -Uflash:w:anduril.2019-08-05.sofirn-sp36.hex

Double check you are using the right file. Accidentally putting FW3A code into an SP36 will provide loads of entertainment as you try to figure out how you’ve just broken your light.

With the driver oriented so the USB-C port is facing left, the controller chip is directly to its right. Pin 1 is on the bottom left.


Wiring Diagram between USBASP v2.0 and SOIC8 for SP36 / ATiny85. I lucked out - there were just enough different wire colors to do what I needed.

Wires as attached to the USBASP (top view / bottom view)

Wires attached to the test clip (top view / bottom view)

A little lube between the threaded ring and rubber button cover will make things easier on re-assmebly

Superb documentation. Did not find any pictures how to get the switch out before I found your post. Very useful.

Still waiting for my SP36 BLF, but flashing it to recent Anduril is already planned.

Popping the driver out of the SP36 Pro was easy, but i had bad luck with the SP36S (not Anduril, simple UI, and i ended damaging some components of the board, and i don’t know the values. If someone has or can take a picture of this driver it would help me to repair it.

Seems MCU is PIC18F245. It is still working because I can see that the MCU package is damaged? If MCU doesn’t work it is no worth to try to repair it. Why not PM Barry if he can send you replacement of damaged PCB. Two years ago there is also exist of Sofirn website SP36 host and driver board for sell. But they didin’t sell it them anymore. I have one of this SP36 hosts and now reflashed it with Anduril2.

MCU is working, but it has a broken pin, and i don’t know what it does yet. I’m trying to upload the hex from it, but it’s not responding the PICKIT. I’m going to try with MPLAB later, and I’m hoping that read protection is disabled. If I can’t read the hex, all i can do is resolder another PIC and try to port Anduril to it.

You can buy a SP36 BLF driver for $12.00. That can be your backup plan if you can’t get yours working. It’d be an upgrade for the SP36S anyway.

Sofirn Drivers

It’s alive (ish), only Fet regulation though, and no low battery warning. Pin 9 of MCU is responsible for the 7135 regulation, and it broke off, and pin 3 read the battery voltage, but i didn’t have small enough resistors to redo its voltage divider, so it’s on VDD for now. Its good enough for now, but i will try to pull the hex from it and write it on another PIC to get it fully working.

Not a total screw up.

Thanks jasontheguitarist, i have added it to cart, in case i end up screwing it up even more :wink:

I have trouble with the SOIC8 Clip grabbing onto the chip. It’s not very secured. Mine is from Aliexpress and they all look the same from other sellers.

What are you guys using?