I want to do some Roomba hacking.
July 12, 2015 6:15 AM   Subscribe

I have a Roomba 650. I want to be able to control it over Bluetooth with a program. How do I get started? (It is not a Roomba Create, which is neat, but I am still interested in vacuuming, which the Roomba Create does not do.)

Some things I would like to try to get it to do:

- Report failure states as they happen (e.g. brush jammed, low battery, can't move).
- Move according to a custom program.

Once I am able to get a reliable serial port connection, I can probably manage to get somewhere with node-serialport. However, I can't just hook a serial cable up to it because then it wouldn't be able to move very far. According to this (probably old) article, the RooTooth is a good way to send commands to the Roomba. However, I noticed that it has been discontinued, although units are still out there for sale. Will just any Bluetooth serial adapter work? Or was there something special about the RooTooth that made it easy? If so, what's the currently recommended adapter?

That's my first big obstacle. Any other information about getting started is welcome!
posted by ignignokt to Technology (3 answers total) 1 user marked this as a favorite
I am not a Roomba hacker but I've talked with Roomba hackers. It looks like you can build something that'll do what you need, but it won't be as one-step off-the-shelf as the RooTooth.

You need a Bluetooth serial module with a TTL-level UART and one of these mini-DIN cables. The spec says everything is TTL-level, except the unregulated power from the Roomba's battery, so you'll also want a buck converter to get to 5v (you could use a linear regulator but those are stupidly inefficiently and you're on a battery). It doesn't look like there's any tricky hardware hackery-pokery with the UART, so this all ought to just work, though I haven't done it myself. To cross-check, you can look at the RooTooth schematic on Sparkfun -- looks like a voltage regulation circuit, a bluetooth serial module, and a connection to the mini-DIN port, so I'd say you're likely in good shape. There's a 10k resistor between the bluetooth module and the RX line on the mini-DIN, but no weirdo inverters/level shifters/whatever else.

Here's the spec -- it looks like this is for the Create 2, but other Roombas seem to have the same mini-DIN serial port.
posted by Alterscape at 7:56 AM on July 12, 2015 [1 favorite]

Followup: Don't get that TTL-level UART -- datasheet says it's limited to 9600 baud, which is too slow for the Roomba, even in slow mode. You want something that'll do 115200 baud, or at least 19200 baud. I THINK this sparkfun part is solid, and has 5v safe inputs.

You may also need to build out the little MOSFET driver circuit shown in the schematic for the TX line (forgot that the bluetooth parts are probably 3.3v logic). The DD line circuit I think you can skip, so long as you can provide 115200 baud, or are willing to do the button sequence described in the spec to put the roomba into 19200 baud mode every time you power it on with intent to hack.
posted by Alterscape at 8:15 AM on July 12, 2015 [1 favorite]

Thanks, Alterscape! I am going to try to digest this and form a plan tomorrow!
posted by ignignokt at 7:12 PM on July 12, 2015

« Older Fridge compressor died, or maybe not?   |   How to talk about sexual dissatisfaction Newer »
This thread is closed to new comments.