Rootooth troubleshooting

I had so many problems using my Rootooth that I intend to maintain on this page all the tricks I found to make it work. The main problem is that the original rootooth was working in some way, well documented on the net and forums, but rootooth from ~2008 on are based on a different chip (the Firefly), more powerful and more complicated to use. And documentation is well buried too.

So here are some general aspects:

  • bluetooth PIN code is 1234. The profile to set-up is SPP (serial profile).
  • serial settings between your computer and rootooth is 9600bps, 8N1. So far it doesn't look like you can change them. Actually the baudrate doesn't matter with bluetooth SPP, it seems the bluetooth communication layer adapts to whatever speed you use with the serial port.
  • communication between rootooth and roomba 500 doesn't work out of the box, because roomba 500 is using 115200bps by default, and rootooth is configured at 9600 to talk with the roomba. You need to connect to the rootooth first, reconfigure it to talk in 115200 with the roomba, and you'll start having the battery charge status every second (provided your roomba is charging).
  • to change any firefly settings, you connect to rootooth using your favorite serial terminal, type in $$$, you should see an answer CMD telling you that you've entered command mode. IMPORTANT: do that within the 60 seconds after you plugged the rootooth in! because there is a stupid and not-so-well documented timer that prevents you from entering command mode after these 60s. Enter “U,115K,N” followed by CR to set-up the baudrate, then ”—” followed by CR. If the roomba is plugged in, it should start showing lines of battery status.

Using Mac OS-X

Setup the bluetooth

You first have to enable the bluetooth of your mac (status bar), plug in the rootooth (if it was already plugged, remove and re-plug), then in the bluetooth menu, select “Set Up Bluetooth Device”. After a scan, the rootooth should be found (it's called something like “Firefly”), but trying to connect to it will fail because OS-X thinks the PIN code is 0000. Once it failed, click the Passcode options button, set it to 1234, and retry. It should tell you that the device is paired, and a serial port has been created.

Connect and configure the rootooth

You need to connect and enter the so-called “command” mode, but once the rootooth is plugged, you have 60 seconds to do so. Don't hesitate at this point to remove/re-plug it to the roomba. OS-X will keep the serial port available, and try to reconnect when you use it (you can see wether your computer is connected to a bluetooth device with the bluetooth icon in the status bar: normal means not-connected; grayed with three dots means a device is connected and in use; moreover, you will see the firefly listed in bold font in the bluetooth menu if you're using it).

You can then use a terminal and the “screen” command to connect to the serial port of the rootooth: screen /dev/tty.Firefly-1760-SPP 115200 (if you need to exit screen, type ctrl-a, then k, then confirm with y). You won't see anything at this stage, but try to type in ”$$$”, and the firefly should answer with CMD. You can then buy time by removing the timer to enter the command mode, typing ST,255<cr> (answer should be AOK). You can explore all the commands listed in the user's guide (see links at the end of the page), but what you want right now is to get roomba's battery status, so type in U,115k,N<cr> then —<cr> (3 minus signs) and you should see one line of battery status per second, like this:


Using Linux

It's almost the same as for Mac OS-X. There are several bluetooth managers, depending on your distribution and desktop environment. Some of them don't work very well, you might have to install a better one. The process is very similar to OS-X for setting-up the bluetooth pairing and SPP (serial port profile), in the end you have a device that is probably called /dev/rfcomm0. You can use screen in the same way as described previously. One difference though, once OS-X has been configured for the rootooth, you'll always have a device file in /dev to connect to it, and the system connects to the device as soon as you use the device file. In Linux, you have to explicitly setup the bluetooth serial port before getting a device file you can use with screen. All the commands with the rootooth are the same after this point.

Some useful documents

rootooth_howto.txt · Last modified: 2013/04/14 09:07 by hadrien
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS La rache Driven by DokuWiki