Enable Jetson autonomous arming while keeping RC as optional override. Key Changes: ============= 1. RC Kill Switch (CH5 OFF) → Emergency Stop (not disarm) - Motors cutoff immediately on kill switch - Robot remains armed (allows re-arm without re-initializing) - Maintains kill switch safety for emergency situations 2. RC Disarm Only on Explicit CH5 Falling Edge (while RC alive) - RC disconnect doesn't disarm Jetson-controlled missions - RC failsafe timer (500ms) still handles signal loss 3. Jetson Autonomous Arming (via CDC 'A' command) - Works independently of RC state - Requires: calibrated IMU, robot level (±10°), no estop active - Uses same 500ms arm-hold safety as RC 4. All Safety Preserved - Arming hold timer: 500ms - Tilt limit: ±10° level - IMU calibration required - Remote E-stop override - RC failsafe: 500ms signal loss = disarm - Jetson timeout: 500ms heartbeat = zero motors Command Protocol (CDC): A = arm (Jetson) D = disarm (Jetson) E/Z = estop / clear estop H = heartbeat (keep-alive) C<spd>,<str> = drive command Behavior Matrix: RC disconnected → Jetson-armed stays armed, normal operation RC connected + armed → Both Jetson and RC can arm, blended control RC kill switch (CH5) → Emergency stop + can re-arm via Jetson 'A' RC signal lost → Disarm after 500ms (failsafe) See AUTONOMOUS_ARMING.md for complete protocol and testing checklist. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Description
SaltyLab self-balancing bot firmware (STM32F722)
Languages
Python
67.1%
C
11.4%
JavaScript
9.2%
OpenSCAD
7.8%
HTML
1.5%
Other
2.9%