

V0-Replay-26 PCB A
Open-source firmware, hardware files, docs, and community app registry for the Temporal Replay 2026 Badge.
- Size
- 85.5 × 70 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 211
- Nets
- 102
- Pads
- 589
- Tracks, vias
- 1,572, 771
- Pours
- 22
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 29 Apr 2026
- Updated
- 11 Sep 2026
Overview
V0-Replay-26 PCB A is an open-source printed circuit board by temporal-community, from the temporal-community/badge.temporal.io repository on GitHub, published under the MIT licence. It is a 2-layer board of 85.5 × 70 mm with 211 parts on 102 nets, routed with 1,572 tracks and 771 vias.
It is built around the ESP32-S3-WROOM-1-N8, SY8089A and TPS61040DBV, with the BQ24079RGT, TSOP75338TT and DMN2058U among its other parts. Its parts include 95 capacitors, 50 resistors, 11 diodes, 9 ICs and 5 connectors. It belongs with the lEDs and displays boards and the ESP32 boards of this library.
Main components
11ESP32-S3-WROOM-1-N8
SMD,25.5x18mm-40℃~+85℃ -98.2dBm 2.4GHz 20.5dBm 355mA 3V~3.6V 95mA Bluetooth5.0 ESP32-S3 Chip On-board PCB Antenna UART、SPI、I2C、I2S、USB SMD,25.5x18mm WiFi Modules ROHSEspressif SystemsWiFi ModulesSY8089A
SOT-23-5-40℃~+125℃@(TJ) 1 1MHz 2.5V~5.5V 2A 50uA Adjustable Buck Buck Built-in No SOT-23-5 DC-DC Converters ROHSTECH PUBLICDC-DC ConvertersTPS61040DBV
SOT-23-5-40℃~+125℃@(TJ) 1 1.8V~6V 1MHz 28V 28uA 400mA Adjustable Boost Boost Built-in No Overcurrent Protection、Light load efficient mode SOT-23-5 DC-DC Converters ROHSTexas InstrumentsLED DriversBQ24079RGT
QFN-16-EP(3x3)-40℃~+125℃ 1.5A 4.1V 4.35V~6.6V 6.5uA Charging IC Lithium Battery Support QFN-16-EP(3x3) Battery Management ROHSTexas InstrumentsBattery ManagementTSOP75338TT
SMD-4P,6.8x3mm-25℃~+85℃ 10mW 2.5V~5.5V 24m 350uA 38kHz ±50° SMD-4P,6.8x3mm Infrared Remote Receiver (IRM) ROHSVishay IntertechnologyInfrared Remote Receiver (IRM)DMN2058U
SOT-23-55℃~+150℃ 1 N-channel 1.2V 20V 281pF 3.6nC@4.5V 39pF 4.6A 40mΩ@4.5V 740mW SOT-23 MOSFETs ROHSDiodes IncorporatedMOSFETsVSMY14940
SMD,3x2.5mm-40℃~+85℃ 1.48V 119mW 15mW/sr、90mW/sr、560mW/sr 55nm 5V 70mA 940nm 9° SMD,3x2.5mm Infrared LED Emitters ROHSVishay IntertechnologyInfrared LED EmittersDSS24
SOD-123FL-65℃~+150℃ 1 Independent 2A 40V 500uA@40V 550mV@2A SOD-123FL Schottky Diodes ROHSBORNSchottky DiodesMMBT3904
SOT-23-55℃~+150℃ 1 NPN 100 100nA 200mA 200mW 300MHz 300mV 40V 6V NPN SOT-23 Bipolar (BJT) ROHSJiangsu Changjing Electronics Technology (CJ)Bipolar (BJT)PRTR5V0U2X
SOT-143-55℃~+125℃ 0.3pF、0.8pF 100W 10V、15V 5V 6.5V 6A 80nA ESD IEC 61000-4-2、IEC 61000-4-5、IEC 61000-4-4 Three channels Unidirectional SOT-143 ESD and Surge Protection (TVS/ESD) ROHSTECH PUBLICESD And Surge Protection (TVS/ESD)Z3OC1T8219731
--20℃~+70℃ 14000rpm 2.7V 85mA CW Cylindrical DC Motor SMD - Vibration Motors ROHSKOTLVibration Motors
README
README.mdTemporal Replay 2026 Badge
Public source for the Temporal Replay 2026 Badge at badge.temporal.io:
firmware, hardware design files, flashing tools, badge apps, release metadata,
and the static documentation site.

This repository is for people who want to flash a badge, build a badge app, study or modify the firmware, review the hardware package, or contribute fixes back through GitHub pull requests. Backend services and private event operations tooling are intentionally not part of this public repo.
Where To Start
| I want to... | Start here |
|---|---|
| Use or reflash a badge | Get Started, then ignition/README.md |
| Write a MicroPython badge app | Developer Guide, Apps, and firmware/initial_filesystem/apps/README.md |
| Submit or share a Community App | Add an app folder under community_apps/, then follow community_apps/README.md |
| Change firmware | firmware/README.md and firmware/src/README.md |
| Understand flashing and storage | ignition/README.md and firmware/docs/STORAGE-MODEL.md |
| Work with hardware files | hardware/README.md |
| Update public schedule, floor, or speaker data | data/README.md |
| Update the docs site | docs/README.md |
| Review release artifacts or OTA | release-assets/README.md and .github/workflows/release-firmware.yml |
| Check licensing and third-party terms | THIRD_PARTY_NOTICES.md and licenses/ |
| Contribute a fix | Open a pull request against temporal-community/badge.temporal.io; see Contributing below. |
Repository Map
| Path | What It Contains | Start Here |
|---|---|---|
docs/ | Static public documentation site for badge users and contributors. | Visit badge.temporal.io or open docs/index.html locally. |
firmware/ | PlatformIO firmware project for the ESP32-S3 badge, including native C++ screens, MicroPython embedding, OTA, Doom, and the badge filesystem source. | firmware/README.md |
community_apps/ | Installable MicroPython community app folders that are published in the Community Apps registry but not preloaded into the factory filesystem. | community_apps/README.md |
ignition/ | Temporal-powered build and flashing system built to bulk flash the badge fleet, also useful for one badge. | ignition/README.md |
hardware/ | Public KiCad projects, fabrication outputs, mechanical references, artwork, and board renders from the final hardware package. | hardware/README.md |
data/ | Public schedule, speaker, and floor data plus the generated bundle embedded by firmware. | data/README.md |
release-assets/ | Notes for OTA and factory image release artifacts. | release-assets/README.md |
licenses/ | Third-party license texts and notices for bundled non-MIT components. | THIRD_PARTY_NOTICES.md |
.github/workflows/ | CI release workflow that builds firmware.bin and replay2026-factory-16MB.bin. | .github/workflows/release-firmware.yml |
CONTRIBUTING.md | Pull request guidance and change-type checks. | CONTRIBUTING.md |
Quick Start
Ignition is the Temporal-powered system we built to bulk flash the Replay 2026 badge fleet. It runs locally and is the default flashing path for one badge or a connected batch of badges:
cd ignition
./setup.sh
./doctor.sh
./start.sh --latest-release--latest-release downloads replay2026-factory-16MB.bin from the latest
GitHub Release, caches it locally, and flashes the badge through Ignition. A
factory flash restores firmware and filesystem contents and wipes existing
on-badge data.
To build from source and preload WiFi, pass credentials on the command line
or create an ignored firmware/wifi.local.env from
firmware/wifi.local.env.example:
./start.sh -e replay2026 --firmware-dir ../firmware \
--wifi-ssid "YourNetwork" --wifi-pass "YourPassword"Developers who want the lower-level path can use PlatformIO directly:
cd firmware
pio run -e replay2026
pio run -e replay2026 -t upload
pio run -e replay2026 -t uploadfsFor a specific prebuilt release, use the release tag:
cd ignition
./start.sh --release-tag v1.0.0You can still flash a manually downloaded image with
./start.sh --no-build --factory-image ~/Downloads/replay2026-factory-16MB.bin.
See release-assets/README.md for release artifact
context.
Firmware Releases
Public releases include two firmware artifacts:
firmware.bin: application image consumed by badge OTA.replay2026-factory-16MB.bin: complete factory image with bootloader, partition table, firmware, FAT filesystem, and bundled shareware Doom data.
The badge OTA updater checks GitHub Releases in
temporal-community/badge.temporal.io for firmware.bin.
Licensing
Temporal-authored source, docs, firmware glue, website content, and hardware files use the MIT License unless a file or notice says otherwise.
Firmware builds that include Doom also include DoomGeneric engine code and the
bundled doom1.wad shareware game data. Those components have separate terms;
see THIRD_PARTY_NOTICES.md and licenses/.
Generated Artifacts
Some generated files are committed because the firmware or public release flow consumes them directly:
| Path | Source of truth | Commit? |
|---|---|---|
data/out/ | data/in/ via data/build-data.py | Yes, commit all generated public data outputs |
firmware/data/ | firmware/initial_filesystem/ via firmware/scripts/generate_startup_files.py | No, it is a local build mirror |
firmware/build/community_apps.json | community_apps/ via firmware/scripts/generate_startup_files.py | No, generated in CI and uploaded as a release asset |
firmware/.pio/, ignition/.venv/, local logs, and WiFi files | Local machine state | No |
firmware.bin and replay2026-factory-16MB.bin | GitHub release workflow | Release assets only |
Contributing
Pull requests are welcome. Good public contributions include docs fixes,
MicroPython examples, badge apps, firmware fixes, Ignition improvements,
hardware documentation corrections, data updates, and Community App updates.
See CONTRIBUTING.md for change-type checklists.
Before opening a PR:
- Keep changes focused and explain what you tested.
- Link related docs when you add or change a workflow.
- Do not commit credentials, local WiFi settings, virtualenvs, PlatformIO build output, caches, or private event operations context.
- For firmware changes, include the relevant PlatformIO build or flash command you ran.
- For docs-only changes, check that links resolve from the repo root and the
static docs site still opens from
docs/index.html.
Use GitHub issues or PR discussion for questions, bug reports, and proposed app or documentation changes.
Parts
211| Qty | Value | Footprint | References |
|---|---|---|---|
| 64 | LED0603_NOOUTLINE | Temporal:LED_0603_1608Metric | C1-1, C1-2, C1-3, C1-4, C1-5, C1-6, C1-7, C1-8, C2-1, C2-2, C2-3, C2-4, C2-5, C2-6, C2-7, C2-8 +48 |
| 16 | TestPoint | JumperlessFootprints:TestPoint_D0.75mm | TP1, TP2, TP3, TP4, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP14, TP16, TP17, TP21, TP22 |
| 13 | 10K | Resistor_SMD:R_0402_1005Metric | R6, R16, R17, R18, R21, R26, R28, R30, R32, R34, R35, R38, R45 |
| 11 | LOGO | LOGO | G***, G***, G***, G***, G***, G***, G***, G***, G***, G***, G*** |
| 8 | 0 | JumperlessFootprints:R_0402_1005Metric | R1, R2, R3, R4, R5, R29, R49, R50 |
| 7 | 0.1uF | Capacitor_SMD:C_0402_1005Metric | C3, C4, C6, C16, C19, C20, C21 |
| 7 | D_Schottky | Diode_SMD:D_SOD-523 | D1, D3, D4, D5, D6, D8, D9 |
| 6 | 1uF | Capacitor_SMD:C_0402_1005Metric | C5, C15, C24, C25, C26, C33 |
| 5 | 100nF | Capacitor_SMD:C_0402_1005Metric | C2, C11, C12, C14, C37 |
| 5 | 4.7uF | Capacitor_SMD:C_0402_1005Metric | C8, C9, C10, C17, C22 |
| 4 | 1K | Resistor_SMD:R_0402_1005Metric | R12, R31, R41, R42 |
| 4 | SW_Push | Button_Switch_SMD:SW_Push_1TS009xxxx-xxxx-xxxx_6x6x5mm | SW4, SW5, SW6, SW7 |
| 3 | 0 | Resistor_SMD:R_0402_1005Metric | R48, R51, R52 |
| 3 | 10uF | Capacitor_SMD:C_0402_1005Metric | C13, C18, C27 |
| 3 | 150K | Resistor_SMD:R_0402_1005Metric | R11, R15, R24 |
| 3 | 22uF | Capacitor_SMD:C_0402_1005Metric | C1, C40, C41 |
| 2 | 1.8K | Resistor_SMD:R_0402_1005Metric | R19, R20 |
| 2 | 100K | Resistor_SMD:R_0402_1005Metric | R23, R25 |
| 2 | 150 | Resistor_SMD:R_0402_1005Metric | R33, R39 |
| 2 | 22pF | Capacitor_SMD:C_0402_1005Metric | C23, C38 |
| 2 | 24 | Resistor_SMD:R_0805_2012Metric | R36, R37 |
| 2 | 4.7K | Resistor_SMD:R_0402_1005Metric | R7, R8 |
| 2 | 5.1K | Resistor_SMD:R_0402_1005Metric | R9, R10 |
| 2 | 680K | Resistor_SMD:R_0402_1005Metric | R14, R22 |
| 2 | DMN2058U | Package_TO_SOT_SMD:SOT-23 | Q1, Q3 |
| 2 | VSMY14940 | Temporal:vsmy14940 | D14, D15 |
| 1 | 1.1M | Resistor_SMD:R_0402_1005Metric | R43 |
| 1 | 10 | Resistor_SMD:R_0402_1005Metric | R40 |
| 1 | 10uh | Inductor_SMD:L_APV_APH0530 | L1 |
| 1 | 120K | Resistor_SMD:R_0402_1005Metric | R44 |
| 1 | 2.2uh | Inductor_SMD:L_Coilcraft_LPS3010 | L5 |
| 1 | 24P FPC 0.5MM | Connector_FFC-FPC:TE_2-1734839-4_1x24-1MP_P0.5mm_Horizontal | U5 |
| 1 | 32.768KHz | Crystal:Crystal_SMD_3215-2Pin_3.2x1.5mm | Y1 |
| 1 | 330 | Resistor_SMD:R_0402_1005Metric | R27 |
| 1 | 910K | Resistor_SMD:R_0402_1005Metric | R47 |
| 1 | BQ24079RGT | Package_DFN_QFN:VQFN-16-1EP_3x3mm_P0.5mm_EP1.6x1.6mm | U2 |
| 1 | DSS24 | Diode_SMD:D_SOD-123F | D12 |
| 1 | ESP32-S3-WROOM-1 | RF_Module:ESP32-S3-WROOM-1 | U3 |
| 1 | I2C | Connector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal | J6 |
| 1 | I2C | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J2 |
| 1 | IS31FL3731-QF | Package_DFN_QFN:QFN-28-1EP_4x4mm_P0.4mm_EP2.3x2.3mm | U4 |
| 1 | JST PH | Connector_JST:JST_PH_S2B-PH-SM4-TB_1x02-1MP_P2.00mm_Horizontal | J3 |
| 1 | Jumper_2_Open | JumperlessFootprints:SolderJumper_2_Open_Small | JP2 |
| 1 | MMBT3904 | Package_TO_SOT_SMD:SOT-23 | Q2 |
| 1 | PRTR5V0U2X | Package_TO_SOT_SMD:SOT-143 | D10 |
| 1 | Reset | Button_Switch_SMD:SW_SPST_B3U-1000P-B | SW1 |
| 1 | ST LIS2DH12TR | Package_LGA:LGA-12_2x2mm_P0.5mm | U1 |
| 1 | SY8089 | Package_TO_SOT_SMD:SOT-23-5 | U10 |
| 1 | TPS61040DBV | Package_TO_SOT_SMD:SOT-23-5 | U7 |
| 1 | TSOP75338 | LyndLabs-Module:TSOP753 | U8 |
| 1 | TestPoint | JumperlessFootprints:TP_smaller | TP5 |
| 1 | UART | Connector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal | J5 |
| 1 | USB C 2.0 | Connector_USB:USB_C_Receptacle_Palconn_UTC16-G | J1 |
| 1 | Z3OC1T8219731 | Motors:Vybronics_VZ30C1T8219732L | M1 |
| 1 | p2765 | Temporal:JOYSTICK_ANALOG_MINITHM | U6 |
Similar boards
- 2 layers76.5 × 76.5 mm

- 4 layers82 × 70 mm

Temporal Badge CHARLIE
Architeuthis-Flux/Temporal-Replay-26-Badge
Community firmware for the Temporal Replay 26 badge
208 parts5Unlicense - 2 layers89.5 × 52.2 mm

Phantomware
agekoda/phantomware
phantomware Compact, powerful ESP32-S3 platform for IR, NFC, sensors, WiFi & more.
47 parts15 - 2 layers97 × 23.7 mm

Homegreen Node Basic
pmalessa/homegreen-Node
The system is based on an inexpensive node, which is able to control up to 3 pumps and can be powered by nearly any conventional powerbank.
67 parts1 - 2 layers35.2 × 17.9 mm

- 2 layers15.6 × 31.8 mm

- 2 layers20.8 × 9.1 mm

- 4 layers114.8 × 72 mm

Tanmantsu zero
badgeteam/konsool-zero
RFID NFC <1GHz radio Konsool expansion board
182 partsBSD-3-Clause
Questions
How big is the V0-Replay-26 PCB A PCB?
It measures 85.5 × 70 mm and has 2 copper layers, 1.6 mm thick.
What parts does the V0-Replay-26 PCB A use?
211 parts, built around the ESP32-S3-WROOM-1-N8, SY8089A, TPS61040DBV and BQ24079RGT. 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 V0-Replay-26 PCB A KiCad files?
From the temporal-community/badge.temporal.io repository on GitHub, at the commit this page was made from: the board is hardware/pcb/PCB-A/v0-Replay-26_PCB-A.kicad_pcb and its schematic hardware/pcb/PCB-A/v0-Replay-26_PCB-A.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the V0-Replay-26 PCB A design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).