Lamp, two months later: it talks with more feeling, it can read the room, and its brain is swappable
Two months ago, I shared the initial Lamp build here: the 5-DOF arm running on STS3215 bus servos, a single 12V cable, the USB DAC to kill ground noise, and an early pass at Autonomous OS.
After 2 months, lots of updates have been made. And Lamp is more than just a fun desk decoration now
1. It actually sounds like it has a mood
Lamp used to run on that familiar, flat-line TTS. Recently, we switched to ElevenLabs v4 Turbo, and it changed the whole vibe. Pitch and cadence shift naturally, pauses land where they should, and a joke lands like a joke instead of a status report.
We also added an on-device emotion model (emotion2vec) listening to user speech, with the head's ring light subtly reflecting how Lamp is feeling.
The fun part: the personality is just a simple markdown file the agent parses on every turn. Out of the box, it behaves like a warm, curious desk companion that never breaks character with tech jargon like "servos" or "API calls." Tweak a few bullet points in that file, and you get an entirely different roommate. You edit the soul, not the code.
2. It can read the room (literally)
In the first build, the only inputs were the camera and the mic. I have since wired up a Sensirion SEN63C over the I2C bus, which is a single compact module reporting particulate matter (PM1, PM2.5, PM4, PM10), temperature, humidity, and true CO2.
The HAL caches the latest snapshot in RAM while an OS worker polls it in the background. Lamp only fires an event when environmental metrics drift over time, rather than spamming context on every raw sample (available read-only via Web and MQTT).
The practical payoff: I closed my window while someone was cooking downstairs, and Lamp chimed in that the room was getting stuffy before I even noticed. Because the agent layer only queries abstract keys (pm, co2, temperature, etc...), it does not care what sensor hardware you solder on down the line.
3. The brain is a hot-swappable slot
Early on, Lamp was locked into a single agent runtime. Autonomous OS now treats the agent as a modular backend you define in config, completely decoupled from personality and long-term memory.
I recently migrated Lamp from Hermes to OpenClaw with a single setting change. It kept the exact same voice, the same quirks, and everything it had already learned about me. The agent handles the reasoning; the soul and the memory survive the brain transplant.