Eleventh incarnation of libbybot, a cheapo presence robot, currently living in an IKEA lamp
JavaScript HTML C++ Python Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
arduino Typos Aug 19, 2018
doc Tidy README Aug 19, 2018
pi doesn't have to be sudo Jul 31, 2018
server Fix dead link Jul 30, 2018
README.md Add time requirement Aug 19, 2018



Eleventh incarnation of libbybot, a cheapo, remotely-posable presence robot using webRTC and a Raspberry Pi, currently living in an IKEA lamp

Contains full instructions and code.

Libbybot 8

The idea is that you run a headless browser on a Raspberry Pi in the lamp, and connect to it remotely via a laptop or phone using a browser (Chrome or Firefox).

You need to do the server part of this first, then set up the arduino and pi. Construction instructions are in doc

What you'll need:

  • Time: this takes a few hours at least even if you know what you are doing. It's not a quick project.
  • Raspberry Pi 3 (other versions don't have the oomph to run chromium and do video, though they can do audio, if you don't want to "see").
  • an official Raspberry pi power cable - we're using a lot of amps! else you may get strange outages.
  • IKEA EXPRESSIVO lamp (discontinued, but most people have one at home, ask around). Or this (thanks Barnoid!) looks very similar.
  • long (45cm) Raspberry Pi camera cable
  • Raspberry Pi camera
  • a Sennheiser USB speaker / mic
  • 2 x 9g servos, small as you can get them (e.g.). The blue type are the ones you need - the black ones are fractionally too long.
  • a tiny breadboard
  • 6 x MM jumper cables
  • 3 x MF jumper cables
  • Arduino nano (e.g. a clone)
  • an old CD or a custom laser cut shape - and 6 x 3mm diameter ball barings
  • little rubber feet (e.g.)
  • 1 thin small cable tie
  • two pieces of 2cm x 1cm x 3mm (or 1 x 5-6mm) plastic or something equally tough
  • two M2 plastic bolts


  • Something to cut holes in the lamp's plastic like a dremel (you can just about manage with a hacksaw and drill, but it's messy) plus suitable eye protection
  • a hacksaw
  • a phillip's head screwdriver
  • a gluegun
  • a vice
  • a pen
  • a tape measure

and, once you're up and running

  • a friendly helper in the remote place where you want to be, to plug the lamp in

The only really expensive thing is the speaker / mic. If you're going to use it seriously, this is the most important bit. I've tried a Jabra for this purpose but they are unreliable, I'm guessing they have heavier power requirements than the Sennheiser. The Sennheiser works really well - the best I've come across for this sort of thing.

Of course you don't have to use an IKEA ESPRESSIVO lamp. This project originally started off much more like a picture frame - you can see the pictures here - but it's hard to fit the speaker into some sort of sensible shape. My robot research has shown that showing my face to the participants of a teleconference is not necessary as long as I can hear, speak, see and move a little (in that order).

More on how to actually fit it into the lamp is in doc.