P1: Create Orin-side motor control daemon (Python/ROS2) #523

Closed
opened 2026-03-06 22:36:14 -05:00 by seb · 0 comments
Owner

Context

Motor bench test confirmed working (2026-03-06). The W command protocol works:

  • W<speed>,<steer>\n — sets persistent speed/steer (main loop sends at 50Hz)
  • W0,0\n — stops motors
  • Speed/steer range: -1000 to 1000
  • FC acks with W:<speed>,<steer>\n

Requirements

  1. Python daemon on Orin (/dev/ttyTHS1 @ 921600 baud)
  2. Accept speed/steer commands from ROS2 topics or HTTP API
  3. Send W commands to FC at appropriate rate
  4. Monitor FC status via ? query
  5. Implement safety: watchdog timeout → W0,0, max speed limits
  6. Handle FC reboot detection (watch for boot banner)

Hardware

  • Orin: 192.168.86.158, /dev/ttyTHS1 @ 921600 baud
  • FC: MAMBA F722S via USART6
  • ESC: Hoverboard EFeru FOC via FC UART5 @ 115200
## Context Motor bench test confirmed working (2026-03-06). The W command protocol works: - `W<speed>,<steer>\n` — sets persistent speed/steer (main loop sends at 50Hz) - `W0,0\n` — stops motors - Speed/steer range: -1000 to 1000 - FC acks with `W:<speed>,<steer>\n` ## Requirements 1. Python daemon on Orin (`/dev/ttyTHS1` @ 921600 baud) 2. Accept speed/steer commands from ROS2 topics or HTTP API 3. Send W commands to FC at appropriate rate 4. Monitor FC status via `?` query 5. Implement safety: watchdog timeout → W0,0, max speed limits 6. Handle FC reboot detection (watch for boot banner) ## Hardware - Orin: 192.168.86.158, /dev/ttyTHS1 @ 921600 baud - FC: MAMBA F722S via USART6 - ESC: Hoverboard EFeru FOC via FC UART5 @ 115200
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

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