Irobot Roomba 500
Trademark Global iRobot Roomba 500 Series Home Base Charging DockBe certain that your iRobot Roomba 500 Series is always charged and ready to go! When each cleaning cycle is complete, or when the battery is running low, Roomba will automatically locate the Home Base, dock and recharge its battery. Battery recharges in three hours. Includes Home Base and Fast Charger.
Details
Brand: Check Site
Part Numbers: 72-560CB, T--72-560CB
[ Report abuse or wrong photo | Share your Irobot Roomba 500 photo ]
Manual
Preview of first few manual pages (at low quality). Check before download. Click to enlarge.
Download
(English)Irobot Roomba 500 Vacuum Cleaner, size: 3.4 MB |
Irobot Roomba 500
Video review
iRobot Roomba 500 Series with On Board Scheduling
User reviews and opinions
No opinions have been provided. Be the first and add a new opinion/review.
Documents

iRobot Roomba Serial Command Interface (SCI) Specification
www.irobot.com
2005 iRobot Corporation. All rights reserved. iRobot and Roomba are registered trademarks of iRobot Corporation.
SCI Overview
Versions of iRobot Roomba Vacuuming Robot manufactured after October, 2005 contain an electronic and software interface that allows you to control or modify Roombas behavior and remotely monitor its sensors. This interface is called the iRobot Roomba Serial Command Interface or Roomba SCI. Roomba SCI is a serial protocol that allows users to control a Roomba through its external serial port (Mini-DIN connector). The SCI includes commands to control all of Roombas actuators (motors, LEDs, and speaker) and also to request sensor data from all of Roombas sensors. Using the SCI, users can add functionality to the normal Roomba behavior or they can create completely new operating instructions for Roomba.
Serial Port Settings
Baud: 57600 or 19200 (see below) Data bits: 8 Parity: None Stop bits: 1 Flow control: None By default, Roomba communicates at 57600 baud. If you are using a microcontroller that does not support 57600 baud, there are two ways to force Roomba to switch to 19200: Method 1: When manually powering on Roomba, hold down the power button. After 5 seconds, Roomba will start beeping. After 10 seconds, Roomba will play a tune of descending pitches. Roomba will now communicate at 19200 baud until the battery is removed and reinserted (or the battery voltage falls below the minimum required for processor operation) or the baud rate is explicitly changed via the SCI. Method 2: You can use the Device Detect to change Roombas baud rate. After you have awakened Roomba (using Device Detect or by some other method) wait 2 seconds and then pulse the Device Detect low three times. Each pulse should last between 50 and 500 milliseconds. Roomba will now communicate at 19200 baud until the battery is removed and reinserted (or the battery voltage falls below the minimum required for processor operation) or the baud rate is explicitly changed via the SCI. Here is a Python code fragment that illustrates this method (Device Detect is connected to the PCs RTS line via a level shifter): ser = serial.Serial(0, baudrate=19200, timeout=0.1)
Physical Connections
To use the SCI, a processor capable of generating serial commands such as a PC or a microcontroller must be connected to the external Mini-DIN connector on Roomba. The Mini-DIN connector provides two way serial communication at TTL Levels as well as a Device Detect input line that can be used to wake Roomba from sleep. The connector also provides an unregulated direct connection to Roombas battery which users can use to power their SCI applications. The connector is located in the rear right side of Roomba beneath a snap-away plastic guard. Roombas external serial port Mini-DIN connector pinout This diagram shows the pin-out of the top view of the female connector in Roomba. Note that pins 5, 6, and 7 are towards the outside circumference of Roomba.
ser.open() # wake up robot ser.setRTS (0) time.sleep (0.1) ser.setRTS (1) time.sleep (2) # pulse device-detect three times for i in range (3): ser.setRTS (0) time.sleep (0.25) ser.setRTS (1) time.sleep (0.25)
Name Vpwr Vpwr RXD TXD DD GND GND
Description Roomba battery + (unregulated) Roomba battery + (unregulated) 0 5V Serial input to Roomba 0 5V Serial output from Roomba Device Detect input (active low) used to wake up Roomba from sleep Roomba battery ground Roomba battery ground
The RXD, TXD, and Device Detect pins use 0 5V logic, so a level shifter such as a MAX232 chip will be needed to communicate with a Roomba from a PC, which uses rs232 levels.
SCI Modes
The Roomba SCI has four operating modes: off, passive, safe, and full. On a battery change or other loss of power, the SCI will be turned off. When it is off, the SCI will listen at the default baud bps for an SCI Start command. Once it receives the Start command, the SCI will be enabled in passive mode. In passive mode, users can do the following: equest and receive sensor data using the R Sensors command xecute virtual button pushes to start and stop cleaning E cycles (Power, Spot, Clean, and Max commands) efine a song (but not play one) D et force-seeking-dock mode S Users cannot control any of Roombas actuators when in passive mode, but Roomba will continue to behave normally, including performing cleaning cycles, charging, etc. When in passive mode, users can then send the Control command to put the robot into safe mode. In safe mode, the users have full control of the robot, except for the following safety-related conditions: etection of a cliff while moving forward (or moving backward D with a small turning radius) etection of wheel drop (on any wheel) D harger plugged in and powered C When one of the conditions listed above occurs, the robot stops all motors and reverts to passive mode. For complete control of the robot, users must send the Full command while in safe mode to put the SCI into full mode. Full mode shuts off the cliff and wheel-drop safety features. (The robot will still not run with a powered charger plugged in.) This mode gives users unrestricted control of the robots actuators. To put the SCI back into safe mode, users can send the Safe command. If no commands are sent to the SCI when it is in safe or full mode, Roomba will wait with all motors off and will not respond to button presses or other sensor input. To go back to passive mode from safe or full mode, users can send any one of the four virtual button commands (Power, Spot, Clean, or Max). These button commands are equivalent to the corresponding button press in normal Roomba behavior. For instance, the Spot command will start a spot cleaning cycle. Allow 20 milliseconds between sending commands that change the SCI mode.
Roomba SCI Commands
Listed below are the commands that users send to the SCI over to the serial port in order to control Roomba. Each command is specified by a one-byte opcode. Some commands must also be followed by data bytes. The meaning of the data bytes for each command are specified with the commands below. The serial byte sequence for each command is also shown with each separate byte enclosed in brackets. Roomba will not respond to any SCI commands when it is asleep. Users can wake up Roomba by setting the state of the Device Detect pin low for 500ms. The Device Detect line is on Roomba external Mini-DIN connector. Start Command opcode: 128 Number of data bytes: 0
Starts the SCI. The Start command must be sent before any other SCI commands. This command puts the SCI in passive mode. Serial sequence: [128] Baud Command opcode: 129 Number of data bytes: 1
Sets the baud rate in bits per second (bps) at which SCI commands and data are sent according to the baud code sent in the data byte. The default baud rate at power up is 57600 bps. (See Serial Port Settings, above.) Once the baud rate is changed, it will persist until Roomba is power cycled by removing the battery (or until the battery voltage falls below the minimum required for processor operation). You must wait 100ms after sending this command before sending additional commands at the new baud rate. The SCI must be in passive, safe, or full mode to accept this command. This command puts the SCI in passive mode. Serial sequence: [129] [Baud Code] Baud data byte 1: Baud Code (0 11)
Baud code Baud rate in bps 57600 115200
Control Command opcode: 130
Number of data bytes: 0
Enables user control of Roomba. This command must be sent after the start command and before any control commands are sent to the SCI. The SCI must be in passive mode to accept this command. This command puts the SCI in safe mode. Serial sequence: [130]
Command opcode: 131
This command puts the SCI in safe mode. The SCI must be in full mode to accept this command.
Note: In order to go from passive mode to safe mode, use the Control command.
Serial sequence: 137] [Velocity high byte] [Velocity low byte] [ [Radius high byte] [Radius low byte] Drive data bytes 1 and 2: Velocity (-mm/s) Drive data bytes 3 and 4: Radius (-mm) Special cases: traight = 32768 = hex 8000 S Turn in place clockwise = -1 Turn in place counter-clockwise = 1 Example: To drive in reverse at a velocity of -200 mm/s while turning at a radius of 500mm, you would send the serial byte sequence [137] [255] [56] [1] [244]. Velocity = -200 = hex FF38 = [hex FF] [hex 38] = [255] [56]
Serial sequence: [131] Full Command opcode: 132 Number of data bytes: 0
Enables unrestricted control of Roomba through the SCI and turns off the safety features. The SCI must be in safe mode to accept this command. This command puts the SCI in full mode. Serial sequence: [132] Power Command opcode: 133 Number of data bytes: 0
Puts Roomba to sleep, the same as a normal power button press. The Device Detect line must be held low for 500 ms to wake up Roomba from sleep. The SCI must be in safe or full mode to accept this command. This command puts the SCI in passive mode. Serial sequence: [133] Spot Command opcode: 134 Number of data bytes: 0
Radius = 500 = hex 01F4 = [hex 01] [hex F4] = [1] [244]
Motors Command opcode: 138
Number of data bytes: 1
Controls Roombas cleaning motors. The state of each motor is specified by one bit in the data byte. The SCI must be in safe or full mode to accept this command. This command does not change the mode. Serial sequence: [138] [Motor Bits] Motors data byte 1: Motor Bits (0 7) 0 = off, 1 = on
Starts a spot cleaning cycle, the same as a normal spot button press. The SCI must be in safe or full mode to accept this command. This command puts the SCI in passive mode. Serial sequence: [134] Clean Command opcode: 135 Number of data bytes: 0
Bit Motor
Starts a normal cleaning cycle, the same as a normal clean button press. The SCI must be in safe or full mode to accept this command. This command puts the SCI in passive mode. Serial sequence: [135] Max Command opcode: 136 Number of data bytes: 0
n/a n/a
Main Vacuum Side Brush Brush
Example: To turn on only the vacuum motor, send the serial byte sequence [138] [2].
Starts a maximum time cleaning cycle, the same as a normal max button press. The SCI must be in safe or full mode to accept this command. This command puts the SCI in passive mode. Serial sequence: [136] Drive Command opcode: 137 Number of data bytes: 4
Command opcode: 139
Number of data bytes: 3
Controls Roombas drive wheels. The command takes four data bytes, which are interpreted as two 16 bit signed values using twos-complement. The first two bytes specify the average velocity of the drive wheels in millimeters per second (mm/s), with the high byte sent first. The next two bytes specify the radius, in millimeters, at which Roomba should turn. The longer radii make Roomba drive straighter; shorter radii make it turn more. A Drive command with a positive velocity and a positive radius will make Roomba drive forward while turning toward the left. A negative radius will make it turn toward the right. Special cases for the radius make Roomba turn in place or drive straight, as specified below. The SCI must be in safe or full mode to accept this command. This command does change the mode.
Note: The robot system and its environment impose restrictions that may prevent the robot from accurately carrying out some drive commands. For example, it may not be possible to drive at full speed in an arc with a large radius of curvature.
Controls Roombas LEDs. The state of each of the spot, clean, max, and dirt detect LEDs is specified by one bit in the first data byte. The color of the status LED is specified by two bits in the first data byte. The power LED is specified by two data bytes, one for the color and one for the intensity. The SCI must be in safe or full mode to accept this command. This command does not change the mode. Serial sequence: [139] [Led Bits] [Power Color] [Power Intensity] Leds data byte 1: Led Bits (0 63) Dirt Detect uses a blue LED: 0 = off, 1 = on Spot, Clean, and Max use green LEDs: 0 = off, 1 = on Status uses a bicolor (red/green) LED: 00 = off, 01 = red, 10 = green, 11 = amber
Bit LED 7 n/a 6 n/a 3 Spot 2 Clean 1 Max 0 Dirt Detect
Status (2 bits)
Power uses a bicolor (red/green) LED whose intensity and color can be controlled with 8-bit resolution.
Leds data byte 2: Power Color (0 255) 0 = green, 255 = red. Intermediate values are intermediate colors. Leds data byte 3: Power Intensity (0 255) 0 = off, 255 = full intensity. Intermediate values are intermediate intensities. Example: To turn on the dirt detect and spot LEDs, make the status LED red, and to light the power LED green at half intensity, send the serial byte sequence [139] [25] [0] [128]
Note Number Table for Song Command (with Frequency in Hz)
Number Note G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G Frequency 49.0 51.0 55.0 58.3 61.7 65.4 69.3 73.4 77.8 82.4 87.3 92.5 98.0 103.8 110.0 116.5 123.5 130.8 138.6 146.8 155.6 164.8 174.6 185.0 196.0 207.7 220.0 233.1 246.9 261.6 277.2 293.7 311.1 329.6 349.2 370.0 392.0 415.3 440.0 466.2 493.9 523.3 554.4 587.3 622.3 659.3 698.5 740.0 784.0 Number Note G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G G# A A# B C C# D D# E F F# G Frequency 830.6 880.0 932.3 987.8 1046.5 1108.7 1174.7 1244.5 1318.5 1396.9 1480.0 1568.0 1661.2 1760.0 1864.7 1975.5 2093.0 2217.5 2349.3 2489.0 2637.0 2793.8 2960.0 3136.0 3322.4 3520.0 3729.3 3951.1 4186.0 4434.9 4698.6 4978.0 5274.0 5587.7 5919.9 6271.9 6644.9 7040.0 7458.6 7902.1 8372.0 8869.8 9397.3 9956.1 10548.1 11175.3 11839.8 12543.9
Command opcode: 140 Number of data bytes: 2N + 2, where N is the number of notes in the song
Specifies a song to the SCI to be played later. Each song is associated with a song number which the Play command uses to select the song to play. Users can specify up to 16 songs with up to 16 notes per song. Each note is specified by a note number using MIDI note definitions and a duration specified in fractions of a second. The number of data bytes varies depending on the length of the song specified. A one note song is specified by four data bytes. For each additional note, two data bytes must be added. The SCI must be in passive, safe, or full mode to accept this command. This command does not change the mode. Serial sequence: [140] [Song Number] [Song Length] [Note Number 1] [Note Duration 1] [Note Number 2] [Note Duration 2] etc. Song data byte 1: Song Number (0 15) Specifies the number of the song being specified. If you send a second Song command with the same song number, the old song will be overwritten. Song data byte 2: Song Length (1 16) Specifies the length of the song in terms of the number of notes. Song data bytes 3, 5, 7, etc.: Note Number (31 127) Specifies the pitch of the note to be played in terms of the MIDI note numbering scheme. The lowest note that Roomba can play is note number 31. See the note number table for specific notes. Any note number outside of the range of 31 to 127 will be interpreted as a rest note and no sound will be played during this note duration. Song data bytes 4, 6, 8, etc.: Note Duration (0 255) Specifies the duration of the note in increments of 1/64 of a second. Therefore, half-second long note will have a duration value of 32.
Command opcode: 141
Plays one of 16 songs, as specified by an earlier Song command. If the requested song has not been specified yet, the Play command does nothing. The SCI must be in safe or full mode to accept this command. This command does not change the mode. Serial sequence: [141] [Song Number] Play data byte 1: Song Number (0 15) Specifies the number of the song to be played. This must match the song number of a song previously specified by a Song command. Sensors Command opcode: 142 Number of data bytes: 1
Requests the SCI to send a packet of sensor data bytes. The user can select one of four different sensor packets. The sensor data packets are explained in more detail in the next section. The SCI must be in passive, safe, or full mode to accept this command. This command does not change the mode. Serial sequence: [142] [Packet Code] Sensors data byte 1: Packet Code (0 3) Specifies which of the four sensor data packets should be sent back by the SCI. A value of 0 specifies a packet with all of the sensor data. Values of 1 through 3 specify specific subsets of the sensor data. Force-Seeking-DockCommand opcode: 143 Number of data bytes: 0 Turns on force-seeking-dock mode, which causes the robot to immediately attempt to dock during its cleaning cycle if it encounters the docking beams from the Home Base. (Note, however, that if the robot was not active in a clean, spot or max cycle it will not attempt to execute the docking.) Normally the robot attempts to dock only if the cleaning cycle has completed or the battery is nearing depletion. This command can be sent anytime, but the mode will be cancelled if the robot turns off, begins charging, or is commanded into SCI safe or full modes. Serial sequence: [143]
Roomba SCI Sensor Packets
The robot will send back one of four different sensor data packets in response to a Sensor command, depending on the value of the packet code data byte. The data bytes are specified below in the order in which they will be sent. A packet code value of 0 sends all of the data bytes. A value of 1 through 3 sends a subset of the sensor data. Some of the sensor data values are 16 bit values. These values are sent as two bytes, high byte first. Sensor Packet Sizes
Packet code Packet Size 26 bytes 10 bytes 6 bytes 10 bytes
Cliff Front Right Packet subset: 1 Range: Data type: 1 byte, unsigned The state of the cliff sensor on the front right side of Roomba is sent as a 1 bit value (0 = no cliff, 1 = cliff) Cliff Right Packet subset: 1 Range: Data type: 1 byte, unsigned The state of the cliff sensor on the right side of Roomba is sent as a 1 bit value (0 = no cliff, 1 = cliff) Virtual Wall Packet subset: 1 Range: Data type: 1 byte, unsigned The state of the virtual wall detector is sent as a 1 bit value (0 = no virtual wall detected, 1 = virtual wall detected) Motor Overcurrents Packet subset: 1 Range: The state of the five motors overcurrent sensors are sent as individual bits (0 = no overcurrent, 1 = overcurrent).
Bit Motor 7 n/a 6 n/a 5 n/a 4 Drive Left 3 Drive Right 2 Main Brush 1 Vacuum 0 Side Brush
Bumps Wheeldrops Packet subset: 1 Range: 0 - 31 Data type: 1 byte, unsigned The state of the bump (0 = no bump, 1 = bump) and wheeldrop sensors (0 = wheel up, 1 = wheel dropped) are sent as individual bits.
Bit Sensor 7 n/a 6 n/a 5 n/a Wheeldrop Caster Left Right Bump Left Right 1
Note: Some robots do not report the three wheel drops separately. Instead, if any of the three wheels drops, all three wheel-drop bits will be set. You can tell which kind of robot you have by examining the serial number inside the battery compartment. Wheel drops are separate only if there is an E in the serial number.
Wall Packet subset: 1 Range: Data type: 1 byte, unsigned The state of the wall sensor is sent as a 1 bit value (0 = no wall, 1 = wall seen). Cliff Left Packet subset: 1 Range: Data type: 1 byte, unsigned The state of the cliff sensor on the left side of Roomba is sent as a 1 bit value (0 = no cliff, 1 = cliff). Cliff Front Left Packet subset: 1 Range: Data type: 1 byte, unsigned The state of the cliff sensor on the front left side of Roomba is sent as a 1 bit value (0 = no cliff, 1 = cliff).
Dirt Detector Left Packet subset: 1 Range: 0 - 255 Data type: 1 byte, unsigned The current dirt detection level of the left side dirt detector is sent as a one byte value. A value of 0 indicates no dirt is detected. Higher values indicate higher levels of dirt detected. Dirt Detector Right Packet subset: 1 Range: Data type: 1 byte, unsigned The current dirt detection level of the right side dirt detector is sent as a one byte value. A value of 0 indicates no dirt is detected. Higher values indicate higher levels of dirt detected.
Note: Some robots dont have a right dirt detector. You can tell by removing the brushes. The dirt detectors are metallic disks. For robots with no right dirt detector this byte is always 0.
Remote Control Command Packet subset: 2 Range: (with some values unused) Data type: 1 byte, unsigned The command number of the remote control command currently being received by Roomba. A value of 255 indicates that no remote control command is being received. See Roomba remote control documentation for a description of the command values. Buttons Packet subset: 2 Range: Data type: 1 byte, unsigned The state of the four Roomba buttons are sent as individual bits (0 = button not pressed, 1 = button pressed).
Bit Button 7 n/a 6 n/a 5 n/a 4 n/a 3 Power 2 Spot 1 Clean 0 Max
Charging State Packet subset: 3 Range: Data type: 1 byte, unsigned A code indicating the current charging state of Roomba.
Code Charging State Not Charging Charging Recovery Charging Trickle Charging Waiting Charging Error
Voltage Packet subset: 3 Range: Data type: 2 bytes, unsigned The voltage of Roombas battery in millivolts (mV). Current Packet subset: 3 Range: -Data type: 2 bytes, signed The current in milliamps (mA) flowing into or out of Roombas battery. Negative currents indicate current is flowing out of the battery, as during normal running. Positive currents indicate current is flowing into the battery, as during charging. Temperature Packet subset: 3 Range: -Data type: 1 byte, signed The temperature of Roombas battery in degrees Celsius. Charge Packet subset: 3 Range: Data type: 2 bytes, unsigned The current charge of Roombas battery in milliamp-hours (mAh). The charge value decreases as the battery is depleted during running and increases when the battery is charged. Capacity Packet subset: 3 Range: Data type: 2 bytes, unsigned The estimated charge capacity of Roombas battery. When the Charge value reaches the Capacity value, the battery is fully charged.
Distance Packet subset: 2 Range: -Data type: 2 bytes, signed The distance that Roomba has traveled in millimeters since the distance it was last requested. This is the same as the sum of the distance traveled by both wheels divided by two. Positive values indicate travel in the forward direction; negative in the reverse direction. If the value is not polled frequently enough, it will be capped at its minimum or maximum. Angle Packet subset: 2 Range: -Data type: 2 bytes, signed The angle that Roomba has turned through since the angle was last requested. The angle is expressed as the difference in the distance traveled by Roombas two wheels in millimeters, specifically the right wheel distance minus the left wheel distance, divided by two. This makes counter-clockwise angles positive and clockwise angles negative. This can be used to directly calculate the angle that Roomba has turned through since the last request. Since the distance between Roombas wheels is 258mm, the equations for calculating the angles in familiar units are: Angle in radians = (2 * difference) / 258 Angle in degrees = (360 * difference) / (258 * Pi). If the value is not polled frequently enough, it will be capped at its minimum or maximum.
Note: Reported angle and distance may not be accurate. Roomba measures these by detecting its wheel revolutions. If for example, the wheels slip on the floor, the reported angle of distance will be greater than the actual angle or distance.
Roomba SCI Commands Quick Reference
Command Opcode Data Byte 1 Start Baud Baud Code (0 11) Control Safe Full Power Spot Clean Max Drive Motors 138 Velocity (-500 500) Motor Bits (0 7) Led Bits (0 63) Song Number (0 15) Song Number (0 15) Packet Code (0 3) Power Power Color Intensity (0 255) (0 255) Song Length (0 15) Note Number 1 (31 127) Note Note Duration Number 1 2, etc. (0 255) Radius (-2000 2000) Data Byte 2 Data Byte 3 Data Byte 4 Etc.
Baud data byte 1: Baud Code (0 9)
Motors data byte 1: Motor Bits 0 = off, 1 = on
Bit Motor 7 n/a 6 n/a 5 n/a 4 n/a 3 n/a 2 Main Brush 1 Vacuum 0 Side Brush
Leds data byte 1: Led Bits (0 63) Dirt Detect uses a blue LED: 0 = off, 1 = on Spot, Clean, and Max use green LEDs: 0 = off, 1 = on Status uses a bicolor (red/green) LED: 00 = off, 01 = red, 10 = green, 11 = amber
Sensors
ForceSeekingDock
Power uses a bicolor (red/green) LED whose intensity and color can be controlled with 8-bit resolution. Leds data byte 2: Power Color (0 255) 0 = green, 255 = red. Intermediate values are intermediate colors. Leds data byte 3: Power Intensity (0 255) 0 = off, 255 = full intensity. Intermediate values are intermediate intensities.
Roomba SCI Sensors Quick Reference
Packet Code Name Wall Cliff Left Cliff Front Left Cliff Front Right Cliff Right Virtual Wall Dirt Detector - Left Dirt Detector - Right Remote Opcode Buttons Distance Angle Charging State Voltage Current Temperature Charge Capacity Packet Size 26 bytes 10 bytes 6 bytes 10 bytes Groups 0, 1 0, 1 0, 1 0, 1 0, 1 0, 1 0, 1 0, 1 0, 2 0, 2 0, 2 0, 2 0, 3 0, 3 0, 3 0, 3 0, 3 0, 3 Bytes 2* 2* 1 2* 2* 1 2* 2* Value Range --65535 --mV mA degrees C mAh mAh mm mm Units
Bumps Wheeldrops
Bit Sensor 5 n/a 2 Right 1 Bump Left 0 Bump Right n/a n/a Wheeldrop Caster Left
Motor Overcurrents
Bit Motor 3 Drive Right 2 Main Brush 1 Vacuum 0 Side Brush n/a n/a n/a Drive Left
Bumps Wheeldrops 0, 1
Buttons
Motor Overcurrents 0, 1
Charging State Codes
* For 2 byte sensor values, high byte is sent first, followed by low byte.
049.05

iRobot Create
OPEN INTERFACE
www.irobot.com
Table of Contents
iRobot Create Open Interface Overview..3 Physical Connections...4. Mini-DIN Connector...4 Cargo Bay Connector....4 Serial Port Settings...5 iRobot Create Open Interface Modes..6. Open Interface Command Reference...7 Getting Started Commands...7 Mode Commands....7 Demo Commands....8 Actuator Commands...9 Input Commands...13 Script Commands....15 Wait Commands...15 iRobot Create Open Interface Sensor Packets..17 iRobot Create Open Interface Commands Quick Reference..22. iRobot Create Open Interface Sensor Packets Quick Reference..24.
iRobot Create Open Interface (OI) Specification
iRobot Create Open Interface Overview
The Create Open Interface (OI) consists of an electronic interface and a software interface for controlling Creates behavior and reading its sensors. The electronic interface includes a 7 pin Mini-DIN connector and a DB-25 connector in the Cargo Bay for connecting hardware and electronics for sensors and actuators such as a robotic arm or light sensor to Create. The software interface lets you manipulate Creates behavior and read its sensors through a series of commands including mode commands, actuator commands, song commands, demo commands, and sensor commands that you send to Creates serial port by way of a PC or microcontroller that is connected to the Mini-DIN connector or Cargo Bay Connector.
Anatomy
Omnidirectional IR Receiver Handle
6-32 Mounting Cavities Tailgate Cargo Bay Charging Socket DB-25 Mini-Din
Physical Connections
To use the OI, a processor capable of generating serial commands such as a PC or a microcontroller must be connected to the external Mini-DIN connector or the Cargo Bay Connector on Create. These connectors provide two-way, serial communication at TTL (0 5V) levels. The connectors also provide an unregulated direct connection to iRobot Creates battery, which you can use to power the OI applications. The Cargo Bay Connector also provides a regulated 5V power supply and several input and output pins (see details below). The Mini-DIN connector is located in the rear right side of Create, beneath a snap-fit plastic guard, while the Cargo Bay Connector is located in the front middle of the cargo bay.
Cargo Bay Connector
The Cargo Bay Connector, located in the front middle of the cargo bay, contains 25 pins that you can use to attach electronics for peripheral devices such as additional sensors. The Cargo Bay Connector provides four digital inputs, an analog input, three digital outputs, three high-current low side driver outputs (useful for driving motors), a charging indicator, a power toggle input, serial Tx and Rx, a 5V reference, battery ground and battery voltage.
Mini-DIN Connector
This diagram shows the pinout of the top view of the female connector in Create. Note that pins 5,6 and 7 are towards the outside circumference of Create.
Pin 3 Name RXD TXD Description 0 5V Serial input to Create 0 5V Serial output from Create
Pin 7 Name Vpwr Vpwr RXD TXD BRC GND GND Description Create battery + (unregulated) Create battery + (unregulated) 0 5V Serial input to Create 0 5V Serial output from Create Baud Rate Change Create battery ground Create battery ground
Method 2:
Use the Baud Rate Change pin (pin 15 on the Cargo Bay Connector/pin 5 on the Mini-DIN connector) to change Creates baud rate. After turning on Create, wait 2 seconds and then pulse the Baud Rate Change low three times. Each pulse should last between 50 and 500 milliseconds. Create will communicate at 19200 baud until the processor loses battery power or the baud rate is explicitly changed by way of the OI.
iRobot Create Open Interface Modes
The Create OI has four operating modes: Off, Passive, Safe, and Full. After a battery change or when is first supplied, the OI is in off mode. When it is off, the OI listens at the default baud rate (57600 or 19200 - see Serial Port Settings above) for an OI Start command. Once it receives the Start command, you can enter into any one of the four operating modes by sending a mode command to the OI. You can also switch between operating modes at any time by sending a command to the OI for the operating mode that you want to use.
Full Mode
When you send a Full command to the OI, Create enters into Full mode. Full mode gives you complete control over Create, all of its actuators, and all of the safety-related conditions that are restricted when the OI is in Safe mode, as Full mode shuts off the cliff, wheel-drop and internal charger safety features. To put the OI back into Safe mode, you must send the Safe command. If no commands are sent to the OI when in Full mode, Create waits with all motors and LEDs off and does not respond to Play or Advance button presses or other sensor input. Note that charging terminates when you enter Full Mode.
Passive Mode
Upon sending the Start command or any one of the demo commands (which also starts the specific demo, e.g., Spot Cover, Cover, Cover and Dock, or Demo), the OI enters into Passive mode. When the OI is in Passive mode, you can request and receive sensor data using any of the sensors commands, but you cannot change the current command parameters for the actuators (motors, speaker, lights, low side drivers, digital outputs) to something else. To change how one of the actuators operates, you must switch from Passive mode to Full mode or Safe mode. While in Passive mode, you can read Creates sensors, watch Create perform any one of its ten built-in demos, and charge the battery.
Safe Mode
When you send a Safe command to the OI, Create enters into Safe mode. Safe mode gives you full control of Create, with the exception of the following safety-related conditions: etection of a cliff while moving forward (or moving D backward with a small turning radius, less than one robot radius). Detection of a wheel drop (on any wheel). Charger plugged in and powered. Should one of the above safety-related conditions occur while the OI is in Safe mode, Create stops all motors and reverts to the Passive mode. If no commands are sent to the OI when in Safe mode, Create waits with all motors and LEDs off and does not respond to Play or Advance button presses or other sensor input. Note that charging terminates when you enter Safe Mode.
Open Interface Command Reference
The following is a list of all of iRobot Creates Open Inter face commands. Each command starts with a one-byte opcode. Some of the commands must be followed by data bytes. All of Creates OI commands including their required data bytes are described below.
NOTE: Always send the required number of data bytes for the command, otherwise, the processor will enter and remain in a waiting state until all of the required data bytes are received.
Baud Code Baud Rate in BPS 57600 115200
Getting Started Commands
The following commands start the Open Interface and get it ready for use.
Start Opcode:128 Data Bytes: 0
Mode Commands
Create has four operating modes: Off, Passive, Safe, and Full. Create powers on in the Passive mode. The following commands change Creates OI mode.
Safe Opcode: 131 Data Bytes: 0
This command starts the OI. You must always send the Start command before sending any other commands to the OI. Serial sequence: [128]. Available in modes: Passive, Safe, or Full hanges mode to: Passive. Create beeps once to C acknowledge it is starting from off mode.
Baud Opcode: 129 Data Bytes: 1
This command puts the OI into Safe mode, enabling user control of Create. It turns off all LEDs. The OI can be in Passive, Safe, or Full mode to accept this command. Serial sequence: [131] Available in modes: Passive, Safe, or Full Changes mode to: Safe
Note: The effect and usage of the Control command (130) is identical to the Safe command. The Control command is deprecated but is present for backward compatibility with the Roomba Open Interface. Use Safe command instead. Full Opcode: 132 Data Bytes: 0
This command sets the baud rate in bits per second (bps) at which OI commands and data are sent according to the baud code sent in the data byte. The default baud rate at power up is 57600 bps, but the starting baud rate can be changed to 19200 by holding down the Play button while powering on Create until you hear a sequence of descending tones. Once the baud rate is changed, it persists until Create is power cycled by pressing the power button or removing the battery, or when the battery voltage falls below the minimum required for processor operation. You must wait 100ms after sending this command before sending additional commands at the new baud rate.
Note: at a baud rate of 115200, there must be at least 200s between the onset of each character, or some characters may not be received.
Serial sequence: [129][Baud Code] Available in modes: Passive, Safe, or Full Changes mode to: No Change Baud data byte 1: Baud Code (0 - 11)
This command gives you complete control over Create by putting the OI into Full mode, and turning off the cliff, wheel-drop and internal charger safety features. That is, in Full mode, Create executes any command that you send it, even if the internal charger is plugged in, or the robot senses a cliff or wheel drop. Serial sequence: [132] Available in modes: Passive, Safe, or Full Changes mode to: Full
Note: Use the Start command (128) to change the mode to Passive.
Demo Commands
The following are commands to star t iRobot Creates built-in demos.
Demo Opcode: 136 Data Bytes: 1
Number 7
Demo Tag
Description Identical to the Home demo, except Create drives into multiple virtual walls by bumping into one, turning around, driving to the next virtual wall, bumping into it and turning around to bump into the next virtual wall. Create plays the notes of Pachelbels Canon in sequence when cliff sensors are activated. Create plays a note of a chord for each of its four cliff sensors. Select the chord using the bumper, as follows: No bumper: G major. Right/left bumper: D major 7 Both bumpers (center): C major
This command starts the requested built-in demo. Serial sequence: [136][Which-demo] Available in modes: Passive, Safe, or Full Changes mode to: Passive Demo data byte 1: Demo number (-1 - 9)
Pachelbel
Demo Names, Descriptions and Numbers
Number Demo Description -1 (255) Abort current demo Stops the demo that Create is currently performing. 0 Cover Create attempts to cover an entire room using a combination of behaviors, such as random bounce, wall following, and spiraling. Identical to the Cover demo, with one exception. If Create sees an infrared signal from an iRobot Home Base, it uses that signal to dock with the Home Base and recharge itself. Create covers an area around its starting position by spiraling outward, then inward. Create drives in search of a wall. Once a wall is found, Create drives along the wall, traveling around circumference of the room. Create continuously drives in a figure 8 pattern. Create drives forward when pushed from behind. If Create hits an obstacle while driving, it drives away from the obstacle. Create drives toward an iRobot Virtual Wall as long as the back and sides of the virtual wall receiver are blinded by black electrical tape. A Virtual Wall emits infrared signals that Create sees with its Omnidirectional Infrared Receiver, located on top of the bumper. If you want Create to home in on a Virtual Wall, cover all but a small opening in the front of the infrared receiver with black electrical tape. Create spins to locate a virtual wall, then drives toward it. Once Create hits the wall or another obstacle, it stops.
You can also call the Cover, Cover and Seek Dock and Spot Demos using the Opcodes specified below. This is present for ensuring backward compatibility with the Roomba OI.
Cover Opcode: 135 Data Bytes: 0
Cover and Dock
This command starts the Cover demo. Serial sequence: [135] Available in modes: Passive, Safe, or Full Changes mode to: Passive
Cover and Dock Opcode: 143 Data Bytes: 0
Spot Cover
This command starts the Cover and Dock demo. Serial sequence: [143] Available in modes: Passive, Safe, or Full Changes mode to: Passive
Spot Opcode: 134 Data Bytes: 0
Drive Figure Eight Wimp
This command starts the Spot Cover demo. Serial sequence: [134] Available in modes: Passive, Safe, or Full Changes mode to: Passive
Actuator Commands
The following commands control iRobot Creates actuators: wheels, speaker, LEDS, digital outputs and low side driver outputs.
Drive Opcode: 137 Data Bytes: 4
Drive Direct
Opcode: 145
Data Bytes: 4
This command controls Creates drive wheels. It takes four data bytes, interpreted as two 16-bit signed values using twos complement. The first two bytes specify the average velocity of the drive wheels in millimeters per second (mm/s), with the high byte being sent first. The next two bytes specify the radius in millimeters at which Create will turn. The longer radii make Create drive straighter, while the shorter radii make Create turn more. The radius is measured from the center of the turning circle to the center of Create. A Drive command with a positive velocity and a positive radius makes Create drive forward while turning toward the left. A negative radius makes Create turn toward the right. Special cases for the radius make Create turn in place or drive straight, as specified below. A negative velocity makes Create drive backward.
NOTE: Internal and environmental restrictions may prevent Create from accurately carrying out some drive commands. For example, it may not be possible for Create to drive at full speed in an arc with a large radius of curvature.
This command lets you control the forward and backward motion of Creates drive wheels independently. It takes four data bytes, which are interpreted as two 16-bit signed values using twos complement. The first two bytes specify the velocity of the right wheel in millimeters per second (mm/s), with the high byte sent first. The next two bytes specify the velocity of the left wheel, in the same format. A positive velocity makes that wheel drive forward, while a negative velocity makes it drive backward. erial sequence: [145] [Right velocity high byte] S [Right velocity low byte] [Left velocity high byte] [Left velocity low byte] Available in modes: Safe or Full Changes mode to: No Change rive Direct data byte 1: Right wheel velocity D (-mm/s) rive Direct data byte 1: Left wheel velocity D (-mm/s)
LEDs Opcode: 139 Data Bytes: 3
This command controls the LEDs on Create. The state of the Play and Advance LEDs is specified by two bits in the first data byte. The power LED is specified by two data bytes: one for the color and the other for the intensity. erial sequence: [139] [LED Bits] [Power Color] S [Power Intensity] Available in modes: Safe or Full Changes mode to: No Change LEDs data byte 1: LED Bits (0 10) Advance and Play use green LEDs. 0 = off, 1 = on
Bit LED 7 n/a 6 n/a 5 n/a 4 n/a 3 Advance 2 n/a 1 Play 0 n/a
erial sequence: [137] [Velocity high byte] [Velocity low byte] S [Radius high byte] [Radius low byte] Available in modes: Safe or Full Changes mode to: No Change Drive data byte 1: Velocity (-mm/s) Drive data byte 2: Radius (-mm) Special cases: Straight = 32768 or 32767 = hex 8000 or 7FFF Turn in place clockwise = hex FFFF Turn in place counter-clockwise = hex 0001 Example: drive in reverse at a velocity of -200 mm/s while To turning at a radius of 500mm, send the following serial byte sequence: [137] [255] [56] [1] [244] Velocity = -200 = hex FF38 = [hex FF] [hex 38] = [255] [56] Radius = 500 = hex 01F4 = [hex 01] [hex F4] = [1] [244]
Power uses a bicolor (red/green) LED. The intensity and color of this LED can be controlled with 8-bit resolution. EDs data byte 2: Power LED Color (0 255) L 0 = green, 255 = red. Intermediate values are intermediate colors (orange, yellow, etc). EDs data byte 3: Power LED Intensity (0 255) L 0 = off, 255 = full intensity. Intermediate values are intermediate intensities. Example: To turn on the Advance LED and light the Power LED green at half intensity, send the serial byte sequence [139] [8] [0] [128].
Digital Outputs
Opcode: 147
Data Bytes: 1
Example: To turn on low side driver 2 at 25% and low side driver 0 at 100%, send the serial byte sequence [144][32][0][128]
Low Side Drivers Opcode: 138 Data Bytes: 1
This command controls the state of the 3 digital output pins on the 25 pin Cargo Bay Connector. The digital outputs can provide up to 20 mA of current. Serial sequence: [147] [Output Bits] Available in modes: Safe or Full Changes mode to: No Change igital Outputs data byte 1: Output Bits (0 7); D 0 = low (0V); 1 = high (5V). Example schematics
+5V SWITCHED_VPWR
This command lets you control the three low side drivers. The state of each driver is specified by one bit in the data byte. Low side drivers 0 and 1 can provide up to 0.5A of current. Low side driver 2 can provide up to 1.5 A of current. If too much current is requested, the current is limited and the overcurrent flag is set (sensor packet 14). Serial sequence: [138] [Driver Bits] Available in modes: Safe or Full Changes mode to: No Change Low Side Drivers data byte 1: Driver bits (0 7)
This command lets you ask for a list of sensor packets. The result is returned once, as in the Sensors command. The robot returns the packets in the order you specify. erial sequence: [149][Number of Packets] S [Packet ID 1][Packet ID 2].[Packet ID N] Available in modes: Passive, Safe, or Full Changes mode to: No Change uery List data byte 1: Number of packets requested Q (0 - 255) uery List data bytes 2 - N: IDs of packets requested Q (0 - 42) Example:
Input Commands
The following commands let you read the state of Creates built-in sensors, digital and analog inputs, and some internal state variables. Create updates these values internally every 15 ms. Do not send these commands more frequently than that.
Sensors Opcode: 142 Data Bytes: 1
To get the state of the left cliff sensor (packet 9) and the Virtual Wall detector (packet 13), send the following sequence: [149] [2] [9] [13]
This command requests the OI to send a packet of sensor data bytes. There are 43 different sensor data packets. Each provides a value of a specific sensor or group of sensors. For more information on sensor packets, refer to the next section, Create Open Interface Sensor Packets. Serial sequence: [142] [Packet ID] Available in modes: Passive, Safe, or Full Changes mode to: No Change Sensors data byte 1: Packet ID (0 - 42) Identifies which of the 43 sensor data packets should be sent back by the OI. A value of 6 indicates a packet with all of the sensor data. Values of 0 through 5 indicate specific subgroups of the sensor data (see Sensors Quick Reference below).
Stream
Opcode: 148
In the above stream segment, Creates left cliff signal value was 549 (0x0225) and there was no virtual wall signal. It is up to you not to request more data than can be sent at the current baud rate in the 15 ms time slot. For example, at 57600 baud, a maximum of 86 bytes can be sent in 15 ms: 15 ms / 10 bits (8 data + start + stop) * 57600 = 86.4 If more data is requested, the data stream will eventually become corrupted. This can be confirmed by checking the checksum. The header byte and checksum can be used to align your receiving program with the data. All data chunks start with 19 and end with the 1-byte checksum
Pause/Resume Stream Opcode: 150 Data Bytes: 1
This command starts a continuous stream of data packets. The list of packets requested is sent every 15 ms, which is the rate iRobot Create uses to update data. This is the best method of requesting sensor data if you are controlling Create over a wireless network (which has poor real-time characteristics) with software running on a desktop computer. erial sequence: [148] [Number of packets] S [Packet ID 1] [Packet ID 2] [Packet ID 3] etc. Available in modes: Passive, Safe, or Full Changes mode to: No Change tream data byte 1: Number of packets requested S (0 - 43) tream data bytes 2 - N: IDs of packets requested S (0 - 42) The format of the data returned is: [19][N-bytes][Packet ID 1][Packet 1 data] [Packet ID 2][Packet 2 data][Checksum] N-bytes is the number of bytes between the n-bytes byte and the checksum. The checksum is a 1-byte value. It is the 8-bit complement of all of the bytes between the header and the checksum. That is, if you add all of the bytes after the checksum, and the checksum, the low byte of the result will be 0. Example: To get data from Creates left cliff signal (packet 29) and Virtual Wall detector (packet 13), send the following command string to Create: [148] [2] [29] [13]
NOTE: The left cliff signal is a 2-byte packet and the IR Sensor is a 1-byte packet. Create starts streaming data that looks like this:
Checksum header n-bytes packet Packet data packet packet ID (2 bytes) ID 2 data 2 (1 byte)
This command lets you stop and restart the steam without clearing the list of requested packets. Serial sequence: [150][Stream State] Available in modes: Passive, Safe, or Full Changes mode to: No Change ause/Resume Stream data byte 1: Requested P stream state (0 - 1) An argument of 0 stops the stream without clearing the list of requested packets. An argument of 1 starts the stream using the list of packets last requested.
NOTE: Checksum computation: (5 + 29 + 2 + 25 + 13 + 0 + 182) = 256 and (256 & 0xFF) = 0.
Script Commands
The following commands let you specify a script for iRobot Create to play at a later time.
Script Opcode: 152 Data Bytes: N + 1
where N is the number of bytes in the script.
Play Script
Opcode: 153
Data Bytes: 0
This command loads a previously defined OI script into the serial input queue for playback. Serial sequence: [153] Available in modes: Passive, Safe, or Full Changes mode to: No Change
Show Script Opcode: 154 Data Bytes: 0
This command specifies a script to be played later. A script consists of OI commands and can be up to 100 bytes long. There is no flow control, but wait commands (see below) cause Create to hold its current state until the specified event is detected. erial sequence: [152] [Script Length] [Opcode 1] S [Opcode 2] [Opcode 3] etc. Available in modes: Passive, Safe, or Full Changes mode to: No Change cript data byte 1: Script Length (0 100) S Specifies the length of the script in terms of the number of commands. Specify a length of 0 to clear the current script. cript data bytes 2 and above: Open Interface commands S and data bytes
Tip: To make a script loop forever, use Play Script (153) as the last command.
This command returns the values of a previously stored script, starting with the number of bytes in the script and followed by the scripts commands and data bytes. It first halts the sensor stream, if one has been started with a Stream or Pause/Resume Stream command. To restart the stream, send Pause/Resume Stream (opcode 150). Serial sequence: [154] Available in modes: Passive, Safe, or Full Changes mode to: No Change
Wait Commands
The following commands cause Create to wait for a specific time, distance, angle of rotation, or event to occur. While it is waiting, Create does not change its state, nor does it react to any inputs, serial or otherwise. These commands are intended for use in scripting only.
Wait Time Opcode: 155 Data Bytes: 1
Example Scripts: Drive 40 cm and stop: 0 Toggle led on bump: 153 Drive in a square: 153
This command causes Create to wait for the specified time. During this time, Creates state does not change, nor does it react to any inputs, serial or otherwise. Serial sequence: [155] [time] Available in modes: Passive, Safe, or Full Changes mode to: No Change Wait Time data byte 1: Time (0 - 255) Specifies time to wait in tenths of a second with a resolution of 15 ms.
Wait Distance
Opcode: 156
Data Bytes: 2
This command causes iRobot Create to wait until it has traveled the specified distance in mm. When Create travels forward, the distance is incremented. When Create travels backward, the distance is decremented. If the wheels are passively rotated in either direction, the distance is incremented. Until Create travels the specified distance, its state does not change, nor does it react to any inputs, serial or otherwise.
NOTE: This command resets the distance variable that is returned in Sensors packets 19, 2 and 6.
To wait for the inverse of an event, send the negative of its number using twos complement notation. For example, to wait for no bumps, send the serial byte sequence [158] [-5], which is equivalent to [158] [251].
Wait Event: Unsigned Equivalent of Inverse
Event Wheel Drop Front Wheel Drop Left Wheel Drop Right Wheel Drop Bump Left Bump Right Bump Virtual Wall Wall Cliff Left Cliff Front Left Cliff Front Right Cliff Right Cliff Home Base Advance Button Play Button Digital Input 0 Digital Input 1 Digital Input 2 Digital Input 3 OI Mode = Passive Number Unsigned Equivalent of Inverse 235 234
erial sequence: [156] [Distance high byte] S [Distance low byte] Available in modes: Passive, Safe, or Full Changes mode to: No Change ait Distance data bytes 1-2: 16-bit signed distance W in mm, high byte first (-32767 -32768)
Wait Angle Opcode: 157 Data Bytes: 2
This command causes Create to wait until it has rotated through specified angle in degrees. When Create turns counterclockwise, the angle is incremented. When Create turns clockwise, the angle is decremented. Until Create turns through the specified angle, its state does not change, nor does it react to any inputs, serial or otherwise.
The strength of the front left cliff sensors signal is returned as an unsigned 16-bit value, high byte first. Range: 0-4095
Cliff Front Right Signal
acket ID: 30 P
Data Bytes: 2 unsigned
Cargo Bay Analog Signal
Packet ID: 33
The strength of the front right cliff sensors signal is returned as an unsigned 16-bit value, high byte first. Range: 0-4095
Cliff Right Signal Packet ID: 31 Data Bytes: 2 unsigned
The 10-bit value of the analog input on the 25-pin Cargo Bay Connector is returned, high byte first. 0 = 0 volts; 1023 = 5 volts. The analog input is on pin 4. Range: 0 - 1023
The strength of the right cliff sensors signal is returned as an unsigned 16-bit value, high byte first. Range: 0-4095
Cargo Bay Digital Inputs Packet ID: 32 Data Bytes: 1 unsigned
Example Schematic
Light Dependent Resistor (LDR)
ANALOG_INPUT
The state of the digital inputs on the 25-pin Cargo Bay Connector are sent as individual bits (0 = low, 1 = high (5V)). Note that the Baud Rate Change pin is active low; it is high by default. Example Schematic
10K Ohms
Charging Sources Available
Packet ID: 34
DIGITAL_INPUT
iRobot Creates connection to the Home Base and Internal Charger are returned as individual bits, as below.
Range: 0 - = charging source present and powered; 0 = charging source not present or not powered.
Bit 7 n/a 6 n/a 5 n/a 4 n/a 3 n/a 2 n/a 1 Home Base 0 Internal Charger Charging Source
Bit Digital Input 0 (pin 17) Button n/a n/a n/a Device Digital Detect Input 3 /Baud (pin 6) Rate Change (pin 15) Digital Digital Input 2 Input 1 (pin 18) (pin 5)
OI Mode
Packet ID: 35
Creates connection to the Home Base and Internal Charger are returned as individual bits, as below.
Range: 0 - 3
Number Mode Off Passive Safe Full
Device Detect pin can be used to change Baud Rate. When device detect/baud rate change Bit is low, the Baud Rate is 19200. Otherwise it it 57600
Song Number
Packet ID: 36
The currently selected OI song is returned. Range: 0-15
Song Playing Packet ID: 37 Data Bytes: 1 unsigned
The state of the OI song player is returned. 1 = OI song currently playing; 0 = OI song not playing. Range: 0-1
Number of Stream Packets Packet ID: 38 Data Bytes: 1 unsigned
The number of data stream packets is returned. Range: 0-43
Requested Velocity Packet ID: 39 Data Bytes: 2 signed
The velocity most recently requested with a Drive command is returned as a signed 16-bit number, high byte first. Range: -500 - 500 mm/s
Requested Radius Packet ID: 40 Data Bytes: 2 signed
The radius most recently requested with a Drive command is returned as a signed 16-bit number, high byte first. Range: -32768 - 32767 mm
Requested Right Velocity acket ID: 41 P Data Bytes: 2 signed
The right wheel velocity most recently requested with a Drive Direct command is returned as a signed 16-bit number, high byte first. Range: -500 - 500 mm/s
Requested Left Velocity acket ID: 42 P Data Bytes: 2 signed
The left wheel velocity most recently requested with a Drive Direct command is returned as a signed 16-bit number, high byte first. Range: -500 - 500 mm/s iRobot Create Open Interface (OI) Specification 21
iRobot Create Open Interface Commands Quick Reference
Create OI Commands Quick Reference Table
Command Start Baud Control Safe Full Spot Cover Demo Drive Low Side Drivers LEDs Song Play Sensors Cover and Dock PWM Low Side Drivers Drive Direct Digital Outputs Stream Query List Pause/Resume Stream Send IR Script Play Script Show Script Wait Time Wait Distance Wait Angle Wait Event Opcode 158 Time (seconds/10) Distance (-32767 - 32768 mm) Angle (-32767 - 32768 degrees) Event ID (1 to 20 and -1 to -20) Low Side Driver 2 Low Side Driver 1 Low Side Driver 0 Duty Cycle (0 - 128) Duty Cycle (0 - 128) Duty Cycle (0 - 128) Right wheel velocity (-mm/s) Output Bits (0 7) Number of Packets Packet ID 1 (0 42) Packet ID 2, etc. Left wheel velocity (-mm/s) Demos (-1 - 9) Velocity (-mm/s) Output Bits (0 7) LED Bits (0 10) Song Number (0 - 15) Song Number: (0 15) Packet ID: (0 42) Power LED Color (0 255) Song Length (1 - 16) Power LED Intensity (0 255) Note Number 1 (31 27) Note Duration 1 (0 - 255) Note Number 2, etc. Radius (-mm) Baud Code: (0 11) Data Bytes: 1 Data Bytes: 2 Data Bytes: 3 Data Bytes: 4 Etc.
Packet ID 1 (0 42) Packet ID 2, etc. Range: 0-1 Byte (0 - 255) Script Length: (1 100) Command Opcode 1 Command Data Byte 1, etc. Command Opcode 2 Etc.
Baud Code (0 11)
Digital Outputs Data Byte 1: Output Bits (0 7)
0 = low (0V); 1 = high (5V).
Baud Code Baud Rate in BPS Bit Output Low Side Driver Low Side Driver Low Side Driver 0
10 Cliff Front Left 11 Cliff Front Right 12 Cliff Right 13 Virtual Wall 14 Overcurrents 15 Unused 16 Unused IR Byte 18 Buttons 19 Distance 20 Angle Charging State 22 Voltage 23 Current 24 Battery Temperature 25 Battery Charge 26 Battery Capacity
Bumps and Wheel Drops
Bit 3 Wheeldrop Left 2 Wheeldrop Right 1 Bump Left 0 Bump Right
Sensor n/a n/a n/a Wheeldrop Caster
Low Side Driver and Wheel Overcurrents
Bit Motor 3 Right Wheel 2 Low Side Driver 0
n/a n/a n/a Left Wheel
Low Low Side Side Driver 0 Driver 1
Bit n/a 5 n/a 4 n/a 3 n/a 0 Play
Button n/a
Advance n/a
Cargo Bay Digital Inputs
Bit Digital Input 2 (pin 18) 1 Digital Input 1 (pin 5) 0 Digital Input 0 (pin 17)
Button n/a n/a n/a Baud Digital Rate Input 3 Change (pin 6) (pin 15)
Bit Charging Source 7 n/a 6 n/a 5 n/a 4 n/a 3 n/a 2 n/a 1 Home Base 0 Internal Charger
2006 iRobot Corporation. All rights reserved. iRobot, Roomba and Virtual Wall are registered trademarks of iRobot Corporation. Home Base and Create are trademarks of iRobot Corporation. U.S. Pat. Nos. 6,594,844 6,690,134, and 6,809,490. Other patents pending.
Tags
Phone RDR-VX530 BT250V Alarm T120C CS-2194H ICF-CD7000BLK Mustang-1996 RD-150 UE-40B7000 PLG150-VL Series Battery Explorer-2007 LL-T15g4 Series Parts IC-2SAT WL-306 Otf 40 RS2000 CDX-GT383A XL550U DMR-EX77EB HC4000 32WS23U Nokia 7600 Reflexes M5-S433 Tecra A2 Powermaxexpress Racing Racing 30215 WM551 J210I BAR338P 360RU Management Gr-dx35 NN-SD767 Perfection 3200 MOC-150 Smartphones T175 HD Clavier 646 CDX-GT215C ER-A170 SMC2802W MS9107C FLS502 Cyber-shot KV-28FX20U HD3000 Leaptop PX-100 NM902 AM6000 Overdose GT-E1160 AN-TNT 60HP-2005 DSR-PD170 A1000 DVP620VR Updatecd1 3 KD-510Z Series Manual DLA78405 VGN-NS11m S Toolbox 7 Series Side Brush Series Review Brain AGE SRS-BTM30 Spektrum DX3R M-ONE XL Endura DSC-W220 PT100 Series Virtual Wall Ultimate BOX 880GM-E41 Battery 6FF3FPW AV-M99 AX-X1 PRS-X220 DVD-SH855M KV-25DS55 NMW25IX HDR-CX500V Series Virtual Wall Lighthouse KX-TG8421G Review SA2840 42PFL3604H 11711 HCD-H11 Minolta 7272 Dimage XT LUE02-90-W ASL64020 Wixxl126 40C6900 Omnibook 900 HDW-3 Turbo EZ-J22 HHM80 P4V8x-MX
manuel d'instructions, Guide de l'utilisateur | Manual de instrucciones, Instrucciones de uso | Bedienungsanleitung, Bedienungsanleitung | Manual de Instruções, guia do usuário | инструкция | návod na použitie, Užívateľská príručka, návod k použití | bruksanvisningen | instrukcja, podręcznik użytkownika | kullanım kılavuzu, Kullanım | kézikönyv, használati útmutató | manuale di istruzioni, istruzioni d'uso | handleiding, gebruikershandleiding
Sitemap
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

1. iRobot 530 Roomba Vacuuming Robot, White by iRobot
2. Maximalpower PTB Roomba500 14.4v 3300mAh Ni MH Replacement Battery for i Robot Roomba 500 by Maximalpower
3. GPK Irobot Roomba 500 510 530 532 535 540 550 560 562 570 580 R3 Vacuum Battery Pack by GPK
4. Replacement Ni MH Battery for iRobot Roomba 500 Series by Metapo
5. Vacuum Battery for Irobot Roomba R3 500 Series Mh 3.3a by windhorser
6. iRobot Roomba model 500 FILTER by AWM





