Desk lamp robot gets feelings, air sensing and a swappable agent

Oct 09, 2026 Last reply: 1 day ago 2 Replies
Jump to replies (2)

Most desk robots feel like terminals: they answer, but they never feel present. The maker has spent two months pushing a robotic desk lamp in the opposite direction, and the result is a companion that stays warm and curious in character, never slipping into dry tech talk. The first version only had a camera and a mic to go on, and its voice came out flat. Both problems get addressed in this update.



The hardware is a 5-DOF articulated arm with a ring light head, driven by STS3215 bus servos fed from a single 12V cable. Motion is the detail that stands out to me: it reads real Present_Position and Present_Load straight off the servo bus, uses those readings for joint-limit and lean-back clamping plus contact and overload stops, then layers critically damped smoothing on top with smooth_damp, a deadband and resampled motion clips. In my view that separation between commanded path and easing is a smart way to get fluid movement.



The new senses come from a Sensirion SEN63C module wired over I2C, reporting particulate levels across several size bands along with temperature, humidity and genuine CO2 readings. The agent queries abstract keys like pm, co2 and temperature, so the sensor hardware can be swapped later, which seems like a wise bit of future-proofing. Events fire only when metrics drift over time rather than on every raw sample, and the HAL caches the latest snapshot in RAM while a background worker polls. The payoff is real: Lamp noticed a room going stuffy after a window was closed during cooking downstairs.



The brain is now modular too, migrated from Hermes to OpenClaw with one setting change, keeping the same voice, quirks and long-term memory. The personality lives in a markdown file parsed every turn, and a USB DAC kills ground noise. One open question: the hardware stays as is for a couple of months while production and shipping take priority, so a v2 is a wait-and-see.


That motion layer sounds like the part I'd struggle with. Is the servo feedback being read for the easing itself, or purely for safety clamping and overload stops? I keep wondering where the line sits between the smoothing layer and the raw bus readings, since getting that balance wrong usually makes arms look twitchy or sluggish.

From what the maker described, motion starts from real Present_Position and Present_Load read off the servo bus, and those readings feed joint-limit and lean-back clamping plus contact and overload stops. The easing is a separate smoothing layer sitting on top of the commanded path, built with smooth_damp, a deadband and resampled motion clips. So the feedback looks like it handles safety, while the smoothing handles how the movement feels.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required