sl-webui f71dad5344 feat(arch): migrate all STM32/Mamba/BlackPill refs to ESP32 BALANCE/IO + fix roslib@1.4.0
Architecture change (2026-04-03): Mamba F722S (STM32F722) and BlackPill
replaced by ESP32 BALANCE (PID loop) and ESP32 IO (motors/sensors/comms).

- Update CLAUDE.md, docs, chassis BOM/ASSEMBLY, pinout, power-budget,
  wiring-diagram, TEAM.md, AUTONOMOUS_ARMING.md, docker-compose
- Update all ROS2 package comments, config labels, launch args
  (stm32_port→esp32_port, /dev/stm32-bridge→/dev/esp32-bridge)
- Update WebUI: stm32Mode→esp32Mode, stm32Version→esp32Version,
  "STM32 State/Mode" labels → "ESP32 State/Mode" (ControlMode, SettingsPanel)
- Add TODO(esp32-migration) markers on stm32_protocol.py and mamba_protocol.py
  binary frame layouts — pending ESP32 protocol spec from max
- Fix roslib CDN 1.3.0→1.4.0 in all 11 HTML panels (fixes ROS2 Humble
  rosbridge "Received a message without an op" incompatibility)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 08:25:24 -04:00

2.8 KiB

SaltyLab — Ideal Team

Project

Self-balancing two-wheeled robot using two ESP32 boards (BALANCE + IO), hoverboard hub motors, Jetson Orin for AI/SLAM.

⚠️ ARCHITECTURE CHANGE (2026-04-03): ESP32 BALANCE (ESP32) and ESP32 IO retired. Replaced by ESP32 BALANCE (PID loop) + ESP32 IO (motors/sensors/comms).

Current Status

  • Hardware: ESP32 BALANCE + ESP32 IO replacing STM32 FC — details from max incoming
  • Firmware: ESP32 firmware TBD; legacy STM32 code in src/ is archived
  • STM32 legacy (archived): USB CDC bug was STM32-specific — no longer applies

Roles Needed

1. Embedded Firmware Engineer (Lead)

Must-have:

  • Deep ESP32 (Arduino/ESP-IDF) or STM32 HAL experience
  • USB OTG FS / CDC ACM debugging (TxState, endpoint management, DMA conflicts)
  • SPI + UART + USB coexistence on ESP32
  • PlatformIO or bare-metal ESP32 toolchain
  • DFU bootloader implementation

Nice-to-have:

  • Betaflight/iNav/ArduPilot codebase familiarity
  • PID control loop tuning for balance robots
  • FOC motor control (hoverboard ESC protocol)

Why: The immediate blocker is a USB peripheral conflict. Need someone who's debugged STM32 USB issues before — ESP32 firmware for the balance loop and I/O needs to be written from scratch.

2. Control Systems / Robotics Engineer

Must-have:

  • PID tuning for inverted pendulum / self-balancing systems
  • Complementary filter / Kalman filter for IMU sensor fusion
  • Real-time control loop design (1kHz+)
  • Safety system design (tilt cutoff, watchdog, arming sequences)

Nice-to-have:

  • Hoverboard hub motor experience
  • ELRS/CRSF RC protocol
  • ROS2 integration

Why: Once USB is fixed, the balance loop needs real-world tuning. PID gains, filter coefficients, motor response curves, safety margins — all need someone with hands-on balance bot experience.

3. Perception / SLAM Engineer (Phase 2)

Must-have:

  • Jetson Nano / NVIDIA Jetson platform
  • Intel RealSense D435i depth camera
  • RPLIDAR integration
  • SLAM (ORB-SLAM3, RTAB-Map, or similar)
  • ROS2

Nice-to-have:

  • Person tracking / following
  • Obstacle avoidance
  • Nav2 stack

Why: Phase 2 goal is autonomous navigation. Jetson Nano with RealSense + RPLIDAR for indoor mapping and person following.


Hardware Reference

Component Details
FC ESP32 BALANCE (ESP32RET6, MPU6000)
Motors 2x 8" pneumatic hoverboard hub motors
ESC Hoverboard ESC (EFeru FOC firmware)
Battery 36V pack
RC BetaFPV ELRS 2.4GHz TX + RX
AI Brain Jetson Nano + Noctua fan
Depth Intel RealSense D435i
LIDAR RPLIDAR A1M8
Spare IMUs BNO055, MPU6050

Repo