Introduction: OLPC Telepresence

Picture of OLPC Telepresence

Updates! This is an ongoing project. I will be updating this instructable, but my blog is updated more frequently.

One Laptop per Child (OLPC) is a new, non-profit association dedicated to research to develop a $100 laptop, a technology that could revolutionize how we educate the world's children.

This instructable shows how to couple an OLPC with an iRobot Create to create a telepresence robot. Using a simple web interface, users can drive the Create, monitor its sensor readings, and explore the world across the internet through the attached OLPC's webcam and microphone.

Optional materials:
Optional tools:
  • Soldering iron
  • Volt meter
  • Wire cutters
  • Wire strippers
  • Hair dryer (if using heat shrink)

Step 1: Connect the USB-to-serial Adapter and the Create Serial Adapter

Picture of Connect the USB-to-serial Adapter and the Create Serial Adapter

Connect the USB-to-serial adapter to the Create's serial adapter.

Step 2: Optional: Power the OLPC From the Create

Picture of Optional: Power the OLPC From the Create

This step allows both the OLPC and the Create to charge together.

First, prepare the DB25 connector.

1. Take a female Kyosho connector and strip about 0.25 inches of insulation from the tips of both wires.
2. Twist and tin the strands.
3. Cut two small pieces of heat shrink and slide one on to each wire.
4. Solder the red cable to pin 11 of the DB25 connector.
3. Solder the black cable to pin 25 of the DB25 connector.
4. Slide the heat shrink down to cover the pins and use the hair dryer to shrink it.

Next, prepare the OLPC power connector.

1. Cut the OLPC power cable in half with wire cutters. Be sure you can remember the orientation of the two cables (positive and negative).
2. Strip about 0.25 inches of insulation from both cut ends.
3. Separate the two cables on both ends approximately 1 inch down the cable.
4. To determine which wire is the ground, use a volt meter set to check continuity or measure resistence. Place one probe on the outside of the barrel plug and place the other on one wire. If the meter indicates resistance or continuity, you have selected the ground wire.
5. Strip about 0.25 inches of insulation from a male Kyosho adapter.
6. Cut two short pieces of heat shrink and slide one over each cable of the Kyosho adapter.
7. Solder the black Kyosho adpater wire to the ground wire of the OLPC's barrel plug.
8. Solder the red Kyosho adapter wire to the positive wire of the OLPC's barrel plug.
9. Slide the heat shrink over your solder joints and use the hair dryer to shrink it.

Finally, solder and heat shrink another female Kyosho adapter to the other half of the power adapter.

Step 3: Attach the OLPC and Cables

Picture of Attach the OLPC and Cables

The OLPC fits nicely on top of the Create. Use stick on velcro or duct tape to attach the OLPC to the Create so that it won't slide off during operation.

Attach all cables to the create and neatly wrap them up in the cargo bay. Leave a little slack on the ends of the serial, power, and USB cables to feed through the handle of the OLPC. Then stick the OLPC on top of the Create.

Open the OLPC lid and twist it so it's facing forward. You can now plug in the OLPC power cable and the USB-to-serial adapter USB plug.

Step 4: Install Telepresence Software

Picture of Install Telepresence Software
The first step is to download and install the required software.

  • PyRobot is a Python library for controlling iRobot's Roomba or Create. It was developed for this instructable and includes modules for accessing the OLPC's webcam and microphone and for serving a web interface to control the Create over the internet.
  • PySerial
  • MochiKit
  • simplejson

All of these dependencies are wrapped up with releases. To install the current PyRobot release, either SSH in to the OLPC or open the developer console.

root@olpc$ wget$ tar zxvf pyrobot-alpha1.tgz

If you'd like to work from the development version, you will have to install the required dependencies yourself.

The picture below is a screenshot of the web interface.

Step 5: Start the Web Server

Picture of Start the Web Server
To start the webserver, either SSH in to the OLPC or open the developer console. Then run in the pyrobot directory.

root@olpc$ cd pyrobotroot@olpc$ python host:port

'host:port' should be the IP address of the OLPC and the port you would like to run the web server on. Root permissions are required to access the serial port. To view the interface and control the Create, point your web browser to http://host:port.


Timmers (author)2013-06-17

Have you seen this, pretty cool creation.

Jr Hacking kid (author)2008-02-03

where can i get an olpc for my own

You can get one at

What you do is you buy one for $100 and a school or child that can not afford one will receive a laptop and you will receive one as well

that ended Dec. 31

ghostis (author)Jr Hacking kid2008-02-22

Ebay is your best bet. Some G1G1 participants are selling theirs. The G1G1 program ended on 12/31/2007.

wolf555hound (author)2009-02-01

So you can use this laptop as a Webcam? Could it work somehow with Pc's for like a wireless one? i got mine a while ago, and I just started messing with it, and i've been interested with the webcam.

Ora (author)2007-09-09

AHHHHH! Where did you get that? I've been trying for about a year to get one! I would appreciate it if you would point me in the direction where you purchased yours.

Ora (author)Ora2007-09-09

Oh yes, great instructable. Now parents of children unable to go to certain events/places won't have to shell out thousands of dollars to have their less capable children be a part of society.

rrrmanion (author)Ora2008-08-11

i robot the manufacturers of the create already make a robot able to do the same its called the connect R sort of thing heres a link :

damonkohler (author)Ora2007-09-09

Sorry, they handed some out at work for us to play with. I don't know how to purchase one.

Fenwick (author)damonkohler2007-09-09

May I ask where you work?

damonkohler (author)Fenwick2007-09-09

I'm a Googler.

rrrmanion (author)2008-08-11

firstly i think they are still doing the give one get one or may have resume doing so(a us address is required, secondly if it works with Linux surely a mini laptop such as the acer one, the Asus EEE-PC or the MSI wind etc... would all be sufficient?

cotton (author)2008-05-04

how do you get tyhe laptop i want one to experimaent and dose it run windows if so what coppy

AzurusNova (author)2008-02-08

Where can I aquire one of these computers to work on myself?

Xellers (author)AzurusNova2008-03-05

Try e-bay.

MindTorm (author)2007-11-15

Will this only work with the OLPC operating system or can it be adapted to other linux distros? I hate to even say it, but possibly ubuntu? *gasp* yeah I know I said it..I have a roomba and an old ibm T23 running ubuntu and was wondering if I could use the software to cobble something together with existing hardware, or if it was specific to the hardware setup you have here...

im3733 (author)MindTorm2008-01-10

The OLPC runs on Ubuntu. believe it or not.

ghostis (author)im37332008-02-22

As shipped, the OLPC XO-1 runs a customized version of Fedora.

omnibot (author)MindTorm2007-11-22

What's so bad about Ubuntu? With the 7.10 it's ready to install hasslefree, ie I no longer get calls from friends asking what to do with windows bluescreen. Nice instructable to .. hope the olpc make it to europe soon.

damonkohler (author)MindTorm2007-11-15

There's some code that's specific to the OLPC. But, for the most-part, it's just Linux :) You could certainly get it running on Ubuntu.

leevonk (author)2008-02-10

I've been trying to figure out how to control my robots via the web for a while, could you try to make a tutorial on the installation and use of the control software for robots in general (not necessarily the OLPC connected to an irobot create). This would be awesome, thanks for the help

makechan (author)2008-02-08

Where is your God now?

tgokeefe (author)2007-11-14

Will this work with a standard Roomba?

damonkohler (author)tgokeefe2007-11-14

PyRobot supports both the Roomba and the Create. Though, most of the development is focused on the Create. So yes and no. Yes it can be done. No it won't work out of the box. The first version of this was on a Roomba actually.

evanwehrer (author)2007-11-08

You can get these in the developer program at

whatup.dub (author)2007-09-09

Wow, It'd be great to get to hack up an OLPC. Since they "mesh network" could you swarm them? Maybe send your iRobot OLPC's into mine fields and the such? Maybe "chemically questionable" areas with sensors and gps to map out hazards? I think it would be cool to send a few into a factory to check the extent of a hazardous spill instead of risking human lives, etc., etc. "Is that a radioactive ape!? Bring up the web interface, deploy banana!!"

try as you might, you will never be able to drop enough bananas to fill its hunger...

damonkohler (author)whatup.dub2007-09-09

Hah. Awesome. I'm sure there could be some swarming applications too.

Punkguyta (author)2007-09-09

This looks pretty sweet, great project I will say, any future plans as far as more add ons? I bet there are a few more things to be added on.

damonkohler (author)Punkguyta2007-09-09

Thanks, and sure, there are loads of things to be done. PyRobot (the underlying Python library) is not nearly complete. I think the first thing I'll be trying to improve is audio and video streaming. Right now it works, but it's a little clumsy.

Punkguyta (author)damonkohler2007-09-10

Could you put compression on the video stream? That might help a bit as I'm guessing those OLPC's aren't all that fast eh?

dduke11 (author)2007-09-09

Awesome instructable man! For the status page you should have a schematic of the roomba and have the various sensors light up when they're activated.

damonkohler (author)dduke112007-09-09

Good idea!

About This Instructable




More by damonkohler:How to Repair a Computer FanOLPC Telepresence
Add instructable to: