Skip to content

OpenCastor ESP32-C6 Face v0.1.0 — companion image

Latest

Choose a tag to compare

@craigm26 craigm26 released this 17 Aug 19:29
· 22 commits to main since this release
7d09306

The first flashable OpenCastor image for the ESP32-C6 (Waveshare Touch-AMOLED-1.8): the robot's face. One file, one command, and the board shows a pairing QR, flips to an active face with a hands-free mic and a red STOP octagon, and — plugged into an OpenCastor host over USB — becomes that robot's physical companion: real name on screen, STOP wired to the host's signed estop through the included bridge.

Roles: companion (today, verified on the bench against a live rover) or standalone host (in progress — issue #941 carries the MCU Host Profile: on-device Ed25519 envelope verification, Wi-Fi provisioning, Maestro servo control).

Flash it

pip install esptool
python -m esptool --chip esp32c6 -p <your-port> write_flash 0x0 opencastor-c6-merged.bin

(esptool v5 spells it write-flash.) 346 KB; erase-and-flash-this-one-file is the verified path.

Companion bridge (on the host)

tools/pi_bridge.py in the firmware repo: reads the board's touch events over USB serial, POSTs the host's estop on STOP (bearer from the robot's own env, and that is the only network call it is permitted, ever), pushes the robot's name and pairing link to the face. Systemd unit template included; installing it is the operator's one command.

Hardware notes that will save you an afternoon: the panel reset hides behind the TCA9554 expander (EXIO4) and QSPI never reports failure; two different boards ship under this product name (touch chip 0x38 = SH8601 panel, 0x15 = CO5300); the touch controller takes a ~4 s nap ~17 s after boot — this firmware auto-recovers it in 850 ms because a dead STOP target is not acceptable.