Circuits, sawdust, and everything in-between

15VP v5.2.5 Firmware (Flashlight)

This documentation is intended to cover the advanced functionality of the 15VP v5.2 flashlight driver. In normal use you shouldn’t need any of it, but it’s fun to have there should you want to customize things.

Physical Layout

Quick Reference Guide

Print out this double-sided PDF, cut out one of the guides, roll it around a AA battery, and insert it into the battery tube. Now anytime you want to customize your driver, you have the instructions readily available!

Tutorial Videos

Quick Access Menu

ClicksLight ShowFunctionality
10-19NoneFlash out battery voltage & LED current
20-49Quick low->high->low rampSwitch between discreet and ramping UI’s
50-69Quick double-blinkEnter programming menu
70-79Quick low->high rampFlash out firmware version
80-89Quick triple-blinkMoonlight calibration subroutine
90-99Quick quintuple-blinkPrimary LED calibration subroutine
100+Furious flashingFactory reset
Quick access to common functions not requiring a trip to programming menu

Programming Menu

SettingLight ShowFunctionality
# of outputs1 blinkSet number of outputs from 1-4
Output 1 Brightness2 blinksSelect brightness from 24 levels
Output 2 Brightness3 blinksSame as above. Only appears if # outputs > 1
Output 3 Brightness4 blinksSame as above. Only appears if # outputs > 2
Output 4 Brightness5 blinksSame as above. Only appears if # outputs > 3
Mode Memory6 blinksStyle of mode memory (none, classic, hybrid)
Debounce7 blinksIgnore accidental clicks (off, short, med, long)
Stepdown8 blinksStretch runtime by lowering output (off, on)
3V Mode9 blinksEnable 3V battery support (off, on)
Click Length10 blinksSpeed to tap button for click (slow, med, fast)
Less commonly used configuration options and advanced features

Factory Defaults

From the factory, your circuit ships with the follow defaults set:

SettingDefault ValueNotes
# outputs4
Output 1 BrightnessLevel 04mA (1.5V) / 4ma (3.7V)
Output 2 BrightnessLevel 616mA / 16mA
Output 3 BrightnessLevel 15124mA / 124mA
Output 4 BrightnessLevel 24550mA / 925mA
Mode Memorynone
StepdownEnabled“Battery-stretch” to prevent strain on cell
3V ModeDisabled
Click LengthMedium

Battery Protection

The following thresholds are configured for low-voltage protection:

Voltage SourceLow Voltage WarningLow Voltage ShutdownNotes
0.9 – 1.9V0.950V0.800V
1.91 – 3.3V2.7V2.5VIf 3V Mode enabled
3.31 – 4.5V3.3V2.9V

Thermal Protection

The 15VP circuit has built-in thermal protection. If the temperature of the microcontroller exceeds 330 Kelvin (57°C or 134.33°F) the circuit will step-down output by 2 brightness levels. Temperature is measured every 20 seconds and the circuit will continue to stepdown until the temperature limit is reached.

Light Shows

Your driver may decide to display a little light-show while you’re using it! Refer to this table to decode what it’s trying to tell you.

Light ShowOperationNotes
0 blinks & tiny brightness decreaseOver-current stepdownCurrent too high
1 very quick blink & brightness decreaseThermal stepdownCircuit too hot
2 very quick blinks & brightness decreaseLow-voltage stepdownBattery low
2 slower blinks & brightness the sameLow-voltage notificationBattery low
3 hi-lo ramps to lo brightness; blinks every 5sLow-voltage shutdownBattery dead

Output Levels

The 15VP has 25 output levels with 2 output curves (1.5V and 3.7V). The approximate milliamp current for each driver level is as follows:

1.5V: 1,3,5,7,9,11,16,20,28,35,43,59,74,86,99,124,151,173,206,244,286,332,385,442,550
3.7V: 1,3,5,7,9,11,16,20,28,35,43,59,74,86,99,124,144,199,264,352,462,579,746,875,925


The nitty-gritty details of each setting can be found below!

Battery & Current Readout

The circuit measures both the battery voltage and LED current, then flashes them out.

User Interface

The 15VP v5.2 circuit features two different user interfaces (UI’s). You can switch between them at will. They allow you to control the brightness in different ways.

Firmware Version

Just as with the voltage/current readout, this function will flash out the current firmware version.

Moonlight Calibration

The lowest output of the circuit (Level 0 of 24) can be fine-tuned using this subroutine. The calibration value is remembered across battery changes. If you factory reset, you will need to do this again.

Primary LED Calibration

After a factory reset, you must calibrate the primary LED. This must be done twice:

  • Once with a fully-charged 1.2V Eneloop
  • Once with a fully-charged 4.2V lithium-ion cell

Calibration takes approximately 1 minute – your light will ramp slowly down measuring LED current and setting values appropriately. When calibration is complete, a small light show (3 sets of 5 blinks) will occur. You can re-run calibration at any time from the Quick Access Menu.