The RooStick by RoombaDevTools.com is pretty cool. It’s tiny and it’s USB, which is about all you need for me to bring you home.
But if you want to hack together something similar and you don’t want to build a huge honking Roomba serial tether, you could build the Roombongle!
The Roombongle is a USB adapter that allows you to control your Roomba from your computer, via the Roomba’s SCI protocol. Don’t have a Roomba? Get one!
Things you’ll need to build the Roombongle:
– USB data cable for Nokia phones (aka “FutureDial Cable 22”) – $20
– Mini-Din 8-pin cable, Jameco #10604, $3.30
This puts the cost at about $24. A RooStick costs $29, but you also need their $17 cable, so $46. Roombongle is half the price, but it’ll take you about an hour to build. How much is an hour of your time worth? :)
The Roombongle is made from a phone sync cable. Out of the box it’s pretty unassuming:
Make sure the cable you get has the little bulge in the middle. That’s where the magic happens.
It turns out that if you take the little bulge apart, there’s a friendly little PL2303 USB-to-serial adapter chip inside:
You can download the spec sheet for said chip and you’ll see that it normally works at 3.3V, but its inputs are 5V-tolerant and its 3.3V outputs are within the valid range for 5V logic. Thus, the Roomba should understand it, and it should understand the Roomba. Obviously the thing to do next is graft a Roomba-compatible Mini-DIN 8-pin cable to it:
Just RX, TX, and GND are all that’s needed. You can route the +16V from the Roomba to an external connector if you want. That’s what the 9V connector-like thing is in the top photo. Once the wires are soldered down, just snap the case back together, use a little hot glue to seal in the Roomba cable and act as a strain relief, and you’re done.
Now with the Roombongle, your laptop is free to explore its surroundings, no longer reliant on you to carry it from place to place.
Thanks and Inspiration
The guys over at NSLU2-Linux did the hard work of figuring out these Radio Shack data cables. And not just the Nokia ones, but all the other sync cables RS sells.
The PL2303 chip is a pretty good one and supported on all the OSes. Linux has the driver built into the kernel so you can just plug it in and go if you’re running Ubuntu.
James, the Roombongle doesn’t require external power either. It *provides* power. It breaks out the ~16VDC battery power from the Roomba for your own use.
RooStick doesn’t require any external power – but it seems that Roombongle does. I’m not so sure what the advantage is. Is it the $17 cable you save?
So I have to rewire it anyways then it sounds like, okay, NBD
Jetdillo: The pinout of the Roomba’s mini DIN jack is totally different from the Mac serial port. In fact, it’s a 7-pin mini DIN, not an 8-pin, it’s just luck that the two different mini DIN connectors are mechanically compatible.
I have:
-Airlink101 USB/Serial adapter w/ 2303 chip, USB at one
end, DB9 on the other.
-DB9 to 8-pin mini DIN adapter (From an old Handspring Visor Mac compatibility kit)
-DB9 F/F Gender changer to deal with the multiple male DB9s.
Since the whole point of the hack is to attach the Roomba-compatible 8-pin mini-DIN cable to the serial side of the USB/Serial adapter, couldn’t you just hook the two together or do you still have to hack it and graft them onto each other?
Make sure to check your wires on the printer cable with a multimeter. I checked mine and they were color coded differently.
That’s Good news. You may soon get a Linux tester for RoombaComm. :)
Aquila, yes it work with RoombaComm, and any other code that accesses the Roomba via the serial port. The PL-2303 drivers on Mac OS X create a virtual serial port called “/dev/tty.usbserial0”.
Also, it looks like you can get very similar cell phone sync dongles off of eBay for less than $10.
Did you get this working with your RoombaComm library?
That’s really interesting. I’ll go make one right now, thanks!