๐ Reachy Mini Boot Sequence
โ ๏ธ Critical Discovery
Reachy has a two-stage activation process. The web dashboard auto-starts, but the motor control backend requires manual activation via the dashboard's red switch for safety reasons.
๐ Boot Timeline
Stage 1: Hardware Power-On (0-30 seconds)
- Power applied to Raspberry Pi 4
- Bootloader loads kernel from SD card
- Linux kernel (Raspbian) initializes
- Network stack loads, connects to saved WiFi
- mDNS registers
reachy-mini.local
Stage 2: Web Dashboard Service (30-60 seconds)
- Dashboard service starts via systemd
- Uvicorn ASGI server binds to port 8000
- Static content (HTML/CSS/JS) becomes accessible
- Health check endpoint returns
{"status":"ok"} - WebSocket server ready for real-time communication
โ Inactive: Motor control, movement APIs
Stage 3: Backend Dormant State (60+ seconds)
- Robot control backend does NOT auto-start
- Dashboard shows red "power" switch (OFF state)
- Movement APIs return
{"detail":"Backend not running"} - Safety feature prevents unexpected movement
- Resources saved (Python SDK not running)
Stage 4: Manual Backend Activation โ ๏ธ USER ACTION REQUIRED
What happens when you click the switch:
- Sends command to start
reachy-sdk-server - Motor controllers initialize
- Joint position sensors calibrate
- Camera modules connect
- Movement libraries load from cache/HuggingFace
- Control loops establish
Stage 5: Fully Operational ๐
- All movement APIs functional
- 70+ emotions available
- 19 dances available
- Motor control online
- Real-time WebSocket control active
- Safety systems active (collision detection, joint limits)
๐ฌ Technical Details
Why This Architecture?
๐ก๏ธ Safety First
The robot doesn't start moving immediately after power-on. Someone must intentionally "wake" it to prevent unexpected movement after power loss or reboot.
๐พ Resource Management
The heavy Python backend with motor control doesn't consume CPU/RAM until needed. The Raspberry Pi can run other services without the overhead.
๐ Debugging Friendly
Web interface remains available even if robot backend crashes, allowing remote diagnosis and recovery without physical access.
โก Power Loss Recovery
After unexpected shutdown, robot remains in safe state until manually reactivated, preventing damage from uncontrolled movements during unstable power.
โ Verification Commands
# Stage 2: Check if dashboard is up
curl -X POST http://reachy-mini.local:8000/health-check
# Expected: {"status":"ok"}
# Stage 3: Check if backend is running
curl -X POST http://reachy-mini.local:8000/api/move/play/\
recorded-move-dataset/pollen-robotics/\
reachy-mini-emotions-library/test
# Expected if dormant: {"detail":"Backend not running"}
# Stage 5: Verify full operation
./aurion status
# Should show:
# Reachy Dashboard: โ Online
# Reachy Backend: โ Active