Page 38 - Hacking Roomba
P. 38
Interfacing Basics chapter
ll projects in this book utilize the Roomba Open Interface (ROI),
previously known as the Roomba Serial Command Interface (SCI).
AAlthough you’ll find many references to the SCI on the Internet,
know that the SCI is the same as the ROI; only the name has changed. All
third-generation Roomba models produced since 2004 are compatible with
the ROI. Roombas produced after October 2005 have ROI built-in, while
older third-generation Roombas will need the OSMO//hacker updater as
described in Chapter 1.
Originally, the ROI appears to have been a diagnostic port used by iRobot in this chapter
to test the Roomba robotic vacuum cleaner before shipment and as a way to
release firmware upgrades if bugs were ever discovered. The OSMO//hacker What’s possible
device that enables ROI for older Roombas is one of these firmware updaters. with ROI (and
The ROI protocol is fairly simple, but a few factors, such as variable com- what’s not)
mand length and reading sensors, complicate using it. Even so, the ROI is a
basic serial protocol similar to the type that is spoken between a computer ROI connector
and a modem. It is much simpler than Ethernet or Wi-Fi.
ROI protocol
The full ROI specification released by iRobot is located at http://irobot
.com/developers. The ROI specification is also available in Appendix C
and on this book’s web site at http://roombahacking.com/docs/. This Introducing the
chapter is an excellent guidebook to the official ROI specification. RoombaComm API
What Can Be Done with the ROI?
The ROI offers an almost complete view of the Roomba’s internals. It
abstracts certain functions, making them easier to use. Much of the low-
level hard work dealing with motors and sensors has been taken care of
inside the Roomba itself, so users of the ROI don’t have to deal with it.
However, some of these abstractions can also make it difficult to accomplish
certain types of hacks, as you will see at the end of this section.
Sensing
The Roomba contains many sensors to observe the real world and the ROI
allows access to all of them. They include:
Bump sensors (left, right)
Cliff sensors (left, right, left-front, right-front)
Wall sensor