true's DEF CON 31 RGB Addon Addon

an addon that hosts GAT or v1.69bis addons
for the official DEF CON 31 badge


The Addon Addon hosts either GAT or v1.69bis addons
through its addon connector.

Whenever the switch is powered ON, the addon connector
is also powered ON.

Upon powering on, the last edited program and all
saved settings will be recalled and activated.

If you want to power an addon but not have flashing
lights, simply set the brightness to its lowest setting.


Addon Addon can be charged from 5V only or USB PD
power supplies.

If at all possible, only charge the Addon Addon while
the power is switched off. If you want to use the
Addon Addon while charging, it is highly advised to
disconnect any addons.

This is because current draw from the badge LEDs as well
as addons can cause the battery to overcharge. This is true
of most badges that support charging, not just the Addon Addon.


Display Mode
  Tap MODE:
    Selects the next program

  Hold MODE:
    Changes to your saved program

  Tap PROG:
    Selects the next brightness, from 0 to 5

  Hold PROG:
    Enter Programming Mode
    At this point, the programming LED will flash    

  Tap SET:

  Hold SET:
    Selects the next zone mode, of which 7 exist

Programming Mode
  The flash pulses, from 1 to 4, indicate the active page

  In general, for most programs, the first page is
  a delay configuration setting

  Tap or Hold MODE or SET:
    Decreases or increases the internal variable for the
    selected page

  Tap PROG:
    Selects the next page, from 1 to 4

  Hold PROG:
    Saves settings for the selected program to EEPROM,
    Saves zone selections to EEPROM,
    Saves selected brightness mode to EEPROM


Holding SET while powering on the badge will restore default
settings. These settings are not committed to EEPROM until
you edit and save a program.

Note: continuing to hold SET after powering on WILL trigger
the zone change routine, so only hold SET while sliding the
power switch to ON. After the badge lights up, release SET.

Program 1: Twinkle (white)
   Page 1: Delay Time
   Page 2: Twinkle Threshold

Program 2: Twinkle (RGB random)
   Page 1: Delay Time
   Page 2: Twinkle Threshold

Program 3: Twinkle (user color)
   Page 1: Delay Time
   Page 2: Twinkle Threshold
   Page 3: Hue
   Page 4: Saturation

Program 4: Rainbow
   Page 1: Delay Time
   Page 3: Speed and Direction
   Page 4: Per-LED Hue Offset

Program 5: Flicker (all LEDs)
   Page 1: Delay Time
   Page 2: Flicker Threshold
   Page 3: Hue
   Page 4: Base Brightness

Program 5: Flicker (random single LED at a time)
   Page 1: Delay Time
   Page 2: Flicker Threshold
   Page 3: Hue
   Page 4: Base Brightness

Program 6: Trail thing
   Page 1: Delay Time
   Page 2: Speed
   Page 3: Hue
   Page 4: Fade Rate

Program 7: Toggling Colors
   Page 1: Delay Time
   Page 2: Fade Rate and Color Linger delay
   Page 3: Hue 1
   Page 4: Hue 2

Program 8: Accelerometer (global color)
   Page 1: Delay
   Page 2: Angle Change Sensitivity
   Page 3: Hue Offset
   Page 4: Saturation

Program 9: Acceleromter (two-tone position)
   Page 1: RGB or two-color mode
   Page 2: Sensitivity
   Page 3: Base Hue
   Page 4: Offset (RGB mode) or Alternate Hue (two-color mode)


Firmware will be released after DC31. Not because of any
secrets but rather time constraints getting a proper release

Each badge is programmed with an XMODEM bootloader that works
with the Type C connection. Install a CH340 driver (if your
operating system didn't already do this for you) and use
your terminal of choice to XMODEM send firmware updates.

The bootloader is activated by holding down PROG while
powering on the Addon Addon.

If you would like to hack on this before DC31 ends,
contact true for direction and a link to current code.