DIY mechanics and electronics projects

DIY mechanics and electronics projects

Google Search

WebThis site

Buy me a Beer :)

This web page is run by me on my spare time. If you find any of the information useful and worth a couple of bucks, I will be very grateful if you buy me a beer by donating a small amount using the PayPal link below :)

Amount: 

DIY Roomba USB interface cable
DIY Roomba USB interface cable - SCI control software Print E-mail
User Rating: / 3
PoorBest 
Article Index
DIY Roomba USB interface cable
USB adapter
SCI control software
Connecting to STK500
All Pages

As already mentioned, as the Rooma commands are outside the ASCII table (ASCII use 0 to 127, Roomba 128-256) it is not straight forward using a terminal to control the Roomba. Therefore a dedicated application is neccessary. Several implementations of different Roomba control softwares exists on web, but no one quite fit my expectations. So therefore I made my own (the ultimate solution to any problem Cool ). The software use the DLL provided in the AVR309 application note from Atmel, and provides an easy interface to control and monitor your Roomba.

SCI control software screen shot

You can download the Application and dll file here:

zip
 Roomba_USB_Interface.zip

and the USB driver here:

zip
 USBdriver.zip

Note that this software is made for my Roomba 560, having scheduling possibilities. There are more buttons on the Roomba 560 than on the ones without scheduling. The SCI documentation from iRobot only lists the four buttons for the Roombas without scheduling in the button status byte:

Bit
7
6
5
4
3
2
1
0
Button
n/a
n/a
n/a
n/a
Power
Spot
Clean
 Max

But for the Roomba 560 (and therefore also for my SCI control software) the button configuration is this:

Bit
7
6
5
4
3
2
1
0
Button
Clock
Schedule
Day
Hour
Minute
Dock
Spot
Clean

UPDATE: There is now a separate SCI specification available for the 5xx series of Roomba vacuums. It can be found here, and has the correct button configuration listed, as above.

Using the software is simple. You wake up the Roomba by pressing the Wake up button, and enable SCI control by pressing Control. Then you can control the Roomba and select the different modes of operation. For details see the SCI specification.

Note that there are two UART baudrate selection boxes. The one on the right side is the Baud rate setting for the SCI control program. By default the Roomba communicates at 57600 baud (115200 for the 5xx series). If no connection is established with the Roomba you will se a notification and the baud selection box is red. The second baud selection box at the mid-left position is the SCI baud selection command to change Roombas baud rate. If you experience problems connecting to your Roomba on 57600 baud, hold the power button of your Roomba pressed for 10 seconds. Roomba will play a tune of decending tones and switch to 19200 baud, until the battery is removed or fully depleted.

The following video gives a quick demonstration of how to use the program. Note the connection problem at the very beginning, as I tried to connect at 57600 baud, and then the baud rate change made by holding down the power button for some seconds. After making this film, I found out that the 5xx series use 115200 baud as default, and this was the cause of the connecion problem.

On the next page I will show how you can connect the SCI interface to the STK500 AVR starterkit from Atmel to utilize its spare RS232 port, or control the Roomba using an AVR.



 
 
Joomla 1.5 Templates by Joomlashack