Badge hardware

Read from the PCB bill of materials dated 18 July 2026. Where the V1 concept datasheet and the board disagree, the board wins — it is what gets manufactured.

Processor

The board carries an ESP32-S3-WROOM-1-N16R2 module (U2, LCSC C2913205): a dual-core Xtensa LX7 with Wi-Fi 802.11 b/g/n and Bluetooth 5 LE, 16 MB of flash and 2 MB of PSRAM.

The R2 suffix matters. Other Onetap documents and an earlier build refer to an N16R8 or N4R8 module — 8 MB of PSRAM rather than 2 MB, and in the N4R8 case only 4 MB of flash. Those are different parts with different partition tables and different pin restrictions. Build against the module printed on the board in front of you, and check before you assume a framebuffer will fit.

Octal-PSRAM variants reserve GPIO35, GPIO36 and GPIO37; the quad-PSRAM R2 part does not. That difference alone can move a working pin map.

Display

A 2.13-inch monochrome e-paper panel drives over 4-wire SPI. It connects through CN1, a 24-pin 0.5 mm bottom-contact FPC connector, so the panel itself is not on the bill of materials.

The panel used by the current firmware is a GDEY0213B74 — 250 × 122 pixels, SSD1680 controller, driven with the GxEPD2_213_BN class. Its BS1 pin must be tied to ground for 4-wire SPI.

E-paper holds its last image with no power applied. Redraw only when something changes: a full refresh is slow and visibly flashes, so treat it as an event, not a frame rate.

Power path

USB-C in, regulated 3.3 V out, with a battery in the middle:

USB-C (USB1)  ──►  MCP73831 (U5)  ──►  3.7V LiPo
                                          │
                                          ▼
                                   AP2112K-3.3 (U3)  ──►  3V3 rail
                                                            │
                                          ESP32-S3, e-paper, buzzer
  • USB1 is a 16-pin Type-C receptacle. R1 and R2, both 5.1 kΩ, are the CC pull-downs that make a USB-C source deliver 5 V.
  • U5, an MCP73831T-2DCI/OT, is a single-cell linear LiPo charger. The 2 in the part code sets constant-current regulation; the programming resistor sets the actual charge current.
  • U3, an AP2112K-3.3TRG1, is a 600 mA low-dropout regulator supplying the 3.3 V rail.
  • R13 and R14, both 100 kΩ, form a battery-sense divider so firmware can read pack voltage on an ADC pin.

The board also carries a 47 µH inductor (L1), three MBR0530 Schottky diodes and an SI1308EDL MOSFET. That combination is consistent with a switching supply generating the e-paper’s bias rails, but the schematic was not supplied with the layout, so this page does not claim a topology it has not seen.

Controls and indicators

PartDesignatorNotes
Tactile switches1, 2, 3, 4, 5, BOOT, ENSeven TS-1088-AR02016 switches: five for navigation (up, down, left, right, OK) plus the two ESP32 straps.
BuzzerU4Buzzer8530SMD passive buzzer — it needs a driven waveform, not a DC level.
Status LEDLED1KT-0805G, green, in an 0805 package.
I²C expansionCN2SM04B-SRSS-TB, a 4-pin 1.0 mm JST SH — the Qwiic / STEMMA QT standard. See Expansion.

Bill of materials

Every part is sourced from LCSC. Passives are omitted here; the designators below are the ones you would replace or probe.

RefPartLCSCFunction
U2ESP32-S3-WROOM-1-N16R2C2913205MCU module
U3AP2112K-3.3TRG1(MS)C223654273.3 V LDO regulator
U4Buzzer8530SMDC990004191Passive buzzer
U5MCP73831T-2DCI/OTC625597LiPo charge controller
USB1TYPE-C16PINC393939USB-C receptacle
CN1240PIN-0.5MM-BOTC99000141624-pin FPC, e-paper
CN2SM04B-SRSS-TB(LF)(SN)C160404JST SH, Qwiic I²C
Q1SI1308EDLC7603347N-channel MOSFET
L1SWPA5040S470MTC8661747 µH power inductor
D1–D3MBR0530C2941306Schottky diodes
LED1KT-0805GC2297Green status LED
SW × 7TS-1088-AR02016C720477Tactile switches