aboutsummaryrefslogtreecommitdiff
path: root/docs/anduril-manual.txt
diff options
context:
space:
mode:
authorSelene ToyKeeper2023-11-02 17:16:25 -0600
committerSelene ToyKeeper2023-11-02 17:16:25 -0600
commit7cb4fe0944b839f28dfd96a88a772cd6a8b58019 (patch)
tree8d3b203f1650edc28b1f67e1589e3bc870b33fa6 /docs/anduril-manual.txt
parentadded LICENSE (GPLv3) (diff)
downloadanduril-7cb4fe0944b839f28dfd96a88a772cd6a8b58019.tar.gz
anduril-7cb4fe0944b839f28dfd96a88a772cd6a8b58019.tar.bz2
anduril-7cb4fe0944b839f28dfd96a88a772cd6a8b58019.zip
reorganized project files (part 1)
(just moved files, didn't change the contents yet, and nothing will work without updating #includes and build scripts and stuff)
Diffstat (limited to 'docs/anduril-manual.txt')
-rw-r--r--docs/anduril-manual.txt994
1 files changed, 994 insertions, 0 deletions
diff --git a/docs/anduril-manual.txt b/docs/anduril-manual.txt
new file mode 100644
index 0000000..545af0f
--- /dev/null
+++ b/docs/anduril-manual.txt
@@ -0,0 +1,994 @@
+Anduril User Manual
+-------------------
+
+Anduril is an open-source firmware for flashlights, distributed under
+the terms of the GPL v3. The sources can be obtained here:
+
+ http://tiny.cc/TKAnduril
+ https://bazaar.launchpad.net/~toykeeper/flashlight-firmware/trunk/files/head:/ToyKeeper/spaghetti-monster/anduril/
+
+
+Quick Start
+-----------
+
+After putting a battery in the light and tightening the parts together,
+the light should quickly blink once to confirm it has power and is now
+operational. After that, basic usage is simple:
+
+ - Click to turn the light on or off.
+ - Hold the button to change brightness.
+ - Release and hold again to change brightness the other way.
+
+That is all the user needs to know for basic use, but there are many
+more modes and features available for people who want more.
+
+Before reading the rest of this manual, it is recommended that users
+look at the Anduril UI diagram(s), which should be provided along with the
+flashlight.
+
+
+Button presses
+--------------
+
+Button presses are abbreviated using a simple notation:
+
+ - 1C: One click. Press and then quickly release the button.
+ - 1H: Hold. Press the button, but keep holding it.
+ - 2C: Two clicks. Press and release quickly, twice.
+ - 2H: Click, hold. Click two times, but hold the second press.
+ - 3C: Three clicks. Press and release quickly, three times.
+ - 3H: Click, click, hold. Click three times, but hold the final press.
+
+The same pattern is used with higher numbers too. For example, 10C
+means ten clicks... and 10H means ten clicks but hold the final press.
+
+
+Simple UI
+---------
+
+By default, the light uses a simple UI. This is useful if you lend the
+light to someone else, or if you just don't want to bother with any
+crazy disco modes.
+
+Simple UI has all the basic functions needed to work as a flashlight,
+but the minimum and maximum brightness are limited by default to make it
+safer, and any complex or advanced functions are blocked.
+
+Functions available in Simple UI include:
+
+ - 1C: On / off
+ - 1H: Ramp up (or down, if button was released less than a second ago)
+ - 2H: If light is on : ramp down
+ If light is off: momentary high mode
+ - 2C: Double click to go to / from highest safe level
+ - 4C: Lockout mode.
+
+Some other modes and functions are available too. When the light is
+off, these are the options:
+
+ - 3C: Battery check mode. (displays voltage once, then turns off)
+ - 4C: Lockout mode.
+ - 10H: Switch to Advanced UI.
+ - 15C or more: Version check.
+
+In Lockout mode with Simple UI, there are a few functions:
+
+ - 1H: Momentary moon
+ - 2H: Momentary low
+ - 3C: Unlock and turn off
+ - 4C: Unlock and turn on
+ - 4H: Unlock and turn on at low level
+ - 5C: Unlock and turn on at high level
+
+To change between Simple UI and Advanced UI, turn the light off and then
+do one of these:
+
+ In Simple UI:
+ - 10H: Go to Advanced UI.
+
+ In Advanced UI:
+ - 10C: Go to Simple UI.
+ - 10H: Configure Simple UI.
+
+If you get lost, or if you want to auto-calibrate the temperature
+sensor, do a factory reset. The process for this is:
+
+ - Loosen tailcap
+ - Hold button
+ - Tighten tailcap
+ - Keep holding button for about 4s
+
+The light should flicker while getting brighter, then briefly burst to
+full power. Hold until it reaches full power to do a reset, or let go
+of the button early to abort.
+
+On some lights, like products where the tailcap method is impossible,
+use 13H from Off to do a factory reset. If this is difficult, try
+counting it like music to make it easier:
+
+ 1 2 3 4
+ 1 2 3 4
+ 1 2 3 4
+ HOLD
+
+Simple UI is enabled after each factory reset.
+
+Simple UI can be configured in several ways, but not while Simple UI is
+active. So go to the Advanced UI, configure things, then go back to
+Simple UI.
+
+Configurable options include:
+
+ - floor level
+ - ceiling level
+ - number of steps (in stepped ramp)
+ - turbo style
+
+Other options are inherited from Advanced UI:
+
+ - ramp style (smooth / stepped)
+ - smooth ramp speed
+ - ramp-after-moon style
+ - memory settings
+ - auto-lock settings
+ - aux LED settings
+ - voltage calibration
+ - thermal regulation settings
+ - hardware-specific "misc menu" settings
+
+
+Advanced UI
+-----------
+
+Most of the information below this is for the Advanced UI. Anything not
+already noted above is blocked in the Simple UI.
+
+
+Ramping / Stepped Ramping Modes
+-------------------------------
+
+Anduril's ramping mode uses a smooth ramp or a stepped ramp, depending
+on which style the user prefers.
+
+Each ramp has its own settings -- floor (lowest level), ceiling (highest
+level), and the stepped ramp can also have a configurable number of
+steps.
+
+Additionally, Simple UI has its own ramp settings for floor, ceiling,
+and number of steps. The smooth/stepped style is inherited from the
+Advanced UI's ramp.
+
+There are four ways to access ramping mode when the light is off:
+
+ - 1C: Turn on at the memorized brightness.
+ (see below for details about what "memorized" means)
+
+ - 1H: Turn on at the floor level. Let go after the light turns on to
+ stay at the floor level, or keep holding to ramp up.
+
+ - 2C: Turn on at the ceiling level.
+
+ - 2H: Turn on at full power, turn off when released. (momentary turbo)
+ (in Simple UI, this uses the ceiling level instead of turbo)
+
+While the light is on, a few actions are available:
+
+ - 1C: Turn off.
+ - 2C: Go to or from the turbo level.
+ (or if it has regulated down, "bump" back up to turbo)
+ (turbo level / behavior is configurable)
+ - 1H: Change brightness (up). If the button was released less than a
+ second ago, or if it's already at the ceiling, it goes down instead.
+ - 2H: Change brightness (down).
+
+ - 3C: Switch to the other ramp style. (smooth / stepped)
+ (or activate the next channel mode, when more than one is enabled)
+ (then use 6C instead, for smooth / stepped toggle)
+ - 6C: Switch to the other ramp style. (when 3C is mapped to next channel)
+
+ - 3H: Momentary turbo (when current channel has no tint to ramp).
+ - 3H: Tint ramping (only when current channel has adjustable tint).
+ - 4H: Momentary turbo, when 3H is mapped to tint.
+
+ - 4C: Go to lockout mode.
+
+ - 5C: Go to momentary mode.
+ - 5H: Start a sunset timer. Details are below in the Sunset Timer section.
+
+ - 7H: Ramp config menu.
+ - Item 1: Floor level.
+ - Item 2: Ceiling level.
+ - Item 3:
+ Stepped ramp: Number of steps. Can be 1 to 150.
+ Smooth ramp: Ramp speed.
+ 1 = Full speed, ~2.5s from end to end.
+ 2 = Half speed, ~5s from end to end.
+ 3 = Third speed, ~7.5s.
+ 4 = Quarter speed, ~10s.
+
+ - 10C: Activate manual memory and save the current brightness.
+ - 10H: Ramp extras config menu.
+ - Item 1: Disable manual memory and go back to automatic memory.
+ (doesn't matter what value the user enters at the prompt)
+ - Item 2: Configure the manual memory timer.
+ Sets the timer to N minutes, where N is the number of
+ clicks. A value of 0 (no clicks) turns the timer off.
+ - Item 3: Configure whether to ramp up after "Off -> 1H".
+ 0: Ramp up after moon.
+ 1: Don't ramp up, just stay at the floor level.
+ - Item 4: Configure Advanced UI's turbo style:
+ 0: No turbo, only ceiling.
+ 1: Anduril 1 style. Ramp -> 2C goes to full power.
+ 2: Anduril 2 style. Ramp -> 2C goes to ceiling,
+ or goes to full power if user ramped up to ceiling first.
+ This value also affects momentary turbo in Ramp and Off modes.
+ - Item 5: Configure "smooth steps".
+ 0: Disable smooth steps.
+ 1: Enable smooth steps.
+
+Memory determines which brightness level the light goes to with 1 click
+from off. There are three types of brightness memory to choose from:
+
+ - Automatic: Always uses the last-ramped brightness.
+ (does not memorize levels accessed by a shortcut,
+ like turbo, 2C for ceiling, or 1H-from-off for floor)
+
+ - Manual: Always uses the user's saved brightness.
+
+ - Hybrid: Uses the automatic memory brightness if the light was only
+ off for a short time, or resets to the manual memory level if it was
+ off for a longer time.
+ The timer for this is configurable from 0 to ~140 minutes.
+
+Another way to think of it is: There are three styles of memory for the
+last-ramped brightness level...
+
+ - Always remember (automatic)
+ - Remember for N minutes (hybrid)
+ - Never remember (manual)
+
+To choose a memory style, set the configuration accordingly:
+
+ mem type manual mem manual mem timer
+ -------- ---------- ----------------
+ automatic off any
+ manual on zero
+ hybrid on non-zero
+
+If "smooth steps" is enabled, the stepped ramp uses a smooth animation
+between steps, and turning the light on/off has the edges smoothed off
+too. With "smooth steps" turned off, these brightness changes are
+immediate.
+
+
+Sunset Timer
+------------
+
+In the ramp mode or candle mode, it's possible to make the light turn
+itself off after a while.
+
+To activate the timer, go to the brightness you want and then use a 5H
+action. Keep holding the button, and the light should blink once per
+second. Each blink adds 5 minutes to the timer.
+
+In ramp mode, it slowly dims until it's at the lowest level, then shuts
+off. In candle mode, it stays at the same brightness until the final
+minute, at which point it dims and dies out.
+
+The user can change the brightness while the timer is active. If this
+happens during the final few minutes, it also "bumps" the timer up to a
+minimum of 3 minutes. So if it's getting really dim and you need a
+little more time, you could do a 5H to add 5 minutes, or simply ramp up
+to the desired brightness.
+
+
+Other Modes
+-----------
+
+Anduril has several other modes too. To access these, press the button
+more than 2 times when the light is off:
+
+ - 3C: Blinky / utility modes, starting with battery check.
+ - 3H: Strobe modes, starting with the most recently used strobe.
+ - 4C: Lockout mode.
+ - 5C: Momentary mode.
+ - 6C: Tactical mode.
+ - 7C / 7H: Aux LED configuration.
+ - 9H: Misc Config menu. (only on some lights)
+ - 10H: Simple UI configuration menu.
+ - 13H: Factory reset (on some lights).
+ - 15C or more: Version check.
+
+
+Lockout Mode
+------------
+
+Click 4 times from Off to enter Lockout mode. Or 4 times from Ramp.
+This makes the light safe to carry in a pocket or a bag or anywhere else
+the button might be pressed by accident.
+
+To exit lockout mode, click 4 times. The light should blink briefly and
+then turn on at the memorized level. Or hold the final press to turn on
+at the floor level instead:
+
+ - 3C: Unlock and go to "Off" mode
+
+ - 4C: Go to ramp mode (memorized level).
+ (uses manual mem level if there is one)
+
+ - 4H: Go to ramp mode (floor level).
+
+ - 5C: Go to ramp mode (ceiling level).
+
+Lockout mode also doubles as a momentary moon mode, so the user can do
+quick tasks without having to unlock the light. The brightness in
+lockout mode has two levels:
+
+ - 1H: Light up at the lowest floor level.
+
+ - 2H: Light up at the highest floor level.
+ (or the manual mem level, if there is one)
+
+ - 3H: Next channel mode (if more than one is enabled).
+
+It is also possible to make the light lock itself automatically after
+being turned off. To enable this, go to lockout mode and use a 10H
+action to activate the auto-lock config menu. Release the button after
+the first blink. Then at the prompt, click N times to set the auto-lock
+timeout to N minutes.
+
+ - 10H: Auto-lock config menu. Click N times to set timeout to N minutes.
+ A value of zero disables the auto-lock feature.
+ So, to turn off auto-lock, don't click at all.
+
+And on lights which have aux LEDs, there may be additional functions:
+
+ - 7C / 7H: Change Lockout Mode's aux LED pattern. More details on
+ this below, in a separate section.
+
+
+Blinky / Utility Modes
+----------------------
+
+Click 3 times from Off to access Anduril's blinky / utility modes. This
+always starts at battery check and the user can proceed to other blinky
+modes if Advanced UI is enabled. The sequence is:
+
+ - Battery check.
+ - Temperature check (if light has a temperature sensor).
+ - Beacon mode.
+ - SOS mode (if enabled).
+
+In all of these modes, some basic actions are available:
+
+ - Click: Turn off.
+ - 2 clicks: Next blinky mode.
+
+Additionally, in battery check and temperature check modes:
+
+ - 7H: Go to the voltage config menu or thermal config menu.
+
+In more detail, this is what each blinky / utility mode does:
+
+ Battery check:
+
+ Blinks out the battery voltage per cell. Full is 4.2V, empty is
+ about 3.0V. The light blinks the whole-number digit first, pauses,
+ then blinks out the "tenths" digit. Then a longer pause, and it
+ repeats.
+ So for 4.2V, it would be "blink-blink-blink-blink .. blink-blink".
+
+ A "zero" digit is represented by a very quick blink.
+
+ On lights with more than one set of LEDs, pressing 3C during batt
+ check mode can select which set of LEDs (which channel mode) it uses
+ to blink out numbers.
+
+ The voltage config menu has these settings:
+
+ 1. Voltage correction factor. This adjusts the battery
+ measurement sensor, allowing the user to add or subtract up to
+ 0.30V in 0.05V steps. Click N times to enter a value:
+
+ 1C: -0.30V
+ 2C: -0.25V
+ 3C: -0.20V
+ 4C: -0.15V
+ 5C: -0.10V
+ 6C: -0.05V
+ 7C: default, 0V
+ 8C: +0.05V
+ 9C: +0.10V
+ 10C: +0.15V
+ 11C: +0.20V
+ 12C: +0.25V
+ 13C: +0.30V
+
+ 2. Post-off voltage display timeout. (only on lights with RGB aux)
+ This setting determines how many seconds the RGB aux LEDs
+ display the voltage color after the torch goes to sleep. Click
+ once per desired second, or zero times to turn this function
+ off.
+
+ Temperature check:
+
+ Blinks out the current temperature in degrees C. This number should
+ be pretty close to what a real thermometer says. If not, it would
+ be a good idea to enter the thermal config menu and calibrate the
+ sensor. Or let the light settle to room temperature, then use
+ factory reset to auto-calibrate the sensor.
+
+ The thermal config menu has two settings:
+
+ - Current temperature. Click once per degree C to calibrate the
+ sensor. For example, if the ambient temperature is 21 C, then
+ click 21 times.
+
+ - Temperature limit. This sets the maximum temperature the light
+ can reach before it will start doing thermal regulation to keep
+ itself from overheating. Click once per degree C above 30. For
+ example, to set the limit to 50 C, click 20 times. The default is
+ 45 C, and the highest value it will allow is 70 C.
+
+ Beacon mode:
+
+ Blinks at a slow speed. The light stays on for 100ms, and then
+ stays off until the next blink. The brightness and the number of
+ seconds between pulses are configurable:
+
+ - Brightness is the user's memorized ramp level, so set this in
+ ramping mode before activating beacon mode. Follows the same
+ memory rules as ramping -- automatic, manual, or hybrid.
+
+ - Speed is configured by holding the button. The light should
+ blink once per second while holding the button. Release it
+ after the desired amount of time has passed, to set a new beacon
+ speed.
+ For example, to do a 10-second alpine beacon, hold the button
+ for 10 seconds.
+
+ SOS mode:
+
+ Blinks out a distress signal. Three short, three long, three short.
+ Repeats until light is turned off or until battery is low.
+
+ The memorized ramp level determines the brightness of SOS Mode.
+
+
+Strobe / Mood Modes
+-------------------
+
+Anduril includes a few extra modes for a variety of purposes:
+
+ - Candle mode
+ - Bike flasher
+ - Party strobe
+ - Tactical strobe
+ - Lightning storm mode
+
+Click 3 times from Off to access these, but hold the third click for a
+moment. Click, click, hold. The last-used strobe mode is remembered,
+so it will return to whichever one you used last.
+
+In all of these modes, a few actions are available:
+
+ - 1C: Turn off.
+ - 2C: Next strobe / mood mode.
+ - 1H: Increase brightness, or strobe faster. (except lightning)
+ - 2H: Decrease brightness, or strobe slower. (except lightning)
+ - 4C: Previous strobe / mood mode.
+ - 5C: Go to momentary mode, for a momentary strobe.
+ (this is useful for light painting)
+
+Additionally, candle mode has one more action:
+
+ - 5H: Activate Sunset Timer, and/or add 5 minutes to the timer.
+
+In more detail, here is what each mode does:
+
+ - Candle mode
+
+ Brightness changes randomly in a pattern resembling a candle flame.
+ If a timer is set, it will run until the timer expires, then get
+ dimmer for one minute, then sputter and turn itself off. Without a
+ timer, candle mode runs until the user turns it off. Brightness is
+ configurable.
+
+ - Bike flasher
+
+ Runs at a medium level, but stutters to a brighter level once per
+ second. Designed to be more visible than a normal ramping mode, but
+ otherwise works mostly the same. Brightness is configurable.
+
+ - Party strobe
+
+ Motion-freezing strobe light. Can be used to freeze spinning fans
+ and falling water. Speed is configurable.
+
+ - Tactical strobe
+
+ Disorienting strobe light. Can be used to irritate people. Speed
+ is configurable, and the duty cycle is always 33%.
+
+ Be careful about heat in this mode, if using it for a long time.
+
+ - Police strobe (on some lights)
+
+ 2-color police style strobe. Only works on lights with 2 or more
+ colors.
+
+ - Lightning storm mode
+
+ Flashes at random brightness and random speed to simulate lightning
+ strikes during a busy lightning storm. Do not look directly at the
+ flashlight when this mode is running, because it may suddenly go to
+ full power without warning.
+
+
+Momentary Mode
+--------------
+
+Click 5 times from Off to enter Momentary mode. Or 5 times from Ramp,
+or 5 times from a strobe mode.
+
+This locks the flashlight into a single-mode interface where the LEDs
+are only on when the button is held down. It is intended for Morse
+code, light painting, and other tasks where the light should be on only
+for a short time and probably in a pattern.
+
+Momentary mode does either a steady brightness level or a strobe,
+depending on which was active before going to momentary mode. To select
+which one, go to the mode you want to use, adjust the brightness and
+speed and other settings, then click 5 times to enter momentary mode.
+
+In steady mode, brightness is the memorized ramp level, so adjust that
+in Ramp Mode before entering momentary mode.
+
+In momentary strobe mode, the settings are copied from the last-used
+strobe mode, such as party strobe, tactical strobe, or lightning.
+
+To exit this mode, physically disconnect power by unscrewing the tailcap
+or battery tube.
+
+
+Tactical Mode
+--------------
+
+Click 6 times from Off to enter Tactical Mode, or 6 times in Tactical
+Mode to exit and go back to "Off".
+
+Tactical Mode provides instant momentary access to high, low, and
+strobe, but each of these is configurable. The inputs are:
+
+ - 1H: High
+ - 2H: Low
+ - 3H: Strobe
+
+Each of these only lasts as long as you hold the button.
+
+Other commands in Tactical Mode are:
+
+ - 6C: exit (go back to Off Mode)
+ - 7H: Tactical Mode config menu
+ - 1st blink: configure tactical slot 1
+ - 2nd blink: configure tactical slot 2
+ - 3rd blink: configure tactical slot 3
+
+To change what is in a tactical slot, press 7H, then release the button
+after the 1st, 2nd, or 3rd blink. Then enter a number. Each click adds
+1, and each hold adds 10. The number can be:
+
+ - 1 to 150: set the brightness level
+ - 0: last-used strobe mode
+ - 151+: go directly to a specific strobe mode
+ 151 = party strobe
+ 152 = tactical strobe
+ 153+ = other strobes, in the same order they're in in the "Off -> 3H"
+ strobe group
+
+This assumes the light has a ramp 150 levels long. Strobe modes start
+at the ramp size plus 1, so it may be different if a light has a
+different ramp size.
+
+
+Configuration Menus
+-------------------
+
+Every config menu has the same interface. It has one or more options
+the user can configure, and it will go through them in order. For each
+menu item, the light follows the same pattern:
+
+ - Blink once, then go to a lower brightness. The user can keep
+ holding the button to skip this menu item, or release the button to
+ dive in and enter a new value.
+
+ - If the user released the button:
+
+ - Stutter or "buzz" quickly between two brightness levels for a few
+ seconds. This indicates that the user can click one or more times
+ to enter a number. It will keep buzzing until the user stops
+ clicking, so there is no need to hurry.
+
+ The actions here are:
+ - click: add 1
+ - hold: add 10 (only in versions 2021-09 or later)
+ - wait: exit
+
+After entering a number, or after skipping every menu item, it waits
+until the button is released then exits the menu. It should return to
+whatever mode the light was in before entering the config menu.
+
+
+Ramp Config Menu
+----------------
+
+While the light is on in a ramping mode, click 7 times (but hold the
+final click) to access the config menu for the current ramp.
+
+Or, to access the ramp config for Simple UI, make sure the Simple UI is
+not active, then do a 10H action from Off.
+
+For smooth ramping mode, there are three menu options:
+
+ 1. Floor. (default = 1/150)
+ 2. Ceiling. (default = 120/150)
+ 3. Ramp speed. (default = 1, fastest speed)
+
+For the stepped ramping mode, there are three menu options:
+
+ 1. Floor. (default = 20/150)
+ 2. Ceiling. (default = 120/150)
+ 3. Number of steps. (default = 7)
+
+For the Simple UI mode, there are four menu options. The first three
+are the same as stepped ramping mode.
+
+ 1. Floor. (default = 20/150)
+ 2. Ceiling. (default = 120/150)
+ 3. Number of steps. (default = 5)
+ 4. Turbo style. (default = 0, no turbo)
+
+Default values are different for each model of flashlight. The numbers
+above are only examples.
+
+To configure the floor level, click the button equal to the number of
+ramp levels (out of 150) at which the floor should be. To set the
+lowest possible level, click once.
+
+To configure the ceiling level, each click goes one level lower. So 1
+click sets the highest possible level, 2 clicks is the 2nd-highest, 3
+clicks is the 3rd-highest level, etc. To set the default of 120/150,
+click 31 times.
+
+When configuring the number of steps, the value can be anything from 1
+to 150. A value of 1 is a special case. It places the step halfway
+between the floor and ceiling levels.
+
+
+Version Check Mode
+------------------
+
+This allows people to see which version of the firmware is installed on
+their light. The format for this is (usually) 12 digits -- a model
+number and a date. BBPP.YYYY-MM-DD
+
+ - BB: Brand ID
+ - PP: Product ID
+ - YYYY: Year
+ - MM: Month
+ - DD: Day
+
+Versions before 2023-05-30 used YYYYMMDDBBPP format.
+Anduril 1 used only YYYYMMDD format, or none at all.
+
+The date is when the firmware was compiled. If the vendor did not set
+this value, it defaults to 1969-07-20, the date of first human contact
+with the moon. However, it might not be a date at all; some vendors may
+specify a completely different type of value here.
+
+The brand/product values are also known as the model number. These are
+hard-coded in the source code for each light's build target, and can be
+looked up in the "MODELS" file or by using the "make models" command.
+
+
+Protection Features
+-------------------
+
+Anduril includes low voltage protection (LVP) and thermal regulation.
+
+LVP makes the light step down to a lower level when the battery is low,
+and if the light is already at the lowest level, it shuts itself off.
+This activates at 2.8V. LVP adjustments happen suddenly, in large
+steps.
+
+Thermal regulation attempts to keep the light from overheating, and
+otherwise adjusts output to stay as close as possible to the
+user-configured temperature limit. Thermal adjustments happen
+gradually, in steps so small they are difficult for humans to perceive.
+
+
+Aux LEDs / Button LEDs
+----------------------
+
+Some lights have aux LEDs or button LEDs. These can be configured to do
+different things while the main emitters are off. There is one aux LED
+mode for the regular "off" mode, and another aux LED mode for "lockout"
+mode. This allows the user to see at a glance whether the light is
+locked.
+
+Aux LED modes typically include:
+
+ - Off
+ - Low
+ - High
+ - Blinking
+
+To configure the aux LEDs, go to the mode you want to configure and then
+click the button 7 times. This should change the aux LEDs to the next
+mode supported on this light.
+
+ - 7C: Next aux LED mode.
+
+If the aux LEDs can change color, there are additional actions to change
+the color. It is the same as above, but hold the button on the last
+click and then let go when the desired color is reached.
+
+ - 7H: Next aux LED color.
+
+On most lights, the colors follow this sequence:
+
+ - Red
+ - Yellow (Red+Green)
+ - Green
+ - Cyan (Green+Blue)
+ - Blue
+ - Purple (Blue+Red)
+ - White (Red+Green+Blue)
+ - Disco (fast random colors)
+ - Rainbow (cycles through all colors in order)
+ - Voltage (uses color to display battery charge)
+
+In voltage mode, the colors follow the same sequence, in the same order
+as a rainbow... with red indicating a low battery and purple indicating
+a full battery.
+
+For lights with a button LED, the button LED typically stays on while
+the main emitters are on. Its brightness level is set in a way which
+mirrors the main LED -- off, low, or high.
+
+For lights with a RGB button LED, the button LED indicates battery
+charge during use in the same manner as the aux LED voltage mode.
+
+For lights with front-facing aux LEDs, the aux LEDs typically stay off
+when the main emitters are on, and when the light is otherwise awake.
+The aux LEDs on most lights only turn on when the light is asleep.
+
+When a light has a single-color aux LED and no RGB, it fast-blinks the
+aux LED in "off" modes when voltage is low.
+
+
+Misc Config Menu
+----------------
+
+Some models may have an extra config menu for settings which don't fit
+anywhere else. This menu is located at "Off -> 9H" in the advanced UI.
+
+These settings are, in order:
+
+ - Tint ramp style: (on some lights)
+
+ 0 : smooth ramp (blend channels in any proportion)
+ 1 : middle tint only
+ 2 : extreme tints only (only one channel active at a time)
+ 3+: stepped ramp with 3+ steps
+
+ - Jump Start level: (on some lights)
+
+ Some lights are prone to starting up slowly at low levels, so they
+ have an option to "jump start" the engine by pulsing a higher power
+ level for a few milliseconds when changing from off to a low level.
+ This setting specifies how bright that pulse should be.
+
+ The value can be from 1 to 150, but is usually between 20 and 50.
+
+These settings are hardware-specific and may not be present on all
+lights. The number of settings in the Misc Config Menu depends on the
+hardware model and the firmware version.
+
+
+Channel Modes (a.k.a. Tint Ramping or Multi Channel controls)
+-------------------------------------------------------------
+
+Some lights have more than one set of LEDs which can be adjusted to
+change the beam color, shape, or other properties. These lights have
+features like tint ramping and channel modes.
+
+On these models, there are some global button mappings which work at all
+times unless they're overridden by the mode the light is in:
+
+ - 3C: Next channel mode
+ - 3H: Adjust current channel mode (ramp tint, for example)
+ - 9H: Channel mode config menu
+
+Details depend on the exact type of light used. For example, if a light
+has LEDs in cool white, warm white, and red... that light might have a
+few channel modes:
+
+ - White blend (adjustable CCT / tint ramping)
+ - Red only
+ - Auto-tint
+
+On a light like this, the user could press 3C to rotate through these
+different channel modes... white, then red, then auto, then back to
+white.
+
+Additionally, in the "white blend" mode, the user could press 3H to
+manually adjust the balance between warm white and cool white.
+
+Finally, if the user decides they don't want all of the modes, they can
+turn some off. Press 9H (while on) to start the channel mode config
+menu. To disable the auto-tint mode, for example, it is the 3rd mode...
+so wait for the 3rd blink, then release the button. Then at the prompt,
+enter a value of 0 (wait for the prompt to time out without clicking
+anything). Afterward, the auto tint mode should no longer be in the
+channel mode rotation. To turn the mode back on later, do the same
+thing, but enter a value of 1 (click 1 time at the prompt).
+
+A light can have many different channel modes, so don't be shy about
+turning off any modes you don't use. It makes all the others easier to
+reach.
+
+If you turn off channel modes until only 1 remains, the "Ramp -> 3C"
+action reverts to its single-channel behavior -- switching between a
+smooth or stepped brightness ramp. Additionally, when a channel mode
+has nothing to adjust with 3H, the 3H action also reverts to its
+single-channel behavior -- momentary turbo.
+
+The Misc Config Menu (Off -> 9H) may also have a setting to choose a
+tint ramp style. There are a few styles available, by entering
+different numbers into that config menu:
+
+ 0: smooth ramp
+ 1: middle tint only
+ 2: extreme tints only
+ 3+: stepped ramp with 3+ steps
+
+This setting only applies to modes with channel ramping (i.e. tint
+ramping), and only when that mode uses the default 3H event handler.
+Custom channel modes may work differently.
+
+
+
+UI Reference Table
+------------------
+
+This is a table of all button mappings in Anduril, in one place:
+
+Mode UI Button Action
+---- -- ------ ------
+Off Any 1C On (ramp mode, memorized level)
+Off Any 1H On (ramp mode, floor level)
+Off Any 2C On (ramp mode, ceiling level)
+Off Simple 2H On (momentary ceiling level)
+Off Full 2H On (momentary turbo)
+Off Any 3C Battcheck mode
+Off Full 3H Strobe mode (whichever was used last)
+Off Any 4C Lockout mode
+Off Full 5C Momentary mode
+Off Full 6C Tactical mode
+Off Full 7C Aux LEDs: Next pattern
+Off Full 7H Aux LEDs: Next color
+Off Full 9H Misc Config menu (varies per light):
+ ?1: tint ramp style
+ ?2: jump start level
+Off Full 10C Enable Simple UI
+Off Simple 10H Disable Simple UI
+Off Full 10H Simple UI ramp config menu:
+ 1: floor
+ 2: ceiling
+ 3: steps
+ 4: turbo style
+Off Any 13H Factory reset (on some lights)
+Off Any 15+C Version check
+
+Ramp Any 1C Off
+Ramp Any 1H Ramp (up, with reversing)
+Ramp Any 2H Ramp (down)
+Ramp Any 2C Go to/from ceiling or turbo (configurable)
+Ramp Full 3C Change ramp style (smooth / stepped)
+Ramp Full 6C (same as above, but on multi-channel lights)
+Ramp Full 3H Momentary turbo (when no tint ramping)
+Ramp Full 4H Momentary turbo (on multi channel lights)
+Ramp Any 4C Lockout mode
+Ramp Full 5C Momentary mode
+Ramp Full 5H Sunset timer on, and add 5 minutes
+Ramp Full 7H Ramp config menu: (for current ramp)
+ 1: floor
+ 2: ceiling
+ 3: speed / steps
+Ramp Full 10C Turn on manual memory and save current brightness
+Ramp Full 10H Ramp Extras config menu:
+ 1: switch to automatic mem, not manual mem
+ 2: set manual mem timeout
+ 3: ramp after moon or not
+ 4: advanced UI turbo style
+ 5: smooth steps
+
+Multi-channel lights only:
+Any Any 3C Next channel mode (i.e. next color mode)
+Any Any 3H Tint ramp (if this mode can)
+Any Full 9H Channel mode enable/disable menu:
+ N: click (or not) to enable (disable) mode N
+
+Lockout Any 1C/1H Momentary moon (lowest floor)
+Lockout Any 2C/2H Momentary moon (highest floor, or manual mem level)
+Lockout Any 3C Unlock (go to "Off" mode)
+Lockout Any 3H Next channel mode (if more than one enabled)
+Lockout Any 4C On (ramp mode, memorized level)
+Lockout Any 4H On (ramp mode, floor level)
+Lockout Any 5C On (ramp mode, ceiling level)
+Lockout Full 7C Aux LEDs: Next pattern
+Lockout Full 7H Aux LEDs: Next color
+Lockout Full 10H Auto-lock config menu:
+ 1: set timeout in minutes (0 = no auto-lock)
+
+Strobe (any) Full 1C Off
+Strobe (any) Full 2C Next strobe mode
+Strobe (any) Full 3C Next channel mode (saved per strobe mode)
+Strobe (any) Full 4C Prev strobe mode
+Strobe (any) Full 5C Momentary mode (using current strobe)
+
+Party strobe Full 1H/2H Faster / slower
+Tactical strobe Full 1H/2H Faster / slower
+Police strobe - - None (brightness is Ramp Mode's last-used level)
+Lightning Full 1H Interrupt current flash or start new one
+Candle Full 1H/2H Brighter / dimmer
+Candle Full 5H Sunset timer on, add 5 minutes
+Biking Full 1H/2H Brighter / dimmer
+
+Batt check Any 1C Off
+Batt check Full 2C Next blinky mode (Temp check, Beacon, SOS)
+Batt check Full 3C Next channel mode (for number blinks only)
+Batt check Full 7H Voltage config menu
+ 1: voltage correction factor
+ ...
+ 5: -0.10V
+ 6: -0.05V
+ 7: no correction
+ 8: +0.05V
+ 9: +0.10V
+ ...
+ 2: post-off voltage display seconds
+
+Temp check Full 1C Off
+Temp check Full 2C Next blinky mode (Beacon, SOS, Batt check)
+Temp check Full 7H Thermal config menu
+ 1: set current temperature
+ 2: set temperature limit
+
+Beacon Full 1C Off
+Beacon Full 1H Configure beacon timing
+Beacon Full 2C Next blinky mode (SOS, Batt check, Temp check)
+
+SOS Full 1C Off
+SOS Full 2C Next blinky mode (Batt check, Temp check, Beacon)
+
+Momentary Full Any On (until button is released)
+Momentary Full Disconnect power Exit Momentary mode
+
+Tactical Full 1H High (tactical slot 1)
+Tactical Full 2H Low (tactical slot 2)
+Tactical Full 3H Strobe (tactical slot 3)
+Tactical Full 6C Exit (go back to Off Mode)
+Tactical Full 7H Tactical Mode config menu:
+ 1: tactical slot 1
+ 2: tactical slot 2
+ 3: tactical slot 3
+
+Config menus Full Hold Skip current item with no changes
+Config menus Full Release Configure current item
+ (goes to Number Entry menu)
+
+Number entry Full Click Add 1 to value for current item
+Number entry Full Hold Add 10 to value for current item
+