Robot App Store Developer Program

robots-app-store-developer-program

Knowledge Base

How to Program Roomba - Introduction

  By Anna Sandler

iRobot has published an API for Rooma - the Roomba SCI (Serial Command Interface). The idea is very simple: you need to transfer byte array to Roomba’s serial port that is located here. (Video)
Each byte holds a single command or a command-group. We will go deeper into that later on.

iRobot Create is the only model that allows these commands to be saved on the robot to be executed for later use.
Roomba 4XX, 5XX, 7XX and a Dirt dog need an external device (computer, smart phone or another robot) that will send the commands to the robot for immediate execution.

All Roomba models (Create, Roomba 4XX, 5XX, 7XX and Dirt dog) support Roomba SCI.

External Resources

  • You can download the original Roomba SCI from here.
    Roomba 5XX and Roomba 7XX can support additional commands that will be covered in later chapters.
  • You can download the Roomba 500 Open Interface API from here.
  • iRobot Create is the best choice for developers (although Create doesn't have the cleaning functionality).
    You can download the Create Open Interface API from here.


What are Roomba commands?

iRobot developed the SCI (Serial Command Interface) that enables a bidirectional communication interface.
A single command, represented by a single byte, can be for example:
Power Roomba off (the command byte that is sent to serial port is [133]);
Start cleaning (command byte [135]) and several other commands that will be discussed in the next chapters.

Most of the commands require more than one byte, for example,
driving Roomba forward, requires in addition to the driving command (command byte [137]), the velocity (command bytes [0] [100]) and the radius (command bytes [128][0] that represent a forward direction).

Prerequisites

Please make sure that your Roomba is 400 series or higher, that was manufactured after October 24th, 2005, otherwise the API won't work. (If you happen to have an older version, please buy iRobot’s OSMO that basically upgrade the firmware of your robot)

Transferring bytes to and from Roomba can be done through a Bluetooth device (recommended)- like RooTooth which costs ~100$. or through "usb to serial" cable like this which costs ~30$.
RooTooth
RooTooth, a bluetooth device for Roomba
USB To Serial Port Cable
USB to serial port cable


If your goal is to develop a game for a smartphone that controls Roomba, you would probably go for the Bluetooth option.

To get started – that’s all you need:
  • A Roomba
  • Serial port connector (either Bluetooth or cable)
  • A computer.

What's next?

In order to move forward and learn how to program Roomba, your environment should be configured to communicate with it. We strongly recommend using a RealTerm terminal even if you are a .NET or a Java developer. At least during the first steps. As we move on with the programming, you can send commands to Roomba using your code (we will go deeper into that later).

Let's move forward and learn how to connect the Roomba to the computer.








Related Robot-Apps™

Comments