I recently purchased a RooStick from RoombaDevTools.com. $29 + $6.50 shipping.
If you don’t feel like building your own Roomba serial interface to let you hack your Roomba into a robot, you can use a RooStick.
The RooStick is a USB-to-Serial adapter with a Mini DIN 7-pin socket on it that matches the SCI connector on the Roomba. It is an unencased circuit board with a USB connector soldered on one end and the Mini DIN on the other. The circuit consists of a CP2103 USB-to-UART chip and a couple of LEDs.
Here’s what it looks like plugged into my Powerbook:
While RoombaDevTools doesn’t advertise it because they are focusing on the Windows crowd, the CP2103 has drivers for other OSes. You have to hunt around the Silicon Labs site, but under the
USB-to-UART Virtual COM Port (VCP) drivers page you can find drivers for all the other OSes. Of course, like all USB-to-serial drivers, they require a reboot.
[update: The SiLabs site doesn’t have a link to Linux drivers because the driver is already in the Linux kernel. It’s called “cp2101” and should auto-load if you have USB hotplug correctly configured (like Ubuntu does)]
Since it appears as a serial port to your OS, you can use any program that can talk to serial ports to control the Roomba. My RoombaComm API library and any of the apps built on it, like RoombaMidi work with the RooStick.
Issues:
While the RooStick works great, there are a few things to be aware of.
Use their cable
You must use their 7-pin to 7-pin cable. Using a standard Mac serial Mini DIN 8-pin to Mini DIN 8-pin cable from Jameco or wherever will blow out the SCI port on your Roomba. Trust me on this, as I have a dead Roomba to show for it. You could build your own cable, but RoombaDevTools doesn’t yet publish the pinout. From my own experimentation, the pinout appears to be a left-right mirror of the standard Mac pinout. This configuation isn’t guaranteed to stay the same, as RoombaDevTools could change it at any point. Use their cable. Doing so adds $17 to the $29 price of the RooStick but it’s cheaper than replacing your Roomba.
Hot LEDs
The Vpwr LED showing Roomba power gets very (dangerously?) hot. Be careful when grasping the RooStick or you’ll burn your finger. I’ve not measured how much power that LED is drawing. It’s probably not a power concern for the Roomba, but I’m sure the LED’s life is being shortened.
Cable too short
The optional 7-pin cable for the RooStick is only 6 feet long. Even a 10 foot cable is too short if you’re actually driving the Roomba around. I recommend at least a 15 foot cable. The 6 foot cable is only good for stationary Roomba projects, or when the laptop sits on the Roomba.
Other than those issues, the RooStick is a great way of getting into Roomba hacking.
Fatman, SparkFun appears to have a few RooSticks available: http://www.sparkfun.com/products/670
The website seems to be undergoing some changes. No RooStick for me. :(
When you download the VCP drivers, and install them and then load them:
$sudo kextload /System/Library/Extensions/SLAB_USBtoUART.kext
Password:
kextload: /System/Library/Extensions/SLAB_USBtoUART.kext loaded successfully
How do they then appear under
$ls -l /dev/* ?
soopergooman: there’s actually two LEDs on the RooStick: one powered by USB and one powered by the Roomba’s ~+16VDC Vpwr line. The USB LED is fine, it’s the Vpwr LED that gets too hot. This is probably because the same value current limiting resistor was used for both LED circuits. With about three times the voltage across the same value resistor, you get 3 times the current. It may be a manufacturing defect on my particular RooStick: trying to see the values on those surface-mount resistor specks is hard.
I just saw this on Engadget.com and now I see that you have a “HOT LED” problem. The reason it’s getting so hot is that it’s probably drawing over 4 volts of juice from the usb port(any higher and you risk hot plastic explosions.) If you wanted to mod it yourself, then connect a 3.6v resistor to one end of the led contact and then to the pcb, this will dim it and make it not so hot to the touch.
dd: good point. I’ve changed the text to be a bit more explanatory. The post was originally written for other Roomba hackers.
xSmurf: that’s true, but the installer for the driver doesn’t tell you that and the RooStick is targeted at folk less inclined to know how to load kernel modules.
Actually you don’t need to reboot under Mac OS X; you can load any kernel extension like so:
# sudo kextload /System/Library/Extensions/com.extension.kext
Obviously you’ll need to replace “com.extension.kext” with the name of the extension you want to load. This works since 10.3, iirc.
Not enough description is given in this review to tell the reader actually WHAT the RooStick allows one to do. Control wirelessly? From the computer? Very poor write-up.