How luwudynamics/rig_omni works
RIG-Omni is ESP32-S3 robot firmware sharing an application core across multiple robot forms. The main interaction runs from user input through application state and voice services to cloud protocols and back to display/audio output; MCP tools and board-specific control provide a parallel remote-command path to robot hardware. The README documents several capabilities whose implementations were not sampled, so those are represented at supported directory or module paths without speculative call wiring.
Main entry points: application.cc Application · boards Board implementations · protocol.cc Cloud protocols · audio_service.cc Audio service
Components 24
Application Core
- Application
main/application.cc - Device state
main/device_state_machine.cc - Settings
main/settings.cc - Runtime assets
main/assets.cc
Voice Interaction
- Audio service
main/audio/audio_service.cc - Audio codecs
main/audio/codecs - Wake-word detection
main/audio/wake_words - Audio processing
main/audio/processors
Robot Hardware
- Board implementations
main/boards - Motion control
main/boards/puppy/xgo.cc - Shared hardware
main/boards/common - Camera
main/boards/common/esp32_camera.cc
User Interfaces
- MCP tools
main/mcp_server.cc - Emotion display
main/display/emote_display.cc - LCD / LVGL
main/display/lcd_display.cc - BLE remote control
main/boards/puppy/ble_remote_control.cc - Hover debug server
main/boards/hover/hover_debug_server.cc
Connectivity
- Cloud protocols
main/protocols/protocol.cc - MQTT transport
main/protocols/mqtt_protocol.cc - WebSocket transport
main/protocols/websocket_protocol.cc - Firmware updates
main/ota.cc - WiFi provisioning
main/boards/common/blufi.cpp
Other components
- Robot user
- Voice services
Connections 29
- Robot user → Application: interacts with
- Application → Device state: updates state
- Application → Board implementations: gets board
- Application → Emotion display: updates UI
- Application → Audio service: controls audio
- Application → Cloud protocols: initializes protocol
- Application → Firmware updates: checks updates
- Application → Runtime assets: loads assets
- Audio service → Audio codecs: reads / plays audio
- Audio service → Wake-word detection: detects wake word
- Audio service → Audio processing: processes audio
- Cloud protocols → MQTT transport: selects transport
- Cloud protocols → WebSocket transport: selects transport
- Cloud protocols → Voice services: exchanges voice data
- Voice services → Cloud protocols: returns responses
- Board implementations → Shared hardware: uses shared drivers
- Board implementations → Motion control: controls robot
- Board implementations → MCP tools: registers tools
- Board implementations → Camera: initializes camera
- Board implementations → BLE remote control: provides remote control
- Board implementations → WiFi provisioning: supports provisioning
- Board implementations → Hover debug server: exposes tuning
- MCP tools → Board implementations: dispatches commands
- MCP tools → Voice services: receives remote requests
- Emotion display → LCD / LVGL: renders animations
- Robot user → BLE remote control: controls robot
- Robot user → Hover debug server: tunes motors
- Application → Settings: reads configuration
- Settings → Robot user: persists preferences