Expansion and I/O
What you can plug into the badge, and what to watch out for when you do.
This page describes connectors and parts that are physically on the board. It deliberately does not publish a GPIO number table: the schematic net list was not supplied with the layout, and the pin map from an earlier build was captured on a different module variant. Probe your own board, or ask for the schematic, before wiring anything to a specific pin.
Qwiic / STEMMA QT port
CN2 is an SM04B-SRSS-TB — a 4-pin, 1.0 mm-pitch JST SH connector wired to the Qwiic / STEMMA QT pinout. Any Qwiic-compatible I²C breakout plugs in with a standard cable and no soldering.
Pin 1 GND
Pin 2 3V3
Pin 3 SDA
Pin 4 SCL- The port is powered from the badge’s 3.3 V rail, which comes from a 600 mA regulator shared with the ESP32-S3 and the display. A hungry peripheral will brown out the board before it trips anything.
- I²C pull-ups are typically fitted on the badge side. Adding a breakout that also has pull-ups lowers the effective resistance — usually fine for one or two devices, worth checking for a longer chain.
- Qwiic is 3.3 V logic. A 5 V sensor board needs level shifting.
GPIO breakout pads
The board exposes user-accessible GPIO breakout pads along one edge, labelled on the back silkscreen. They are solder pads rather than a header, so the badge stays flat enough to wear.
Read the labels on your own board. Which GPIOs are broken out has changed between revisions, and the ESP32-S3 reserves different pins depending on the PSRAM variant fitted — see Hardware for why the module suffix matters.
Strapping pins
The ESP32-S3 samples several pins at reset to decide how to boot. Anything you attach to a strapping pin must leave it at its expected level while the board comes up.
GPIO0selects download mode when held low at reset — this is what theBOOTbutton drives.GPIO45sets theVDD_SPIvoltage and must be low at boot. Never fit an external pull-up to it.GPIO46is sampled at reset and is input-only on the ESP32-S3.
If the badge boot-loops after you attach something, disconnect it and reset before assuming the firmware is at fault.