SparkBerry is a small interactive robot designed to bring an AI personality into the physical world. Built as a small geometric cat, it combines a two-wheel platform with expressive eyes and a microphone for natural interaction. The result is a desk companion that does not simply answer requests: it reacts, moves, looks around, gets sleepy, and makes the invisible logic of an AI system feel tangible.
Core Components
- ESP32 DevKit V1
- 2x TT Gear Motors
- DRV8833 Dual H-Bridge Motor Driver
- 1.5" 128x128 OLED Display
- INMP441 I2S Digital Microphone
- Dual 18650 Li-ion Battery Pack
- 3D Printed Modular Chassis
More Than a Desk Toy
The project was conceived as an autonomous bridge between software intelligence and physical behavior. Its ESP32 handles the real-time work that must remain immediate and reliable—motor control, display animation, audio sampling, and WebSocket communication—while the heavier language processing runs remotely through a Raspberry Pi 5 AI core. This separation keeps the robot responsive without sacrificing the flexibility of a conversational model.
The Mechanical Design
SparkBerry's body is a modular 3D-printed enclosure designed around its electronics. The base houses the dual 18650 battery holder, microphone, and a step-down converter. The two classic yellow TT gear motors sit at the base, while the upper shell houses the ESP32 and keeps the roughly 25 jumper wires contained. The front display gives the robot a recognizable face without adding unnecessary mechanical complexity. Designing around cable clearances and serviceability turned the chassis into an engineering problem rather than a decorative shell.
A Face Made of Pixels
The 128x128 OLED is the emotional center of SparkBerry. Instead of relying on a camera or a collection of moving parts, the robot communicates through animated eyes and simple visual states. It can blink, sleep, look left or right, and express happiness, curiosity, dizziness, anger, or excitement. A technical debug mode can also expose Wi-Fi information, signal strength, IP address, microphone volume, and the current emotion, making the small display useful during development as well as during normal interaction.
Movement with Personality
The two motor-driven wheels give SparkBerry a compact differential-drive platform capable of moving forward and backward, turning in place, and executing short choreographed sequences. The command registry maps high-level intentions such as approach, spin, look around, dance, and anger into timed motion and expression combinations. A simple request can therefore become a complete physical reaction: the robot can move independently and change its eyes as one coordinated action.
Listening Locally
An INMP441 digital microphone feeds audio to the ESP32 through I2S, where volume and activity are monitored continuously. Recognized speech is handled by a local Vosk-based STT service, with a constrained vocabulary for common commands and a fallback to open-vocabulary recognition. Frequently used triggers are matched locally first for near-instant responses: calling SparkBerry closer, asking it to spin or dance, telling it to sleep, or switching between animated eyes and technical text does not require waiting for the language model.
The AI Connection
When a phrase is not a direct local trigger, the backend forwards it through a secure tunnel to the backend running on the Raspberry Pi 5 AI core. That service interprets the user's intent and returns a strict JSON command containing an action and the catbot's speech. The backend validates the action against the command registry, translates it into movement and emotion, and safely falls back to a happy idle state if the model is unavailable, times out after a few seconds, or returns an invalid response. This keeps the personality expressive while ensuring that unreliable network or AI behavior cannot leave the robot in an undefined state.
A Robot That Knows When to Rest
SparkBerry includes a small but deliberate layer of autonomy. After five minutes without meaningful sound or interaction, it enters an animated sleeping state with closed, breathing eyes. A new sound above the configured threshold or a voice command wakes it again, with a short cooldown to avoid accidental oscillation. The sleep behavior makes the robot feel less like a device that is always waiting and more like a companion with its own quiet rhythm.
A Personal Experiment in Embodied AI
SparkBerry brings together embedded C++, a Node.js WebSocket backend, local speech recognition, remote language models, and parametric 3D design in one small platform. Its value is not only in the individual features, but in the way they reinforce one another: software commands become motion, language becomes expression, and a tiny printed chassis becomes a physical endpoint for an entire self-hosted AI ecosystem.
Project Gallery
05 IMAGES / CLICK TO VIEW-
01
SparkBerry - Front View
The compact cat-sized robot, with its expressive OLED face and two-wheel drive platform.
-
02
SparkBerry - Side View
The side of the robot, showing its beautiful tail/power switch.
-
03
Expressive Display
The OLED face renders animated eyes and emotional states; we know that cats like to sleep.
-
04
Internal Engineering
The internal arrangement of the ESP32, motor driver, battery pack, microphone, and a tangle of jumper wires.
-
05
Voice Interaction & Debug Dashboard
SparkBerry listens through its digital microphone and turns local voice commands or AI responses into movement and expression. A remote debug dashboard allows monitoring of SparkBerry's microphone volume, motor speeds, and current emotional state.