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
   33   34   35   36   37   38   39   40   41   42   43