SparkBerry Catbot chassis
Fig 2.1: Schematic of the final Sparkberry version.

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.

SparkBerry head design
Fig 2.2: 3D CAD visualization of the chassis geometry. The design is simple, and actually the simplest way to fit the electronics and motors into a small, cat-like shape: a box with dedicated compartments for microphone, battery and display.

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.