2026 / UC Berkeley
Robogotchi
ESP32 robot pet with real-time state machine and web dashboard

Overview
A Tamagotchi-style mobile robot pet built around ESP32 firmware, a real-time behavior state machine, motor control, sensing hooks, and a local Wi-Fi dashboard for interaction and debugging.
Problem / Context
The project needed to coordinate motion, sensing, display behavior, camera/RFID team modules, and user interaction without blocking delays or fragile integration between subsystems.
Role
Team project (MECENG 235) - UC Berkeley
Institution
UC Berkeley
Team
Loris Emanuelli and Robogotchi team
Tags
Robotics / Embedded Systems / Prototyping
Process
- - Defined the robot behavior model and interaction states
- - Structured ESP-IDF firmware with Arduino-compatible components
- - Built non-blocking scheduling around periodic sensor and telemetry updates
- - Integrated motor, touch, IMU, buzzer, display, RFID, and camera interfaces
- - Developed a browser-based dashboard served by the ESP32
- - Prepared isolated hooks so teammate-owned camera and RFID modules could plug into the main behavior loop
Key design decisions
- - Used a central state controller so touch, feed, shake, follow, hunger, sleep, and death states could be prioritized consistently
- - Separated hardware wrappers from behavior logic to keep integration testable
- - Served the dashboard locally from the ESP32 so the robot could be operated without external infrastructure
- - Kept follow mode interruptible by touch, feed, and upset events to make the robot feel responsive
Engineering details
- - ESP-IDF application with Arduino as a component
- - Non-blocking runtime loop based on millis() and periodic tasks
- - Robot states: STARTUP, IDLE, HAPPY, SAD, HUNGRY, SLEEP, FOLLOW, DEAD
- - Interfaces for motors, touch sensing, IMU shake detection, buzzer patterns, OLED face display, RFID feeding, and camera tracking
- - Serial telemetry and web dashboard state reporting for bench debugging
Outcomes
- - Built an integration-ready firmware backbone for the robot
- - Produced a working physical prototype with chassis, wheels, electronics, and display face
- - Created a dashboard and telemetry path for real-time state inspection
- - Reduced integration risk by isolating teammate modules behind stable interfaces
Gallery

Robogotchi assembled prototype with OLED face

Open chassis showing internal electronics

Electronics bay and wiring integration

Demo prototype with outer shell and accessories
Robogotchi dashboard mark
What I would do next
- - Tune final pin assignments and sensor thresholds on the physical robot
- - Replace placeholder display expressions with finalized OLED graphics
- - Run floor tests for follow behavior, motor response, and event priority
- - Refine enclosure access, cable management, and battery serviceability