An Open-Source ESP32-S3 Firmware for Multipurpose Intelligent Robots
Offline wake word, cloud ASR/TTS, VAD, AGC β natural voice interaction on a microcontroller.
EAF animation engine on LVGL, 20+ expressions with dynamic transitions on a 240Γ240 round LCD.
Multi-servo & wheel motor control with IMU-based balance and preset actions.
BluFi provisioning, OTA firmware updates, HMAC device activation.
Extensible remote command framework β control your robot programmatically.
ESP32-S3 camera integration with snapshot capabilities via MCP.
5-Servo Robot Dog
Gait control Β· Head tracking Β· Emotive actions
2-Wheel Hovercraft
Balance control Β· Differential drive Β· Debug server
βββββββββββββββββββββββββββββββββββββββββββββ β Application Layer β β Voice AI Β· Emote Display Β· MCP Β· β β Camera Tools Β· OTA β βββββββββββββββββββββββββββββββββββββββββββββ€ β Board Abstraction β β βββββββββββββββββββββββββββββββββββββββ β β β boards/common/ β β β β IMU Β· BLE Β· Button Β· Battery Β· β¦ β β β βββββββββββββββββββββββββββββββββββββββ β β ββββββββββββββββ βββββββββββββββββββββ β β β boards/ β β boards/ β β β β puppy/ β β hover/ β β β β 5-Servo Dog β β 2-Wheel Hover β β β ββββββββββββββββ βββββββββββββββββββββ β βββββββββββββββββββββββββββββββββββββββββββββ€ β ESP-IDF Framework β β WiFi Β· BLE Β· SPI Β· I2C Β· I2S Β· UART β βββββββββββββββββββββββββββββββββββββββββββββ
One unified codebase, two robot forms. Common hardware drivers in boards/common/, robot-specific logic in boards/puppy/ and boards/hover/.
| Component | Interface | Details |
|---|---|---|
| GC9A01 Round LCD | SPI | 240Γ240, EAF emotion animations via LVGL |
| IMU (QMI8658C) | I2C | 6-axis attitude + balance control |
| Servo Motors | UART (XGO) | Puppy: 5 servos, Hover: 1 servo + 2 DC motors |
| Audio Codec | I2S | Simplex/Duplex mic + speaker |
| Camera (OV2640) | DVP | Snapshot via MCP tools |
| Buttons + Touch | GPIO | WiFi config, chat toggle, NVS reset |
# Clone & enter
git clone https://github.com/Xgorobot/RIG-Omni.git
cd RIG-Omni
# Source ESP-IDF
source ~/esp/esp-idf/export.sh
# Configure board type
idf.py set-target esp32s3
idf.py menuconfig # β RIG-Omni β Board Type β Puppy / Hover
# Build & flash
idf.py build
idf.py -p /dev/ttyUSB0 flash monitor