2026-11-08 · 4 min read
A ship of Theseus in servos
In 2015, alongside my faithful companion Mila - my dog, just a pup then - I built Charlotte, a six-legged robot that listened for eleven spoken commands and walked. The vision was a second pet to watch the first: something that could roam the house while I was at work, find Mila, and report back. Carrying lessons over from a smaller project, Gizmo, I got there faster than I expected. Then she sat on a shelf for ten years. This year I opened her up and found a strange situation: her brain was dead and her body was fine.
Mila died this year, and it hit me hard. So in a way this project is still for her: Charlotte was built to watch over a pup, and some part of me needed to finish what we started. Bringing Charlotte back is how I'm saying goodbye. I don't have a cleaner word for it than that: it's for her.
The brain is dead, the body isn't
The 2015 brain was a closed world. A microphone fed WinRT speech recognition, which matched against a fixed command list; LUIS - Microsoft's cloud intent classifier, reached at a URL that no longer exists - turned what it heard into one of eleven intents; a switch statement called static movement methods. State of the art for a hobby robot, and every plank of it has since rotted: LUIS was retired in 2025, Windows 10 IoT Core has no current Pi release, and the toolchain won't build anymore.
The body tells the opposite story. The servo HATs are still manufactured. The 40-pin header they plug into has been stable since 2014, so it spans the Pi 2 through the Pi 5. The gait code - the hard-won knowledge of which legs lift when - is still correct. What died was dependence on dead platforms. What survived was knowledge about this robot.
Ten years did to Charlotte the opposite of what they did to me: my brain grew while hers died, and my body got older while hers waited, unchanged.
Keep, refit, replace
That distinction became the test for every piece. Keep the things that encode knowledge about Charlotte: the channel mapping, the tripod gait, the eleven intents, the rule that she never hears herself speak. Refit the things with the right shape and wrong fastenings: the movement code becomes a testable class behind an interface, the hardcoded servo numbers become a calibration table. Replace the things that were only ever platform: the board, the OS, the runtime, the speech stack.
The seam
The 2015 code let speech call the movement methods directly, which is why a dead brain nearly took the body with it. So the upgrade's real deliverable isn't new hardware - it's a boundary. The brain emits typed commands and never touches the servo bus. A deterministic spinal cord next to the body validates, rate-limits and cancels those commands, enforces joint limits, watches the battery, and keeps working when the network doesn't.
There's a safety argument hiding in there. The 2015 brain could only ever say one of eleven things, so it was safe by construction. A modern brain - an LLM, say - can say anything, which means safety has to move from the vocabulary into the architecture. The brain proposes; the spinal cord disposes.
Walking again in stages
The path is staged so she's never a pile of parts: prove one leg moves, insert the seam, sort the power, walk untethered under a gamepad with no AI at all, then give her ears, then her brain. Walking on battery under a gamepad is the emotional checkpoint - after that, everything is brain work, and brain work is now cheap because of the seam.
The technical plan, diagram included, lives on the Charlotte project page.
Is it still Charlotte?
Every plank gets replaced: board, OS, runtime, speech, intents, controller, power. By the usual Ship of Theseus argument, nothing original remains except the frame - which is where WandaVision of all things has the answer. The finale stages this exact argument as a fight between two Visions: one with the original body and no memories, one with the memories in rebuilt parts. It ends with the Ship of Theseus invoked out loud, and the resolution is that a self survives the swap of its parts.
So that's my working answer: Charlotte's identity lives in her contract, not her substrate. The eighteen-joint layout, the gait semantics, the calibration, the eleven intents and the name she answers to - those all carry forward unchanged. If the contract survives, she's Charlotte. And because the contract now lives in portable, testable pieces, the next replacement isn't an existential event.
Mila is part of that contract too. She was the reason for the first plank, and she will be in everyone I replace.