IRobot Roomba

The IRobot Roomba module provides an interface to the IRobot Roomba robotic vacuum platform. The module provides an interface to most of the Roomba's capabilities and allows you to control the robot and respond to sensor values on the platform.

Note that for a truly mobile platform you will need a bluetooth or other serial wireless connectivity to the Roomba from a PC platform. The serial connector from the PC to the Roomba requires a special cord and will not work with a regular serial cable. You will either need to create a cord yourself or purchase the IRobot Create Serial cable which has been tested and works with the Roomba 530. Other version have not been tested so check with IRobot for cable compatibility.



1. Robot Model - Select the appropriate robot model. This is required as the communication speed and protocols are slightly different for the 400 versus 500 Roomba series.

2. COM Port - Select the appropriate communications serial port. This will normally be COM1-4 if you are using the Create serial cable. If you are using a USB to serial converter this will normally be above COM4.

3. Baud Rate - By default the 500 series is 115K and the 400 series is 57K.

4. Open Interface Mode - Select which mode you want to control the robot using. The OI mode allows you to place the robot in a safer mode that will not respond to commands that could potentially cause the robot to move uncontrollably. To ensure that the robot provides some rudimentary safety reactions leave the OI Mode to Safe. Once set, your Roomba Clean (green light) should disappear, i.e. when in program mode no LED's are on. This is a good chance to test the communication with the Roomba by switching on one or more LED's to check that communication has been established.

5. LEDs - to quickly indicate status you can use the provided LED's that are already on the Roomba. You can click on the checkbox or use the scroll bars to switch off/on the Roomba's power, advance and play LEDs.

6. Motors - You can move the motors individually by moving the scroll bars or by changing the values in the editable text box. To automate the movement of the robot you can select or type in variables that contain values that will be sent to the robot as motor intensity values. Keep in mind the STOP button at the bottom of the interface to quickly stop an out of control Roomba! See Variable Control for more information on how to programatically move the robot.

7. Cleaning - similar to the motor interfaces you can control the cleaning motors of the Roomba by specifying non-zero values in the provided text boxes. Using the dropdown next to the values you can automate the control of the cleaning motors by setting the appropriate variables using other modules in RoboRealm.

8. Commands - to command Roomba to perform certain cleaning tasks or to power off you can manually click on the Command Buttons to switch in to docking mode, max cleaning, etc. By using the variable dropdown the command will execute when the provided variable has a non-zero value.

9. Sensors - The Roomba has many sensors (around 58 for 500 series) that indicate various detected external and internal conditions of the robot. To react to the sensors and use those values within the RoboRealm pipeline select the sensor name and type or select in a variable that will contain the value. You can see the current value in the "Current Value" text area. This data will be placed into the selected variable for use in other modules such as the VBScript module. To test this select the Bump Left or Right sensor from the long Sensor Name dropdown. Manually press the left or right bump sensor on the robot. The Current Value should change to 1 to indicate that it detected your press.

Check with your Roomba Open Interface documentation for all the sensor meanings, descriptions and range values.

10. Play Song - you can quickly select a song and press play to hear the Roomba play a quick melody. To automate the playback of songs select a variable that will contain the song name as seen in the dropdown. Note that after the song begins playing the variable is cleared to avoid repeating the song. To add your own songs you can edit the "Music.rtttl" file in the RoboRealm folder. This file contains RTTTL formatted melodies which are converted and sent to the Roomba for playback. Note that the RTTTL format is the Nokia Cell Phone ringtone format and can be found for free in many sites.

Trouble Tips

  • The serial cable for the Roomba is normally located below the top face plate. You will have to pry this faceplate off (no screws need be loosened) in order to plug your serial cable into the Roomba.
  • If the robot stops responding or does not respond try re-selecting or changing the OI mode. This can help to reset communication with the robot and regain control.
  • The LEDs will be off when in program mode. Be sure to switch off the Roomba correctly by pressing the Power button after you are done experimenting otherwise the robot will remain on and run out of battery!
  • Be sure that all hardware parts are functioning correctly before programming. If the dust collector is not correctly placed in the robot the cleaning motors may not activate.
  • If all else fails try resetting the robot by simultaneously holding down the Spot and Dock buttons for 10 seconds. Then try re-selecting the OI mode.

For more information

IRobot Roomba Website

 New Post 

IRobot_Roomba Related Forum PostsLast postPostsViews
Stay out line
Hi guys, has anyone sucessfully completed the stay out line as I'm having wicked problems trying to get the module to work. The...
5 years 7 1416
Anyone using Roomba & the Kinect????
IS anyone using Roomba and the kinect, maybe specifically the 4XXX. ? Just curious....
6 years 3 1408
Trying to get Roomba to work with RR
I have placed control and then Roomba Next I put Navigation Mode But , the roomba jus...
6 years 4 1264
Roomba Control
Has anyone else had any luck with getting the seek dock function to work with a Discovery 400 series?...
6 years 14 2841
Hello, i have roborealm 2.37.3 and roomba 535 US model , and i control roomba with roborealm "irobot roomba controler" and it\...
6 years 5 2240
Roomba distance
Hello, there is some variable like "distance" ,or "request velocity" in the roomba module, can you explain how to use it ple...
6 years 2 2068
Roomba Discovery Sensors
Hello, I'm using this with my Roomba. The Controls work fine, however the sensors are not correctl...
6 years 11 2882
about using the mcu communicator
looking to use the communicator for a atmel AT91SAM9XE128-QU its the one on NEATO XV -11 robot to control on-board...
6 years 6 3116