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.
   40   41   42   43   44   45   46   47   48   49   50