Roomba Internals : Nosce Your Bot : 2003-01-10 by Jake Luck & John Ioannidis
We reinstalled the battery and flipped its power switch to the ON position. Hot wiring pin #9 and #10, same as pushing the "L" button on the user interface engaged the robot in cleaning mode. We quickly subdued the robot on the already crowed desk.
It is very useful to leave the speaker cable connected. The robot indicates its state transition with a unique series of beeps.
The robot pauses from cleaning mode when it is lifted off the desk. This transition is actuated by the extension of the 3 wheels at the bottom. After manually pressed in all three wheels. We were able to resume the cleaning mode by hot wiring again. Releasing any one of the three wheels pauses the cleaning.
However, this only works when the robot is on the desk or on the floor. We were not able to start or resume the cleaning mode with the robot upside down.
At first we suspected the existance of a mercury type sensor that can detect if the robot is upside down. However, it exhibited the same behavior when the robot held in mid air right side up. Upon further experimentation, we discovered that the stopping mechanism is also controlled by the 4 banks of IR sensors and emittors located on the underside of the front bumper. (Those IR sensors are also used to prevent the robot from falling down staircases.)
While we can not see IR with our naked eyes, the camera picked it up nicely.
We covered the 4 IR banks with black electrical tape. The robot can now be started in any orientation as long as the three wheels are pushed in.
It appears that if the robot was started upside down, it was unable to resume operation from a paused state. In order to get it started again, one needs to powercycle the device.