Golden HarbourGames

All experiments

Robots · Tools In progress

Rewiring Eva: a full software review

Twelve round robot eyes in three styles

We took the software of a humanoid robot apart, reviewed every piece and rebuilt it as six small programs that each own one part of her. Then we gave her a new brain.

Eva arrived able to move, blink and answer set phrases. We wanted a character: one who listens, sees who is in the room, shows a mood and can be handed to an AI agent as a body. Getting there meant reading everything that ran on her and deciding what each part was allowed to touch.

What the review found

  • Three programs were drawing on the two eye screens at once, and now and then the robot froze. Now one program owns the eyes and everyone else sends it a message.
  • Moves from the control panel worked twice and then stopped. The motor layer remembered where it believed each joint was and skipped orders that looked the same. It now always writes.
  • Driving with the joystick fell behind and then ran on old commands. The wheels now follow only the newest order, and stop by themselves after a second of silence.
  • She went deaf for an hour. The microphone was being muted while she spoke, and a restart mid-sentence left it muted for good.

How it is built now

Six modules: eyes, motors, voice, vision, the web cockpit and a door for AI agents. A module is one program that owns one piece of hardware and has one documented way of being spoken to. Any of them can be stopped, restarted or missing, and the rest carry on. A test fails the build if one module reaches into another.

All of it runs on the Raspberry Pi inside her. Nothing of Eva runs on a laptop.

The new brain

  • She listens for her name and for the word stop on the robot itself, without waiting for the internet. Everything else she hears goes to a language model.
  • Answers come back with a mood attached. The mood picks the eyes and moves the body, more or less depending on the role she is playing.
  • One list of abilities, such as music, a timer, a wave, a dance, look at me, serves both the AI and the control panel.
  • Roles: a persona, a voice, a set of eyes and how lively she is. Switch by voice or from the panel.
  • Vision on the robot: faces she has met, and the objects in front of her.
  • An MCP server with 33 tools, so an outside AI agent can use her as a body. Each move is a task that can be watched and cancelled.

Safety first, then fun

A robot with arms is not a chatbot. The stop word is recognised locally and does not wait for the internet. The wheels need a fresh order every second or they halt. Hot servos pause the body while she keeps talking. The control panel has a stop button on every page.

Still open: the camera does not follow a face yet, her Wi-Fi is weak because her own body shields the antenna, and nobody has measured how she behaves in a noisy room full of children. That is the test that matters.

Pictures

Talk about this one

Questions, ideas, “you should try this instead”: the thread for this experiment is open to anyone.

Open the thread

The forum runs on GitHub Discussions. Reading is open to all; posting needs a free GitHub account.

More experiments