Roomba goes WiFi

Last Tuesday I received a really cool device, the Roomba Wi-Fi Remote. In short: RooWifi.
The RooWifi turns your Roomba Robot Vacuum cleaner into a Wifi-enabled device!

RooWifi board with cover

Some specs:

Physical

  • Mini-DIN 7 pins (PS/2) plug
  • PCB dimensions: 53 x 32.5 mm.

WLAN

  • Wi-Fi IEEE 802.11b
  • Range up to 400m, Baud rate: 1 and 2 Mbps, AES128 encryption, WPA(2)-PSK, Hotspot and ‘Home network’ mode

Interfaces

  • Web Server with authentication.
  • TCP Socket Server for client-server applications

Protocols and Standards:

  • XML: Read-only with data refresh of 500ms.
  • JSON: Read-only with data refresh of 500ms.
  • AJAX Request through GET Calls and text format output.

Operating Systems, Compatible devices:

  • Android >=2.0
  • iOs >=3.1
  • Blackberry
  • WebOs
  • Windows Phone
  • Linux
  • MacOs
  • Windows.

Power consumption: 200mA @ Roomba Battery Voltage (around 17V).

We have a Roomba 500-series vacuum cleaner in our house since 2010. It helps us to keep the floors clean, cause with 3 cats running around things can get messy really quick (oh, and don’t forget the kids, they’re good at making a mess too 😉
I control the Roomba with an IRTrans Ethernet module that’s located in the living room; I can send a ‘CLEAN’ command to the Roomba, but that’s about it – the DOCK command doesn’t work, and every now and then the IR command doesn’t work at all (I think due to too much sun reflections inside). So controlling the Roomba has always been far from perfect.

I’ve been looking at other solutions to control the Roomba in the past, like attaching an Arduino to it but all the solutions I found resulted in a big ‘bulb’ on top of the Roomba, which I didn’t like. But this RooWifi is small enough!

All the Roomba’s (I know about) have a 7-pin mini-DIN SCI (Serial Command Interface) socket somewhere. And there’s even (official) documentation about this SCI port.

To control the Roomba, this SCI has to be accessible; where the socket is and how easy the physical access to the socket is differs per model. To get access to the SCI socket of my Roomba 563-PET I had to remove the top plate. After removing the battery and using a screw driver the top plate came off relatively easy. This plate will not be needed anymore. The RooWifi module can be inserted into the socket like this:

RooWifi connected to Roomba

Other models may need a different approach.

RooWifi with coverAfter plugging in the RooWifi into the SCI socket the RooWifi starts up in Hotspot mode and creates a ROOMBA WR wireless network.

I connected to it with a laptop which got an IP address of 10.0.0.2, opened a web browser to and found the Web Interface. From there you can alter the settings of the RooWifi so that it connects to your own Home Wifi Network if you want to.

Below you see a screen-dump of the Driver’s Remote:

RooWifi Drivers's Remote

Other screens show four main buttons for operating the Roomba (CLEAN, SPOT, DOCK, IDLE) and an overview of all the sensor values:

Roomba sensor values

Whooaahh, and all in real-time of course, really cool 😉

It was fun driving the Roomba through the living room, the whole family was suddenly very interested in a test-drive, but that’s not why I bought this RooWifi of course; I’ve got other toys for that. The RooWifi is for automating the cleaning process, integration of the Roomba in the rest of my Home Automation system is cool, cause that means I have full control over when and for how long the Roomba will do its job – and with the Wifi connection we can use one single Roomba for more rooms than just the living room, cause Wifi is ‘everywhere’, and Infrared is not…

By the time I’ve finished the software for controlling and monitoring the Roomba I’ll write a follow-up with all the details like working with the Remote TCP server, the JSON data and all the other neat stuff the RooWifi has to offer.. so stay tuned!