Repository navigation
Hardware Clip Boy
Open-source DEF CON badge — ESP32-S3 with an LVGL touch UI
Vendor: SafeHazard · class: badgelife
Status: supported — the identifiers and setup recipe are believed correct.
Maintainer-verified 2026-08-26 on Pop!_OS 22.04: Attached and enumerated; identifier, product string and serial captured with scripts/identify-device.sh. Nothing was run and no firmware was flashed.
An open-source DEF CON badge built around an ESP32-S3 with a touch display driven by LVGL. Licensed GPL-3.0, with the hardware design files — BOM, Gerbers, enclosure and OmniTag — published alongside the firmware.
Read its serial output, build and flash modified firmware, and use it as a worked example of the badgelife class: everything here is class behaviour with a name attached.
Follow the badgelife class setup. Clone the upstream repository, build the sketch with arduino-cli against the ESP32-S3 board definition, and flash with esptool over the badge's serial port.
The published flashing route is a web flasher using ESP Web Tools over WebSerial, which needs a Chromium-based browser and does not work in Firefox or on a machine without a graphical session. That gap is the reason this entry exists.
| USB id | What | Confirmed | Node |
|---|---|---|---|
303a:1001 |
Espressif ESP32-S3 native USB JTAG/serial peripheral | yes | serial |
⚠ 303a:1001 is not unique to this device (vendor_chip_default; also used by: free-wili-2, minino, every ESP32-S3 or ESP32-C3 board using native USB). esptool calls 0x1001 USB_JTAG_SERIAL_PID, a constant of the ESP32-S3/C3 USB-serial-JTAG peripheral. Confirmed by capture, not inferred: the Minino and the Free-WiLi 2's onboard ESP32-S3 present the identical pair AND the identical product string, all three captured on the same day on the same machine. Nothing short of the serial distinguishes them.
Group membership required: dialout, plugdev — added at install, applies at next login.
-
esptool — tooling:
esptool,arduino-cliFirmware is an Arduino sketch in the upstream repository, so the Linux path is arduino-cli to build and esptool to flash. Upstream also offers a web flasher, but that is ESP Web Tools over WebSerial — a browser path, not a toolchain path. Building locally is what lets you modify the badge, which is the point of it being open source.
Upstream: https://github.com/SafeHazard/Clip-Boy
Generated from docs/ at commit b2ea01255815. Canonical site: https://renegade-penguin.github.io/Hammunition/. Edit docs/ by pull request, not this wiki.
- Home
- Software by activity
- Activity hubs
- Installation
- Profiles
-
Guides
- Operating
- Modes
- Receiving
- In the field
- Troubleshooting
- Getting started
- Packages
-
Hardware
- Park and wake devices
- SDR receivers and transceivers
- Radios, GPS and mesh
- Security and research hardware
- Programmers
- Laptop radios and camera (parkable)
- LibreVNA (vector network analyser)
- RF security
-
Reference
- The engine
- Coverage
- Inventories
- Hardware measurements
- Verification
- Contributing