Hardware Reference

Know your board. POOM is built on an ESP32-C5 (RISC-V, 2.4 GHz Wi-Fi + BLE + 802.15.4) and exposes a handful of on-board peripherals through dedicated drivers. This page maps what's on the device, which driver runs it, and the GPIO assignments from the board support header.

Platform: ESP-IDF v6.1.0, target esp32c5, 8 MB flash (see Getting Started for the flash layout).

On-Board Peripherals & Drivers

PeripheralDriverNotes
6 buttons (A, B, UP, DOWN, LEFT, RIGHT)button_driverPublishes press events over SBUS (input/button)
OLED display 128×64poom_arduboy_displayI2C; Arduboy-style graphics API
WS2812 / SK6812 LED stripws2812RMT-based; driven by LED rainbow or Lua Led.*
BuzzerbuzzerPWM tones via ESP-IDF LEDC
IR receive + transmitir_rcv (+ IR TX pin)NEC decode over RMT; used by IR UNIV
microSD cardsd_cardSPI mode, FATFS, mount point /sdcard
I2C bus (Qwiic-style)i2cShared bus for sensors + display
NFC front-end (ST25R3916)nfcInterrupt-driven; see the NFC Lab

GPIO Pinout

The board support header (board/include/bsp_pong.h) defines two pin profiles — assignments differ by board revision / target. Confirm which profile matches your hardware before wiring anything external.

SignalProfile A (GPIO)Profile B (GPIO)
Button A928
Button B109
Button LEFT223
Button RIGHT2323
Button UP17
Button DOWN1524
I2C SDA60
I2C SCL71
SPI MOSI194
SPI MISO208
SPI CLK216
SPI CS (SD)185
WS2812 LED data827
Buzzer226
NFC interrupt42
IR TX325
IR RX1110
Always verify against the header. Pin maps change between board revisions. Treat this table as a starting point and cross-check board/include/bsp_pong.h for your exact build before connecting hardware.

Storage Map

Flash is partitioned for dual-slot OTA plus persistent storage:

PartitionPurpose
nvsKey-value store: config, Wi-Fi credentials, BLE bonding, saved NFC profiles
phy_initWi-Fi/BLE PHY calibration
zb_storage / zb_fctZigbee/Thread storage and factory data (FATFS)
otadataTracks the active OTA slot
internalInternal filesystem (SPIFFS, 512 KB)
ota_0 / ota_1Two 3712 KB app slots for safe updates

The microSD card (/sdcard) is separate from flash and holds captures, portal templates, NFC dumps and Lua scripts.

Inserting a microSD card into POOM.
Insert a microSD card for captures, portals, NFC dumps and Lua scripts.