sl-firmware
48e9af60a9
feat: Remove ELRS arm requirement for autonomous operation (Issue #512)
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>
2026-03-06 11:46:03 -05:00
..
2026-03-02 10:34:35 -05:00
2026-02-28 13:09:18 -05:00
2026-03-03 17:35:34 -05:00
2026-02-28 19:43:48 -05:00
2026-03-02 09:40:18 -05:00
2026-03-02 12:51:42 -05:00
2026-03-03 17:35:34 -05:00
2026-03-03 17:35:34 -05:00
2026-03-04 10:36:35 -05:00
2026-03-04 10:36:35 -05:00
2026-03-04 10:36:35 -05:00
2026-03-06 10:27:36 -05:00
2026-03-06 10:27:36 -05:00
2026-03-06 10:27:36 -05:00
2026-03-02 13:29:18 -05:00
2026-02-28 17:48:53 -05:00
2026-02-28 12:37:24 -05:00
2026-03-03 19:00:12 -05:00
2026-02-28 21:07:15 -05:00
2026-03-02 10:53:02 -05:00
2026-03-02 11:06:13 -05:00
2026-02-28 17:48:53 -05:00
2026-03-06 11:46:03 -05:00
2026-02-28 11:58:23 -05:00
2026-02-28 21:06:26 -05:00
2026-03-04 10:36:35 -05:00
2026-02-28 22:04:27 -05:00
2026-03-02 09:56:18 -05:00
2026-03-02 10:53:02 -05:00
2026-03-02 20:49:26 -05:00
2026-03-03 17:29:59 -05:00
2026-03-03 19:00:12 -05:00
2026-03-01 04:55:54 -05:00
2026-03-03 19:00:12 -05:00
2026-03-03 19:00:12 -05:00