Skip to content
2019 DEF CON indy badge for Hacker Overland Group
Python Dockerfile Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Hacker Campers Badge 2019

Build Status

Blog post:

Parts list

Board files located in this repo under boards/, or use the links below to order directly from

qty Name Link
1 ESP32 breakout board
5 Neopixel LEDs
1 I2S audio codec
1 Speaker
1 3xAA Battery box
1 Front plate
1 Back plate
6 M2 screws
3 M2 spacers
1 Power switch
1 Lanyard
1 SAO connector
3 AA batteries

Build requirements

Only install this if you don't want to do it the easy way. Otherwise, follow the directions under the Loading Firmware section, below.


  • Orientation reference: corner without M2 hole goes down and to the right.
  • Install LEDs (flat side goes to the right, or down)
  • Install power switch in the upper-left corner
  • Install SAO connector on the rear of the plate, with the slot UP
  • Install I2S audio codec
    • Solder two wire leads to the plate, for the speaker leads.
    • Solder a 7-pin header onto the board
    • Situate the codec on the two speaker leads and pin header, solder down.
  • Install the ESP32
    • On the bottom row, and starting from the far right and moving to the left:
      • Solder five leads into the plate, skipping the first hole on the right.
    • On the top row, solder a lead into the second hole from the far right.
    • On the top row, solder a lead for GPIO pin #5. Use the ESP32 to align.
    • Solder pin headers onto ESP32 breakout board, with pins facing up.
    • Situate the ESP32 on the leads and solder down.
  • Load firmware onto the ESP32 (see Loading firmware, below) and confirm functionality.
  • Solder battery box leads to the bottom plate, with the red lead closest to the M2 hole in the upper left corner.
  • Use 2-sided tape to attach the battery box to the back of the bottom plate.
  • Use a hot glue gun to fill holes in top plate, creating diffusers for LEDs
  • Use the screws and spacers to attach the top plat to the bottom plate


Loading firmware (Ubuntu 18.04, Docker)

  • Configure roles (by mac address) in source/configs/config.json
  • Build the Docker container: docker build -t flasher:latest .
  • Plug in USB TTY (Assuming it will show up as /dev/ttyUSB0)
  • Restart ESP32 in ROM serial bootloader mode.
  • Flash the badge docker run -it --rm --device=/dev/ttyUSB0 flasher:latest
  • Follow directions on-screen. You will need to re-enter bootloader mode after flash is cleared.
You can’t perform that action at this time.