Anduril-based flashlights make use of Atmel ATTINY microcontrollers (MCUs) for output/mode control, which can can be reflashed with updated or modified firmware.
Reflashing any light (except for AT1616-equipped models) 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.
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.
Reflashing can be done with a PC, Mac, or Android phone. These guides covers the software side of reflashing: (ATTINY1634, 85) (ATTINTY 1616 - AVRDUDE)
One of the most popular MCUs is the ATTINY1634, which often comes with a 2:4 pad layout. This MCU is used by:
The kit for flashing lights with the 2:4 pinout can be purchased here:
https://intl-outdoor.com/components/reflashing-kits.html?___SID=U
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: https://budgetlightforum.com/node/68263
The other most common MCU used in Anduril lights is the ATTINY85. This is found in:
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, though some extra effort will be required. Please refer to the guides below:
(Sofirn LT1): https://www.reddit.com/r/flashlight/comments/msiiqb/a_brief_guide_for_flashing_your_lt1_with_new/
(FireFlies PL47G2): https://www.pingle.org/2022/03/27/flashing-a-fireflies-pl47g2-with-new-firmware
Some lights will require diassembly to reflash. Please refer to these guides:
(Emisar D18): https://www.reddit.com/r/flashlight/comments/krvuup/guide_on_updating_an_emisar_d18_to_a_diy_version/
(Sofirn SP36 Pro): https://www.pingle.org/2022/03/27/flashing-a-2020-sofirn-sp36-pro-with-new-firmware
Finally, there are a few Anduril-based lights with ATTINY 1616 controllers:
These lights will require a different USB Serial to TTL module (Amazon link)
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)
While any of these lights can be reflashed if desired, if you are looking to start experimenting with fimware, the Emisar/Noctigon lineup is a great place to start, as they all use a standard system that is easy to work with.
(Originally written by u/Face_wad, last updated 2-20-2023)
I AM A BOT. PM WITH SUGGESTIONS AND CONTRIBUTIONS. SEE MY WIKI FOR USE.
Really easy. They program just like any other ESP32 development device.
Use USB serial at first, then if you put in a firmware with Over the Air firmware support, you can do updates over WiFI. For initial programming, you just need to buy a USB to TTL serial adapter like these:
https://www.amazon.com/HiLetgo-Module-Microcontroller-Download-Serial/dp/B00LZV1G6K
Just be SURE you use the 3.3V pins and not the 5V pins or you will fry the ESP32.
On the board, there are three holes for RX/TX and GND. Just connect the appropriate pins from the USB Serial dongle. You can solder a pin header in those hole, but in practice we just held the pins from the dongle in place while we programmed it. You also have to hold the bootloader button down,press reset, then release reset.