Flashing Firmware

Controller Chip Storage Areas

The flashlight controller chip has multiple distinct areas for storage. The two areas of concern for these purposes are:

flash

The area where the firmware itself is stored.

eeprom

The area where the flashlight stores its settings, such as mode memory, ramping mode/steps, aux light mode, and so on.

It’s possible for the format of this data to change between firmware versions, and between lights, so it’s not always feasible to back it up and restore it. This is also the reason why it’s a good idea to perform a Factory Reset after updating firmware.

Each of the programming methods covered here can read and write both areas, though the primary focus of this documentation is the flash area, since that holds the firmware.

Flashing Methods

There are three common methods which can be used to read from and write to the controller chips on lights: avrdude, zflasher, and pymcuprog. Of these, avrdude is the most versatile method so that guide has the most detail. The zflasher AVR app for Android is the simplest method to use, but requires an Android device.

Wrapping Up

After updating the firmware, perform a Factory Reset.

From there, set any desired preferences in the light, such as the aux light level in regular and lockout mode, ramp config, temperature offset, and so on.