Skip to the content
4 layers168.2 × 82.9 mm2024 def con badge v1, the printed circuit board in 3D

2024 def con badge v1

RetiaLLC/DefconBadge20268

Retia 2024 DEF CON badge (ESP32-S3): docs, pinouts, flashable firmware incl. DOOM and Meshtastic, examples, KiCad hardware sources

Size
168.2 × 82.9 mm
Copper layers
4
Thickness
1.6 mm
Parts
104
Nets
121
Pads
451
Tracks, vias
696, 148
Pours
9
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
8 Jul 2026
Updated
1 Aug 2026

Overview

2024 def con badge v1 is an open-source printed circuit board by RetiaLLC, from the RetiaLLC/DefconBadge2026 repository on GitHub. It is a 4-layer board of 168.2 × 82.9 mm with 104 parts on 121 nets, routed with 696 tracks and 148 vias.

It is built around the TLV62569DBV, XKTF-004 and RFM95W-915S2, with the WS2812B-2020 and PS1240P02CT3 among its other parts. Its parts include 33 resistors, 17 capacitors, 14 diodes, 9 switches and 8 connectors. It belongs with the lEDs and displays and radio and wireless boards and the ESP32 boards of this library.

Main components

5

README

README.md

DEF CON Badge (2026) — ESP32-S3

Everything you need to hack on the Retia DEF CON badge: hardware docs, pinouts, flashable firmware (including DOOM, a full NES emulator, Meshtastic, MeshCore, and Reticulum), and example code to get you from "just unboxed" to writing your own firmware.

🚀 Start here: the Badge Launcher v2 "Touch" — the flagship badge experience. One flash + one micro-SD card turns the badge into a pick-what-you-run device: two full-color touch mesh messengers (MeshCore + Meshtastic MUI), classic Meshtastic, a Reticulum RNode, an NES emulator with a 37-game homebrew library, and WLEDkitty — switchable from an on-badge menu in ~10 seconds, no computer needed. Comes with a MESH-101.md that gets two badges messaging over LoRa in minutes. Flash it from your browser at scriptkitty.sh. (Requires a FAT micro-SD card — true of launcher v1 too. Prefer DOOM resident in flash? Launcher v1 "Classic".)

The badge running DOOM

Yes, that's DOOM. Flash it in one command — see below.

What's on the badge

MCUESP32-S3-WROOM-1 — dual-core 240 MHz, WiFi + BLE, 8 MB flash, 2 MB PSRAM, native USB-C
Display2.4″ ILI9341 240×320 color TFT + XPT2046 resistive touch (MSP2402 module)
RadioRFM95W LoRa 915 MHz (SX1276), U.FL antenna
Input6 face buttons (d-pad + A/B) + BOOT button usable as a 7th
Storagemicro-SD slot (tested to 16 GB SDHC)
Blinkies10× WS2812B NeoPixels, green debug LED
SoundPiezo buzzer (MOSFET-driven)
ExpansionSAO v2, QWIIC (I²C), UART header, SPI header, off-board NeoPixel connector
Power2×AA (boost) or USB-C, auto-switching

Quick start: flash DOOM

bash
pip install esptool
esptool --chip esp32s3 --port <PORT> write-flash 0x0 firmware/doom/doom-audio.factory.bin

<PORT> is /dev/cu.usbmodem* (macOS), /dev/ttyACM0 (Linux), or COMx (Windows). Full instructions, port-finding, and un-bricking: docs/flashing.md.

Repo map

text
docs/            pinout.md ← START HERE · hardware.md · flashing.md · sd-card.md
firmware/
  doom/          DOOM shareware, audio + silent builds (flash & play)
  meshtastic/    Meshtastic 2.7.23, standard + low-power builds
  reticulum/     RNode v1.85 — the badge as a Reticulum LoRa transceiver
examples/
  hello-badge/   buttons + LED + buzzer in 100 lines (your first build)
  sd-test/       mount/format/read/write the micro-SD slot
hardware/        KiCad 8 sources + schematic PDF

The three things that bite everyone

  1. The touch controller and the display-module SD slot have crossed data lines — hardware SPI can't reach them. The main SD slot and everything else work normally. Details: docs/pinout.md.
  2. Native-USB download-mode trap — DTR-toggling serial monitors + reset = badge stuck "waiting for download". Fix: any esptool command ending in hard-reset. Details: docs/flashing.md.
  3. Never TX on LoRa without an antenna. Receiving is safe; transmitting into nothing can cook the PA.

Firmware in this repo

  • DOOM — the 1993 classic, natively, full speed. D-pad moves, A fires, GPIO0 switches weapons. Audio build plays SFX through the piezo.
  • Meshtastic — off-grid LoRa mesh messaging with phone app support; standard, power-optimized, and full color touch UI (MUI) builds. Ready-to-flash touch UI: meshtastic-mui-v2.7.23 release — on-screen keyboard, node map, touch region picker, phone TCP API alongside the home screen.
  • MeshCore — the badge as a MeshCore LoRa mesh node, hardware-verified badge-to-badge (messages + ACKs). The flagship build is a full standalone touchscreen mesh communicator — chats, contacts, channels, on-screen keyboard, RF monitor + spectrum analyzer, chimes, D-pad nav — that is simultaneously a BLE companion for the official MeshCore phone app. Plain companion (BLE/USB) builds too. Ready-to-flash images: meshcore-v1.0.0 release. Source: RetiaLLC/MeshCore (board variant) + RetiaLLC/wadamesh (touch messenger), both branch retia-badge.
  • Reticulum / RNode — turns the badge into an RNode: a host-controlled 915 MHz LoRa transceiver for the Reticulum network stack (NomadNet, Sideband, MeshChat). The default build shows the live RNode status screen (frequency, airtime, channel load, signal) on the TFT. Flash, provision with rnodeconf, done — hardware-verified against a Nibble Zero RNode. Full toolkit, source, and Nibble Zero builds live in RetiaLLC/NibbleReticulum.
  • ESP32 Bus Pirate — a multi-protocol hardware-hacking multitool on the badge TFT (also USB-serial / Wi-Fi web CLI): I²C/SPI/UART/1-Wire/JTAG bus tools with on-screen bus scan + live register monitor and a BME280 dashboard that colours the ears by temperature, plus a full on-screen LoRa/RF suite — heat-map waterfall, packet sniffer, live RSSI meter, band scanner, and a Meshtastic monitor that decodes real mesh packets on-screen (with a MeshCore sniffer preset). Wi-Fi/BLE scanners too. Start with the beginner's guide. ⚠ Transmit- & attack-capable (Wi-Fi deauth, BLE spoof, RF jam) — authorized use only. Ready-to-flash: RetiaLLC/ESP32-Bus-Pirate @ badge-v1.2.1, ported from KonradIT/geo-tp.
  • Anemoia NES (standalone repo) — a full NES emulator: put .nes ROMs on the micro-SD card, browse and launch them on the badge, and play with the D-pad + A/B. Save states, chiptune audio through the piezo, and a one-button START/SELECT scheme (tap BOOT = START, hold = pause menu). Ready-to-flash image on the release page (also attached to this repo's anemoia-v1.0.0 release), plus a curated list of legally-free homebrew games tested on the badge. Ported from Shim06/Anemoia-ESP32.

Building your own firmware

Both examples are PlatformIO ESP-IDF projects with the badge board definition included — copy one as a template. The short version:

bash
pip install platformio
cd examples/hello-badge
pio run -t upload --upload-port <PORT>

Then open a serial monitor at 115200 and press buttons.

Parts

104
QtyValueFootprintReferences
1410KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R4, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, R33, R34
10WS2812B-2020LED_SMD:LED_WS2812B-2020_PLCC4_2.0x2.0mmD2, D5, D6, D7, D8, D9, D11, D12, D13, D14
80Rretia_component_library:YAGEO_R_ARRAY_4_YC_FAMRN1, RN2, RN3, RN4, RN5, RN6, RN7, RN8
8330RResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR2, R3, R6, R21, R24, R25, R26, R32
60.01uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC7, C8, C9, C10, C11, C12
610uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC2, C13, C14, C15, C18, C19
40.1uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1, C3, C6, C17
45.1KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR17, R18, R20, R22
4Q_NMOS_GSDretia_component_library:LCSC_SOT-23Q1, Q2, Q3, Q4
20RResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR19, R35
2100KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR28, R31
2Conn_01x04_MountingPinretia_component_library:QWIIC_CONNECTOR_GENERIC_1x04-1MP_P1.00mm_HorizontalJ4, J6
2GREENLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD1, D4
2SW_SPSTretia_component_library:SW_SPST_PTS641TSW1, SW2
11KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR5
11uHretia_component_library:koher_MDA4020_series_inductorL1
12.2uHretia_component_library:koher_MDA4020_series_inductorL2
14.7uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC16
1453KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR30
1750KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR27
1Aretia_component_library:JLC_TS-1080W-A7B3-D1SW8
1AA (2x)Battery:BatteryHolder_Keystone_2462_2xAAJ9
1Bretia_component_library:JLC_TS-1080W-A7B3-D1SW7
1Conn_01x03_MountingPinretia_component_library:LCSC_JST_PH_S3B-PH-SM4-TB_1x03-1MP_P2.00mm_HorizontalJ8
1Conn_01x06Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ3
1Conn_02x03_Odd_Evenretia_component_library:LCSC_PinSocket_2x03_P2.54mm_VerticalJ5
1DDiode_SMD:D_SMAD10
1DOWNretia_component_library:JLC_TS-1080W-A7B3-D1SW5
1LEFTretia_component_library:JLC_TS-1080W-A7B3-D1SW3
1MSP2402retia_component_library:LCD_2_4in_PCB_MOUNTED_THRU_HOLEU3
1PS1240P02CT3retia_component_library:tdk_PS1240P02CT3_buzzerLS1
1PolyfuseFuse:Fuse_1206_3216Metric_Pad1.42x1.75mm_HandSolderF1
1REDLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD3
1RFM95W-915S2retia_component_library:XCVR_RFM95W-915S2U2
1RIGHTretia_component_library:JLC_TS-1080W-A7B3-D1SW6
1SW_Slide_DPDTretia_component_library:JLC_K3-2245S-K1SW9
1TLV62569DBVretia_component_library:LCSC_SOT-23-5U5
1TPS61023DRLRretia_component_library:TI_CONVERTER_SOT563U4
1U.FL IPEX Connretia_component_library:LCSC_U.FL_Hirose_U.FL-R-SMT-1_VerticalJ1
1UPretia_component_library:JLC_TS-1080W-A7B3-D1SW4
1USB_C_Receptacle_USB2.0_16Pretia_component_library:LCSC_USB_C_Receptacle_HCTL_HC-TYPE-C-16P-01AJ7
1Wire Antenna Connection PointTestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmTP1
1XKTF-004retia_component_library:xkb_connection_XKTF-004Card1
1espressif_ESP32-S3-WROOM-1-NXXXretia_component_library:XCVR_ESP32-S3-WROOM-1U1

Similar boards

  • 2 layers76 × 65 mmPioupiou v0, the printed circuit board in 3D

    Pioupiou v0

    pioupiou-archive/pioupiou-v0

    Fichiers sources pour la balise Pioupiou version 0

    41 parts4
  • 2 layers266.7 × 95.2 mmRiemann, the printed circuit board in 3D

    Riemann

    agausmann/riemann-kb-pre1

    Riemann: A 60% pseudo-split ortholinear keyboard.

    285 partsCC-BY-SA-4.0
  • 4 layers100 × 60.9 mmDrv board, the printed circuit board in 3D

    Drv board

    chopin1998/vechicle_pcb

    149 partsApache-2.0
  • 2 layers60 × 110.8 mmKitchen timer hardware, the printed circuit board in 3D

    Kitchen timer hardware

    emanuelen5/kitchen-timer

    A digital kitchen timer made from scratch

    83 parts
  • 2 layers65 × 65.5 mmSchmatic, the printed circuit board in 3D

    Schmatic

    Yorha-7/Rocket

    in this repo we are simulating rocket basic physics and make a onboard flight computer which utilizes MCU, gyro, pressure sensor, fin servo controls, to get realtime target tracking abilities to a solid fuel rocket.

    77 parts
  • 6 layers100 × 60 mmAether, the printed circuit board in 3D

    Aether

    nasheed-x/aether

    Aether is a versatile flight computer for testing flight hardware and software, focusing on sensor fusion to monitor rocket states and interface with on-board systems.

    180 parts10
  • 2 layersLamp, the printed circuit board in 3D

    Lamp

    CC-Ian/Lamp

    Dimmable, Color Adjustable, RGB Light board for desk lamps

    101 parts

Questions

How big is the 2024 def con badge v1 PCB?

It measures 168.2 × 82.9 mm and has 4 copper layers, 1.6 mm thick.

What parts does the 2024 def con badge v1 use?

104 parts, built around the TLV62569DBV, XKTF-004, RFM95W-915S2 and WS2812B-2020. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the 2024 def con badge v1 KiCad files?

From the RetiaLLC/DefconBadge2026 repository on GitHub, at the commit this page was made from: the board is hardware/kicad/2024_def_con_badge_v1.kicad_pcb and its schematic hardware/kicad/2024_def_con_badge_v1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the 2024 def con badge v1 design in my own project?

Its repository states no licence, so its author keeps all rights: ask RetiaLLC before reusing the design.