Clone
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Project Status
Last updated: 2026-03-03
Quick Summary
| Phase | Status | Progress |
|---|---|---|
| Phase 1: Self-Balancing Firmware | COMPLETE ✅ | 10/10 features merged |
| Phase 1.5: Mechanical + Platform | COMPLETE ✅ | All PRs merged |
| Phase 2a: RC + Core Integration | COMPLETE ✅ | ELRS, mode switch, web UI |
| Phase 2b: SLAM + Navigation | COMPLETE ✅ | RTAB-Map, Nav2, URDF |
| Phase 2c: Sensors + Person Following | COMPLETE ✅ | YOLOv8n, surround vision, follow loop |
| Phase 2d: Outdoor + UWB + Cellular | IN PROGRESS 🔧 | UWB hardware ordered, VESC ordered |
| Phase 3: Multi-Variant | Not started | Branch structure ready |
What's Working (in firmware)
- IMU sensor fusion (MPU6000 complementary filter, CW270-corrected)
- PID balance control with USB terminal tuning (P/I/D/T/M commands)
- Safety: hardware watchdog (50ms IWDG), arm interlock (3s hold), tilt cutoff
- Motor driver: FOC ESC differential drive with steer ramping
- USB CDC telemetry: pitch, roll, yaw, error, integral, motor output as JSON @10Hz
- Gyro boot calibration (1000-sample bias removal — kills yaw drift)
- Status LEDs: solid = OK, blink = error
- Auto-detect magnetometer (QMC5883L/HMC5883L/IST8310) + barometer (BMP280/BME280)
- 3D web UI: real-time orientation visualization with yaw reset
What's Ready (not yet tested on hardware)
- OpenSCAD base plate (270x240mm) with D-cut dropout clamps
- Vertical stem + battery carousel (2-4 packs of 420x88x56mm)
- Jetson Nano Docker environment (JetPack 4.6 + ROS2 Humble)
- STM32-to-Jetson serial bridge (USB CDC → ROS2 /saltybot/imu topic)
- RealSense D435i + RPLIDAR A1M8 ROS2 launch files + configs
- SLAM technical plan (RTAB-Map primary, ORB-SLAM3 fallback)
Recent Hardware Orders (Mar 3, 2026)
| Item | Status | Impact |
|---|---|---|
| Flipsky Dual FSESC 4.20 Plus (VESC) | 📦 Ordered | Replaces hoverboard ESC, has built-in balance app — may eliminate FC |
| 2× Waveshare ST3215 servos (30kg.cm) | 📦 Arriving Mar 6-7 | Pan/tilt camera head for person tracking |
| Waveshare ESP32 Servo Driver | 📦 Arriving Mar 4 | Servo bench testing |
| 3× MaUWB ESP32-S3 DW3000 | 📦 On order | UWB follow-me (2 anchors + 1 tag) |
Architecture Impact
If VESC balance mode works (built-in PID with MPU6050 over I2C):
- Drone FC eliminated from the stack
- Architecture:
Jetson → UART → VESC (balance + motors) - Issues #356 (UART diagnosis) and #362 (UART fix) become moot
- Issue #366 (follow-me controller) redesigned for VESC protocol (pyvesc)
What's Working (on Orin, confirmed Mar 3)
- 2× IMX219 CSI cameras (CAM0 bus 9, CAM1 bus 10) — tested, streaming on dashboard
- Sensor dashboard: http://192.168.86.158:8888 (CSI + C920 + LIDAR + RealSense + hand tracking)
- WiFi: -52 dBm, 175 Mbps (new antennas)
- FC firmware streaming IMU telemetry over USB (/dev/ttyACM0)
- FC→Orin UART (USART6 PC6/PC7): RX direction works, TX direction broken (damaged pad/trace)
What's Next
- VESC integration — configure FSESC 4.20, motor detection, test balance app with MPU6050
- Pan/tilt camera head — bracket CAD, servo wiring, tracking integration
- CSI camera power modes — scenario-based activation (FULL/ACTIVE/AWARE/SOCIAL/SLEEP)
- UWB system — firmware + ROS2 integration when hardware arrives
- First outdoor test — VESC + Ninebot motors + person following on sidewalk
Open Issues
See Issues for current list.
Open PRs
See Pull Requests for pending reviews.
All PRs (merged)
| PR | Title | Agent | Status |
|---|---|---|---|
| #1 | SLAM setup technical plan | sl-perception | Merged |
| #2 | MPU6000 sensor fusion | sl-controls | Merged |
| #3 | Runtime PID tuning via USB | sl-controls | Merged |
| #4 | Safety systems (watchdog, interlock, tilt) | sl-controls | Merged |
| #6 | USB CDC TX fix (first pass) | sl-firmware | Merged |
| #7 | Parametric chassis frame | sl-mechanical | Merged |
| #8 | Jetson Nano platform setup | sl-jetson | Merged |
| #10 | USB CDC DCache fix (MPU non-cacheable) | sl-firmware | Merged |
| #11 | Prototype base plate + stem + battery carousel | sl-mechanical | Under review |
| #14 | Roll axis + yaw telemetry | sl-firmware | Merged |
| #16 | STM32 serial bridge | sl-jetson | Merged |
| #17 | RealSense + RPLIDAR drivers | sl-perception | Merged |
| #19 | Motor driver (differential drive) | sl-controls | Merged |
| #20 | CW270 axis mapping | sl-firmware | Merged |
| #25 | Gyro boot calibration | sl-controls | Merged |
| #26 | Status LEDs | sl-firmware | Merged |
| #27 | Magnetometer + barometer auto-detect | sl-firmware | Merged |
| #29 | Multi-variant branch strategy | sl-firmware | Under review |