Standalone Thread Border Router with ESP32-C6 + ESP32-H2 (two-chip, WiFi-only)

Quick disclaimer first: I’m not an embedded engineer — I built this with heavy AI assistance (mostly trial, error, and reading logs together with an AI). So please don’t take this as expert advice; think of it more as “here’s a path that worked, plus the mistakes I made along the way” than a definitive guide. If something looks off to someone who actually knows this stuff, I’d genuinely appreciate corrections.

If anyone wants a two-chip (ESP32-C6 host + ESP32-H2 RCP) variant instead of a single native-radio board, I just finished documenting one end-to-end, including a few real gotchas that cost me hours:

Cost: ~$15 total for both boards (roughly $7-8 each, “super mini” clones — your local pricing may vary).

  • Custom 4MB partition table (the default one won’t fit esp_ot_br.bin + web UI + RCP firmware on most 4MB “super mini” boards)
  • The RST/BOOT wiring pitfall: on these boards RST isn’t broken out as a header pin — you have to solder to the button’s inner leg (multimeter continuity test recommended before you start doubting your sanity)
  • The correct UART pins the RCP firmware actually listens on (spoiler: not the board’s silkscreen “TX/RX” pins)
  • A WIFI_PS_MAX_MODEM power-save bug in esp_ot_cli_extension that causes the whole Thread mesh to drop for 1-1.5 hours at a time, then silently recover — fixed by patching two source files
  • A status LED on the RCP (GPIO8, WS2812) that lights up blue once the RCP is actually synced with the host, as a quick “is it healthy” indicator

Full write-up + partition CSV + LED patch here: GitHub - IsoBaba/esp32-thread-border-router: Building a Threaded Board Router using ESP32-C6 and ESP32-H2 (Super Mini versions) · GitHub

Happy to answer questions if anyone hits the same walls I did — no promises I’ll know the deep “why”, but I can at least tell you what fixed it for me.

1 Like