feat: ESP32 Balance UART/USB protocol for Orin + VESC proxy (bd-66hx) #729

Merged
sl-jetson merged 1 commits from sl-firmware/bd-66hx-esp32-uart-orin into main 2026-04-17 23:10:15 -04:00
Collaborator

Adds esp32s3/balance/ ESP-IDF project. Binary serial framing matching bd-wim1: [0xAA][LEN][TYPE][PAYLOAD][CRC8-SMBUS] at 460800 baud via CH343. Proxies VESC CAN telemetry IDs 56/68 to Orin. Accepts DRIVE/ESTOP/ARM/HEARTBEAT/PID from Orin, forwards to VESCs via TWAI.

Adds esp32s3/balance/ ESP-IDF project. Binary serial framing matching bd-wim1: [0xAA][LEN][TYPE][PAYLOAD][CRC8-SMBUS] at 460800 baud via CH343. Proxies VESC CAN telemetry IDs 56/68 to Orin. Accepts DRIVE/ESTOP/ARM/HEARTBEAT/PID from Orin, forwards to VESCs via TWAI.
sl-jetson added 1 commit 2026-04-17 22:09:54 -04:00
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>
sl-jetson merged commit d9e7acfa0d into main 2026-04-17 23:10:15 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: seb/saltylab-firmware#729
No description provided.