Robotic desk lamp companion with position feedback and fast replies

Oct 29, 2026 Last reply: 10 hours ago 2 Replies
Jump to replies (2)

The starting idea here is charming: a lamp built as a companion for the home office, one that can even pose as a fake lamp running on a laptop. What began as a playful concept has turned into a serious piece of robotics work, and the pace of development in October is remarkable. The main branch logged 4,092 commits that month, blowing past the previous record of 1,615 set back in April, all since the first commit landed on 24 March.



The hardware looks tidy and well thought out. An articulated arm in beige segmented plastic moves on motorized joints, sitting on a square base with vents. Up top, the head pairs a conical lampshade with an LED ring light around a central dark camera aperture. STS3215 servos provide position feedback, and the Fusion 360 file for the current body design is available, which anyone considering a similar build should appreciate.



The behavior is where this shines. The lamp ties every line of dialogue to the face and voice that produced it, and keeps each person's memory separate. Position feedback lets it tell a friendly push apart from a fault, and after being pushed it stops what it is doing and holds still for 30 seconds. Treat a joint pulled away from its goal as a hand, and the intervention detection practically writes itself. If an arm strains three times, the lamp sits down and rests for 30 minutes. Audio latency is impressive too: the first part of an answer starts coming out within 400 ms, and the forgetting function dropped from 9 seconds to under 400 ms as well.



There is still room to grow. Mood reading sits at 39% on the internal tracker, and recognizing two people in the same room is built but switched off by default. With Python and JavaScript SDKs, lampOS at 0.0.4 and 0.0.5, and a documented path in docs/develop.md, the project seems set up for others to dig in.


Using STS3215 servos with position feedback is the choice I keep coming back to. It lets the lamp separate a genuine fault from someone nudging the arm, which seems far more robust than guessing from current draw alone. The trade-off is that the 30 second freeze after a push might feel unresponsive to an impatient user, but that pause appears to be the price of not mistaking a poke for a breakdown.

Since naming two people in the same room is already built and just off by default, I would suggest turning that on as an opt-in setting in a future lampOS release. Combined with the per-person memory separation, it would let the lamp hold separate conversations in a shared space. A simple toggle during the setup flow that the new Orange Pi image boots into could keep it easy to skip for anyone who prefers the current single-person behavior.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required