feat: ESP32-S3 OTA stack — partitions, Gitea checker, self-update, UART IO, display, Orin serial trigger (6 beads) #731
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-firmware/ota-esp32"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
6 OTA beads on esp32s3/ (bd-3gwo, bd-3hte, bd-18nb, bd-21hv, bd-1yr8, bd-1s1s).
Replaces Orin↔ESP32-S3 BALANCE CAN comms (0x300-0x303 / 0x400-0x401) with binary serial framing over CH343 USB-CDC at 460800 baud. Protocol matches bd-wim1 (sl-perception) exactly: Frame: [0xAA][LEN][TYPE][PAYLOAD][CRC8-SMBUS] CRC covers LEN+TYPE+PAYLOAD, big-endian multi-byte fields. Commands (Orin→ESP32): HEARTBEAT/DRIVE/ESTOP/ARM/PID Telemetry (ESP32→Orin): TELEM_STATUS, TELEM_VESC_LEFT (ID 56), TELEM_VESC_RIGHT (ID 68), ACK/NACK VESC CAN TWAI kept for motor control; drive commands from Orin forwarded to VESCs via SET_RPM. Hardware note: SN65HVD230 rewired from IO43/44 to IO2/IO1 to free IO43/44 for CH343. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>Extends the bd-66hx serial protocol with two new Orin→ESP32 commands: CMD_OTA_CHECK (0x10): triggers gitea_ota_check_now(), responds with TELEM_VERSION_INFO (0x84) for Balance and IO (current + available ver). CMD_OTA_UPDATE (0x11): uint8 target (0=balance, 1=io, 2=both) — triggers uart_ota_trigger() for IO or ota_self_trigger() for Balance. NACK with ERR_OTA_BUSY or ERR_OTA_NO_UPDATE on failure. New telemetry: TELEM_OTA_STATUS (0x83, target+state+progress+err), TELEM_VERSION_INFO (0x84, target+current[16]+available[16]). Wires OTA stack into app_main: ota_self_health_check on boot, gitea_ota_init + ota_display_init after peripherals ready. CMakeLists updated with all OTA component dependencies. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>aec9c472cfto1ae600ead4