Page 45 - Hacking Roomba
P. 45
26 Part I — Interfacing
Triggering this safety feature will stop all Roomba motors and send Roomba back to
passive mode. Another way back to passive mode is to send one of the SPOT, CLEAN, or
MAX virtual button commands. Sending the POWER virtual button command will put the
robot in passive mode and then put it to sleep.
One way to quickly stop Roomba if your code creates a Roomba gone haywire is to run in safe
mode and just lift the robot a little. This triggers the safety feature.
Full: If Roomba receives a FULL command while in safe mode, it will switch to this
mode. This mode is the same as safe mode except that the safety feature is turned off. To
get out of this mode, send the SAFE command. Sending one of the SPOT, CLEAN, or MAX
virtual button commands will put Roomba in the passive mode. Sending the POWER vir-
tual button command will put Roomba in passive mode and then put it to sleep.
SPOT/CLEAN/MAX
Power button,
DD line toggle START
on passive CONTROL safe
Safety
fault
POWER
sleep
SPOT/CLEAN/MAX
FULL
POWER
full
SAFE
POWER
FIGURE 2-4: Roomba ROI state diagram
The Roomba changes from one mode to the next depending on either ROI commands or
external events. In Figure 2-4, the ROI commands are listed in CAPITALS and the external
events are in italics.
Controlling the modes is discussed in the section “ROI Mode Commands” later in this chapter.
Allow at least 20 milliseconds between sending commands that change the ROI mode (CONTROL,
SAFE, FULL, and the virtual button commands SPOT, CLEAN, and MAX). Any ROI commands
issued in the 20 millisecond window will be ignored or only partially received.