Board support
spec v0.5.0
Exactly what hardware we have and how far each board is brought up across
the three firmware stacks. The detailed per-board pinouts and bring-up
notes live in reference/boards/; this is the
at-a-glance status record.
Derived view, hand-maintained. As of 2026-06-29. Update when a board is acquired, verified, or changes role. Possession/role policy is in hardware.md and ADR-16; firmware-by-message coverage is in status-matrix.md.
Legend: ✅ verified on hardware · 🟡 partial / builds-only · ⬜ not done · — n/a for this board’s role
Firmware-support tier
Section titled “Firmware-support tier”“Tier” = what a board is for. A board only targets one production stack (nRF52840 → Zephyr field; ESP32-S3 → ESP-IDF hub); the Arduino harness is for PHY bring-up of any board (ADR-14).
| Board | MCU + radio | On hand | Role | Arduino harness | Zephyr field | ESP-IDF hub |
|---|---|---|---|---|---|---|
| Heltec Mesh Node T114 v1 | nRF52840 + SX1262 | ✅ | trap only (ADR-16) | ✅ TX | ✅ JOIN+STATUS+CMD | — |
| Heltec Mesh Node T114 v2 | nRF52840 + SX1262 | ✅ | trap / router | ✅ TX | ✅ (same build as v1) | — |
| Seeed XIAO nRF52840 + Wio-SX1262 | nRF52840 + SX1262 | ✅ | trap / router | ✅ TX | ✅ JOIN+STATUS+CMD | — |
| Heltec WiFi LoRa 32 V3.1 | ESP32-S3 + SX1262 | ✅ | hub | ✅ RX | — | ✅ full hub FW |
| Seeed XIAO ESP32-S3 + Wio-SX1262 | ESP32-S3 + SX1262 | ✅ ×2 | hub | ✅ RX | — | 🟡 builds; hub FW pins target V3.1 |
| SenseCAP Indicator D1L | ESP32-S3 + SX1262 + RP2040 + LCD | ✅ | hub (Phase 2 target) | ⬜ (radio behind PCA9535) | — | ⬜ |
| Heltec WiFi LoRa 32 V4 | ESP32-S3 + SX1262 | ✅ | spare hub / router stand-in | ⬜ | — | 🟡 (V3.1 FW likely runs; untested) |
| LilyGO T-Beam Supreme | ESP32-S3 + SX1262 + GPS | ✅ | future outdoor/cellular hub | ⬜ | — | ⬜ (Phase 7+) |
| LilyGO T-Echo | nRF52840 + SX1262 + e-paper | ⬜ not yet | TECH node candidate | ⬜ | ⬜ | — (Phase 4) |
| RAK Solar Node | nRF52840 + SX1262 | research only | reference design | ⬜ | ⬜ | — |
Per-board detail
Section titled “Per-board detail”Heltec Mesh Node T114 (v1 + v2) — nRF52840 trap
Section titled “Heltec Mesh Node T114 (v1 + v2) — nRF52840 trap”- Status: fully working Zephyr field board. Bench-verified through the whole protocol (JOIN → ANNOUNCE → STATUS/STATUS_ACK → COMMAND/COMMAND_ACK).
- v1 is endpoint-only (ADR-16): a power-ramp bug browns out TX on payloads >47 B, unsafe for the router role (routers relay larger frames).
- UF2 load address 0x26000 (S140 6.1.1 bootloader) — not 0x27000. Wrong address = silent reset loop. Node ID 0x1.
- Pinout: reference/boards/heltec_mesh_node_t114.md.
Seeed XIAO nRF52840 + Wio-SX1262 — nRF52840 trap (primary dev board)
Section titled “Seeed XIAO nRF52840 + Wio-SX1262 — nRF52840 trap (primary dev board)”- Status: fully working Zephyr field board. JOIN handshake bench-verified 2026-06-29. Now the primary nRF dev platform.
- UF2 load address 0x27000 (standard S140 7.x). Node ID 0x2.
- Gotcha (fixed): SX1262 RESET/BUSY were swapped in the board def and hung the driver at boot — see status.md 2026-06-29. RESET=D2=P0.28, BUSY=D3=P0.29.
- No battery/power headers — great cheap dev board, but the headless T114 is preferred for battery/solar work.
- Pinout: reference/boards/xiao_nrf52840_wio_sx1262.md.
Heltec WiFi LoRa 32 V3.1 — ESP32-S3 hub (primary hub)
Section titled “Heltec WiFi LoRa 32 V3.1 — ESP32-S3 hub (primary hub)”- Status: fully working ESP-IDF hub. Receives all uplinks, replies STATUS_ACK / JOIN_ACK, pushes the COMMAND demo, logs ANNOUNCE. Node 0xA0.
- Direct-GPIO SX1262; CP2102 UART console (
/dev/ttyUSB*, not ttyACM). - Pinout: reference/boards/heltec_wifi_lora_32_v3.md.
Seeed XIAO ESP32-S3 + Wio-SX1262 (×2) — ESP32-S3 hub candidate
Section titled “Seeed XIAO ESP32-S3 + Wio-SX1262 (×2) — ESP32-S3 hub candidate”- Status: Arduino-RX verified; hub firmware NOT yet running on it. The hub firmware hardcodes the Heltec V3.1 SX1262 pins, so making the XIAO S3 a real hub needs the board-portable pin work (tracked follow-up).
- Two units: one bare, one cased (USB-power only → bench RX / test board).
- Pinout: reference/boards/xiao_esp32s3_wio_sx1262.md.
SenseCAP Indicator D1L — ESP32-S3 hub (Phase 2 target)
Section titled “SenseCAP Indicator D1L — ESP32-S3 hub (Phase 2 target)”- Status: not started. The SX1262 is behind a PCA9535 I²C IO expander, incompatible with stock RadioLib and the current hub HAL — needs Seeed’s BSP path. This is why Phase 1 RX moved to the V3.1.
- Planning: docs/firmware/sensecap-indicator-hub.md.
Heltec WiFi LoRa 32 V4 — spare ESP32-S3
Section titled “Heltec WiFi LoRa 32 V4 — spare ESP32-S3”- On hand, unused. Shares the V3.x SX1262 pin map, so the V3.1 hub firmware should run with little/no change — untested. Useful as a second hub for triangulation or a router stand-in.
Future / not-yet boards
Section titled “Future / not-yet boards”- LilyGO T-Beam Supreme (on hand): outdoor / cellular hub candidate, Phase 7+. Not needed yet.
- LilyGO T-Echo (not acquired): TECH-node candidate (e-paper + buttons), Phase 4.
- RAK Solar Node (reference only): production-design reference if we move to a custom PCB.
Test equipment gaps
Section titled “Test equipment gaps”| Item | Status | Blocks |
|---|---|---|
| PPK2 / Joulescope power analyser | ⬜ not on hand | deep-sleep current baseline (Phase 1 tail) |
| SWD / J-Link probe | ⬜ not on hand | low-level nRF debug (we bisect via LED/over-air instead) |
| LiFePO4 cells + solar panels | ⬜ not yet | real power/charge bench (Phase 2+) |