Anduril Flashlight Reflash Reference (UPDATED FOR 2024)

Quick compilation of Anduril Flashlights and their firmware reflash procedures. BLF version of an older Reddit post.

For more details, visit Unofficial Guide to Updating Anduril Firmware — Unofficial Guide to Updating Anduril Firmware


Anduril-based flashlights make use of Atmel ATTINY microcontrollers (MCUs) for output/mode control, which can can be reflashed with updated or modified firmware.

A specific device is required to interface with the MCU to reprogram it. Older lights will require the use of a USBasp AVR programming board. This is a cheap device which plugs into a USB port and allows for interfacing with AVR MCUs. They can easily be found on Amazon and Aliexpress. (link1, link2)

Many newer models require a different USB to TTL serial module (link). Going forward most lights will be using this setup as it allows for more features from Anduril.

The reflashing process may depend on the light in question. Many flashlight drivers have exposed pads on their underside that allow for easy access to the MCU programming pins, making reflashing simple. Lights that do not have exposed flashing pads will require interfacing via other means, such as MCU programming clips (Amazon SOIC8 Clip)

Reflashing can be done with a PC, Mac, or Android phone. These guides cover the software side of reflashing: (ATTINY1634, 85) (ATTINTY1616 AVRDD - AVRDUDE) (Android Phone guide - both types)

IMPORTANT!!
Before reflashing, verify the firmware build used by your flashlight. 15C from off will enter version check mode, which blinks to display the date and model:
For A2 versions before 05-2023: YYYY-MM-DD ####
For A2 Versions after 05-2023: #### YYYY-MM-DD

The last four-number model code must be matched to the firmware build you decide to flash onto your light. A list of builds can be found at this link:
anduril/MODELS at trunk · ToyKeeper/anduril · GitHub

“Older” configuration

These lights use either an ATTINY1634 or an ATTINY85 and require USBasp for reflashing.

ATTINY1634:

  • Gen2 Emisar/Noctigon flashlights (DT8, DT8K, D4V2, D4SV2, D4K, D1V2, D1K, D2, DM11, DM1.12, KR4, KR1, K1, K9.3, M44 Meteor) - 2:4 pinout
  • Older high-end FireFlies lights w/ Lume 1-6AF drivers (E07x Pro, E12R, NOV-Mu, T9R) - 2:4 pinout
  • Lume 1 drivers (Found in Lumintop FW3X) - 2:4 pinout (newer drivers, 01/20 rev B, have two pins swapped)
  • Jetbeam EC26 - 6:0 pinout (unique)

The kit for flashing lights with the 2:4 pinout can be purchased here:

This kit contains 1 USBasp programming board and an adapter cable with pogo pins for interfacing with the pads on the driver. The USBasp is a generic component and can be easily replaced. This guide covers the use of the adapter:
Emisar D4V2 Flash Kit Instructions (Official How To) - LED Flashlights – General Info - BudgetLightForum.com

ATTINY85:

  • Many Lumintop lights (FW-series, BLF-GT/GT mini, EDC18)
  • Gen1 Emisar/Noctigon lights (D1, D1S, D4, D4S, D18)
  • Many FireFlies lights (E12C, E07, rot66/rot66G2, PL47, E01, PL09Mu) - 3:4 pinout, effectively 3:3 as one pin is unused
  • Wurkkos TS21 (older 2021/22 version)
  • Several Sofirn lights (LT1, SP36, SC31 Pro A1 version) - LT1 and some SP36 lights have a 3:3 pinout
  • Astrolux/Mateminco Anduril lights (MF01s, MF01 mini)

Some of the these lights will have a 3:3 pad layout on the driver, but most do not have exposed flashing pads. These are going to take more effort to reflash. The Emisar adapter can be used for this with some extra steps. Please refer to the guides below:

Some lights will require disassembly to reflash. Please refer to these guides:

“NEWER” Configuration
These lights use ATTINY1616 or AVRDD-series controllers, which require a different USB Serial to TTL module (Amazon link). As of 2024, Anduril has been reconfigured to allow more features in the future, enabled in part by these controllers.

The procedure for these lights will be different, please refer to this guide: https://www.pingle.org/2022/08/07/flashing-a-3-pin-t1616-flashlight-with-new-firmware (includes info on the AVRDUDE and pymcuprog methods)

For the 3out Drivers, US buyers can reach out to user @gchart to purchase custom flashing adapters (BLF, Reddit), or you you can purchase from JLHawaii808:

Those outside the US can purchase from @thefreeman: WTS : USB-UPDI Programmers for Attiny1616/AVR32DD20 drivers (Sofirn/Wurkkos/Fireflylite/Emisar)

ATTINY1616:

  • Sofirn SP10s/SP10 Pro, Q8, some versions of SP36, SC31 Pro, LT1 Mini, LT1S Pro - SP10 Pro and LT1S Pro use 3-pad pinout (layout variations exist)
  • Wurkkos TS10, TS25, TS11, FC13, revised TS21 - 3:0-pinout (similar or same as SP10 Pro)
  • New Lume X1-40W drivers
    • Fireflies E07x Pro, E12C, T1R, T9R, NOV-Mu (updated 2022/23 versions) - same 3-pad pinout
    • Fireflies E07X Canon, NOVmuV2, X1L Elite, X1S Pharos - I think these are the same pinout?
  • Sofirn SC21 Pro - Unique 6-pads with 3 pads in use (this guide covers reflashing the SC21)
  • Wurkkos TS30S Pro - unique pinout (more info)

AVRDD:

  • Gen3 Emisar/Noctigon lights - 3:0 pinout
    • Emisar D3AA - thefreeman driver
    • Emisar DA1K - Loneoceans Lume X1 (RevB)

The Emisars use the 3-pin pad layout that can be reprogrammed via UDPI. Hank will also be offering a new adapter for future V3 lights.

*Note that if you’re using the older 3.3v freeman adapter, there may be some issues with reflashing - more info here: WTS : USB-UPDI Programmers for Attiny1616/AVR32DD20 drivers (Sofirn/Wurkkos/Fireflylite/Emisar) - #251 by thefreeman


There are several lights using Lume-series drivers from Loneoceans, such as the Lume1-fireflies, Lume 1-6AF, Lume1-FW3X, and Lume X1-40W. It’s important to identify the correct driver for the reflashing process. Additional info from ToyKeeper on A2 versions for Lume drivers: ff-drivers link

While any of these lights can be reflashed if desired, if you are looking to start experimenting with firmware, the Emisar/Noctigon lineup is a great place to start, as they all use a standard system that is easy to work with.


Thanks to u/jim-p, @Zumlin, @Adair21, @DerMaxPower, u/CrentistDDS, @containerfan, @jon_slider, @gchart, @Terry_Oregon, @crgbt, @thefreeman, @ToyKeeper for much of the information and links here.

CHANGELOG:
2-20-2023 - Added new lights, links to ATTINY1616 instructions
2-22-2023 - Added freeman’s reflashing adapter
2-23-2023 - Added extra info for Sofirn/Wurkkos lights, added version check/firmware build instructions
4-13-2024 - Changed layout to reflect new Anduril updates with focus on AVRDD controllers going forward, Added a few new lights to ATTiny1616 and AVRDD sections, tried to improve reading clarity
4-26-2024 - Added info+links for older Anduril 1 version of Sofirn SC31 Pro
6-22-2024 - Updated models link to GitHub and added new version check info
10-24-2024 - Added DA1K/LumeX1 Hanklights, updated some info on fireflylites + relevant GitHub links, also added some gen2 hanklights I forgot

18 Thanks

What a fantastic, comprehensive resource. This will be bookmarked here and in my browser’s bookmark manager.

I nominate & encourage this post to be stickied!

Thank you so much LuxWad! - JC

3 Thanks

Excellent and amazing post. I wish this had been here a few months ago as I had to do some extensive research before updating all.my lights.

This needs to be stickied!

4 Thanks

There are different 3-pad layouts, so I’ve been referring to the standard one as Gchart’s 3-pad layout, since he came up with it. The layout is + - R with a 1.27mm (50mil) pitch.

I also sell an USB-UPDI adapter for drivers using Gchart’s layout, mainly for people outside the US since shipping costs less for me, well except that I’m out of stock at the moment :sweat_smile:

There is also AVRDUDESS, a GUI for AVRDUDE, and ZflasherAVR for Android that people tend to prefer using over command line software.

5 Thanks

Thanks for the added info, I put your flashing tool link into the main post.

Do you know which lights have which layout? It’s gotten quite difficult to keep them all straight at this point

1 Thank

I ordered a TS21 Jan 19th 2023 direct from Wurkkos and it has flashing Pads R-G-V
Firmware: 2022-02-08 0614 (Sofirn-sp36-t1616 attiny1616)

Left an older TS21 from July 2022, right new TS21
So we have both μC versions.

5 Thanks

Thanks for putting this info together! Guides like this are a great help for people trying to navigate complicated topics.

It’s too bad we haven’t gotten manufacturers to abide by any standards, no? It’d be nice if there was only one pad layout for each of the 3- and 6-pin MCUs… and only one adapter needed for each MCU family.

Anyway, it’d probably be a good idea to mention one of the most important steps in reflashing:

  • Run Version Check Mode first, and write down what it says.

This helps the user find the correct firmware to put on it. In particular, the last 4 digits (model number) are useful in figuring out which files are compatible.

4 Thanks

Btw. Do we have any old firmware for clicky drivers? I think they use the Attiny13 or 25??

1 Thank

Awesome, thanks for sharing this info and the image! I’ll update the guide.

1 Thank

The firmware repository has several projects which run on old clicky-switch drivers. However, Anduril requires an e-switch, and a tiny85 or better.

Firmware for clicky-switch lights is listed in the repository’s INDEX file, under “Button-Type” and then “clicky:”. Projects are also tagged with the type(s) of MCU they support, to help people locate suitable code to run on their hardware.

2 Thanks

Does any of these projects run on Convoy S2+ forward clickies?

For any of the e-switch Convoys, is there an Andurilb port?

I’m really trying to get into Convoys, but without Anduril, no way.

1 Thank

I’m not aware of any Convoy lights which run Anduril. However, some can run a reasonably wide variety of attiny13a clicky-switch firmwares, and even more are compatible with standard-sized drivers.

I use my “s7” firmware on most of mine, written for the Convoy S7 (but it runs on any nanjg-style driver). It’s an offtime-no-memory interface, so it advances to the next mode on short press, or resets to the beginning on long press (or off). Modes go from low to high, and then it has extras like battcheck and several interesting strobes, beacons, bike flashers, etc. It’s one of my oldest and most primitive UIs, but also still one of my favorites.

Some models can also run Crescendo, but I don’t recommend it because it really needs a 2-channel driver to make the ramping work well. Also a tiny25 MCU. And Crescendo is a bit awkward, since it’s a clicky-switch ramping UI, and that’s simply an awkward fit.

Some Convoy models ship with Biscotti, a very stripped-down version of Bistro. But most now ship instead with a derivative of Biscotti that Simon had made… mostly so he could do all his development locally instead of asking me to do it. I don’t think the derivative uses the same hardware, so it isn’t compatible for reflashing.

Or there are several other compatible firmwares in the repository.

Or it’s still possible to buy 17mm drivers to put into Convoy lights. That one can ship with Bistro, Crescendo, or some other UIs…


3 Thanks

Most Convoy drivers use a Sonix MCU, no idea if Anduril could be ported on it.

Edit : that one : SN8F5700 - 松翰科技 :: Sonix Technology Co., Ltd. :: SN8F570200

3 Thanks

Yeah that would be extremely nice, or at the very least, manufacturers should provide easily accessible info on what MCU and flashing layout they’re using, and notify us when changes are made.

Even better, I wish companies like Sofirn/Wurkkos, Fireflies, etc would provide their own flashing kits and documentation, especially if they want to use something different from everyone else.

Thanks for reminding me to add the version check information!

1 Thank

I have a D4SV2 purchased from Hank in mid 2021. It’s running Anduril 1 and I plan to upgrade it to Anduril 2 using the Android app and Hank’s kit.

Following the good advice to record the current firmware version before starting, but 15C does not seem to do anything, not even provide the date. I notice that the Anduril 1 UI diagrams I’ve seen don’t seem to show this feature, but several places mention it for both 1 and 2.

Was that feature not included in some Anduril 1 builds that Hank used?

1 Thank

Yes, some older (and manufacturer custom) builds do not include the model check feature.

However, all D4SV2 models before late 2021 used the FET+3+1 driver, which should be the emisar-d4sv2.hex (model no 0133)

3 Thanks

Thanks for clarifying

1 Thank

Most Convoy drivers use a Sonix MCU

Had a look and the Sonix costs $0.05 ea. in 1000 quantities: This product is no longer available.

A dyed-in-the-wool attiny1616 costs $0.10 ea. at the same quantities: ATTINY1616-MFR Microchip Technology | Integrated Circuits (ICs) | DigiKey

So, everything else being the same, Simon is saving 5 pennies on the Sonyx. :unamused:

I’m pretty sure most people would happily pay a dollar for a Anduril-capable light, which would net him a 1900% profit by offering Anduril.

All of this, of course, being applicable only for his e-switch lights.

EDIT: and it seems there’s no shortage of people wanting Anduril Convoys: https://www.reddit.com/r/flashlight/comments/118cc4f/would_you_be_willing_to_pay_a_reasonable_extra/

4 Thanks

Thank you TK for the very detailed, comprehensive answer!

1 Thank

I’m using the USBASP flash kit from Hank and it works perfect from my pc using avrdude command line. However, when I try to use Zflasher AVR on my Android phone, it does not detect the programmer. I’ve verified OTG is working, meaning I can connect a USB flash drive to it and it reads and writes just fine. Has anybody run into something like this and were you able to work around it?