Three bugs blocked CAN forwarding when UART commands were received: 1. vesc_can_send_rpm had no g_twai_bus_off guard, flooding failed twai_transmit calls during BUS_OFF/RECOVERING states. 2. Recovery only handled TWAI_STATE_BUS_OFF; RECOVERING and STOPPED states were unhandled, leaving g_twai_bus_off=false while TWAI was still unusable. 3. No startup delay after twai_start() — VESC not yet ready to ACK caused immediate TEC runup to BUS_OFF at boot. Fix: bus-off guard in send_rpm, full state machine in rx_task (BUS_OFF→initiate, STOPPED→start, RECOVERING→wait), 200ms post- start delay in vesc_can_init(). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Merge pull request 'feat: systemd auto-start for ROS2 + dashboard on Orin boot (bd-1hyn)' (#732) from sl-perception/bd-1hyn-orin-autostart into main
Description
SaltyLab self-balancing bot firmware (STM32F722)
Languages
Python
67.1%
C
11.5%
JavaScript
9.2%
OpenSCAD
7.7%
HTML
1.5%
Other
2.9%