<- Back to projects

2026 / UC Berkeley

Robogotchi

ESP32 robot pet with real-time state machine and web dashboard

Robogotchi assembled prototype with OLED face

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
Robogotchi assembled prototype with OLED face
Open chassis showing internal electronics
Open chassis showing internal electronics
Electronics bay and wiring integration
Electronics bay and wiring integration
Demo prototype with outer shell and accessories
Demo prototype with outer shell and accessories
Robogotchi dashboard mark
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