Hacking Roomba

Embedded Linux

While the microcontroller inside the Roomba is too tiny to run a full operating system like Linux, there are several small and cheap Linux-capable boards that you can discretely fit on top of the Roomba.

Stay tuned for code downloads of an OpenWrt-based Linux system to control your Roomba! (or get the book :-)

For now, if you’re experienced with OpenWrt and C, you can get the “roombacmd” C library from the SVN repository and the ipkg package control files:


13 Comments so far

  1. kdmcmullan March 1st, 2009 12:08 pm

    Brilliant. This is an excellent library.
    I’d be more interested in reading about how you get the 5V to drive the router at 2.5A. Damn. I might have to buy this book.

  2. Oscar Eriksson March 20th, 2009 1:44 pm

    I have a Roomba 560, and are planning to use the Roomba built in IEEE 802.15.4 wireless tranciever (MC13202) to communicate with my embedded linux card placed in a wardrobe. It should be pretty easy to multiplex the original data through the SPI interface with the data to/from the Roomba Command Interface using a little microcontroller.

    It is not enough room within the Roomba to place a linux card there, and it is also a waste of power.

    My embedded linux card consumes 1W (1A at 5V), so I can have it running all days long without high electricity bills. :) (It is a Foxboard, by the way.)

  3. Oscar Eriksson March 20th, 2009 1:47 pm

    Obviously I ment 1W = 0.2 A at 5V. :)

  4. Oscar Eriksson March 20th, 2009 1:49 pm

    Obviously I ment 1W = 0.2A at 5V. :)

  5. antipoison June 23rd, 2009 10:37 am

    any code for the mapping system?

  6. todbot June 23rd, 2009 11:29 am

    I’ve not done any mapping code for the Roomba. I think other have, but I don’t know any links. Google for “roomba robotic mapping” perhaps.

  7. chris July 10th, 2009 9:59 am

    Could you post an ipk file for openwrt? I’m not really setup to compile

  8. todbot July 10th, 2009 10:21 am

    Do you mean an ipkg file? There’s one listed in the post.

  9. chris July 10th, 2009 10:54 am

    Maybe I am missing something, other packages I can do an:

    #opkg install PACKAGE

    I’m unclear how to get from what’s posted to that point.

    Thanks for the help, somewhat new at this.

  10. todbot July 10th, 2009 11:37 am

    Oh, you’re totally right, my apologies. I thought I had put the built package file up, but instead put a link to the directory for the stuff needed to build the package.

    I’ve updated the post to include a link to the .ipk file. This was built a few years ago so it may not work on more recent versions of OpenWrt (I don’t see why not, but just a warning). I also don’t have have an OpenWrt cross-compiling set up right now, or I would rebuild the package.

  11. chris July 10th, 2009 11:50 am

    Alas not:

    # /usr/bin/roombacmd
    /usr/bin/roombacmd: can’t resolve symbol ‘__uClibc_start_main’


  12. todbot July 10th, 2009 11:53 am

    Hmm. You might need to install some uclib ipkg. I need to find a copy of my book to remind myself the steps to get this working. :)

  13. Lenin January 28th, 2011 1:27 pm

    Can you install Android OS on roomba?

Leave a reply

You must be logged in to post a comment.