iRobot Create
The iRobot Create is a Roomba designed for hacking. Though lacking a vacuum, serial ports and a cargo bay instead allow for easy modification and control from a computer. Simple opcode instructions are translated into commands for movement, playing audio, or returning sensor data.


Getting Started
Common Pitfalls
Simple Sample

Getting Started

To control the Create, you'll need to establish a serial connection with an opcode controller. This can be a computer, a bluetooth device, or a microcontroller platform like the Arduino. You'll then be able to programmatically send it opcodes, which are detailed in the iRobot Open Interface. A good place to start may be with the sample code in the "Simple Sample" section below.

Connecting to a Computer
While you can connect via the included serial tether, the Create is then limited in mobility to the length of the wire. The better solution is to use the Bluetooth Access Module, which plugs into the Create's cargo bay port and creates a virtual serial connection over Bluetooth. You can then open a serial connection with the programming language or application of your choice and send commands to the Create. pyrobot may be the easiest available library for this (as of 2011). It exposes the "manual" serial interface as well, so it is not too hard to hack in additional features (such as the music playing in the Simple Sample below).

We recommend that you take a look at the Roomba Kart sample project, which implements the basics of Create control through Python, and the more advanced telepresence Roomba.

Connecting to the Arduino
To connect the Arduino to the Create, you will need to either use the standard Arduino serial or the SoftwareSerial/NewSoftSerial libraries to create the serial connection. More details on this can be found in the documentation of the arduino-roomba library for interfacing the Rooma and Arduino.

Common Pitfalls

The Create's cliff sensors will go off on potholes or small holes in the floor that would otherwise not impair the robot's motion. This can be avoided by setting the Create to Full Mode.
When using the BAM, unplug it while the Create is charging or when it is not in use. The BAM draws power regardless of whether the Create is on or off, and will slow down charging or deplete the battery.
When the Create is in full or safe mode, it turns off all of its LEDs, looks exactly as though it was off. Make sure to turn off the Create when not in use instead of leaving it in full or safe mode, as it will draw power and deplete the battery.


iRobot Create » | Bluetooth Access Module » | Open Interface »

The open-sourced code behind an instructable using a "One Laptop Per Child" to remotely control a Create. Includes drop-in Python library. Requires pySerial.
Relevant file »

C++ library for controlling the Create through the Arduino.

Simple Sample

An overall Demo of the iRobot platform is described in detail here. This demo (tested on Ubuntu but should work with any Linux running with Bluetooth support and root access) demonstrates the basic functionality of the iRobot, particularly its movement. Basically, this makes the iRobot into a remote control car you can control with your keyboard. The zip below contains a readme that explains how to use the demo, but it is a pretty simple process (establish connection via bluetooth to the iRobot, run python driver script). This demo requires the Bluetooth dongle for the iRobot, Bluetooth capable Linux machine (with root access), python, and Tkinter library for python.


Once the demo is running:
  • space: immediate stop.
  • arrow keys or wsad: drives the robot (note that up and down don't move it up and down, they increase/decrease the speed it is going). if you use wsad, the robot will make wide turns, while the arrow keys make tight turns.
  • q: plays a song
  • e: prints out the current sensor data