Instructables

Super Simple Arduino Powered Roomba Scheduler

Featured
Like most people I was skeptical about getting a robotic vacuum cleaner, so as a trial run I thought I would buy the now obsolete iRobot Roomba 530 which was heavily discounted (they're still available in Australia, showing how behind the times we are). 

Of course, as soon as I got it home I fell in love with it and for once had clean carpets!   

Unfortunately, this model doesn't come with a remote (I ended up getting a Logitech Harmony which allows me to control my robot slave) or a scheduler to allow scheduled cleans during the day while I was out.  

I had to PRESS A BUTTON before I left the house to make it clean! Not hard but I generally forgot to do it.  

Rather than forking out money to buy a scheduler (which may or may not have worked with this model) I built my own. The black box in the picture. 

This bare bones, super simple scheduler allows me to leave the house without having to do anything and come back to clean floors. As long as the Roomba is charged and at the docking station.

It's cheap, takes less time to build  than writing this instructable. And best of all, powered by an Arduino Uno! 

I've been stalking instructables for several years now and this is the first time I've actually documented a project all the way through well enough to make into an instructable. I have tried to include as much detail as I could to help others. Feedback on both the project and the instructable are very welcome. 

 
 
Remove these adsRemove these ads by Signing Up
leshbob641 year ago
To update you, I swapped out the IR bulb and swapped out the baud rate to 115200 as I have read on a few websites that the 530 defaults to that connection rate and it worked! Awesome design and thanks again for coming up with the walkthrough on this.
ShaperG (author)  leshbob641 year ago
Great news and thanks for the kind comments :) I was going to suggest replacing the IR LED with just a standard LED just to make sure it flashes, then try a few different IR LEDs. I had to test a few as well before mine worked. It would be so much easier if I could see in IR! I think I was lucky defaulting on the 115200 baud rate.

Post a picture of your setup :)
nberndt11 months ago
You can Write a schedule to the roomba, thats what i did. I own the 534 PET without schedule Option. The scheduling Commands are described in the Open Interface Document (I will Look for a link), this is really quite straight foreward, some People have also attached bluetooth or wifi, in Order to get Constant Access to the roomba without cable.
However once you programmed it, theres no Need to use the cable anymore.
I will send you some more info later on...
nberndt nberndt11 months ago
Here#s the Interface doc: http://www.irobot.lv/uploaded_files/File/iRobot_Roomba_500_Open_Interface_Spec.pdf
ShaperG (author)  nberndt11 months ago
I've just fixed the formatting on the link. 
http://www.irobot.lv/uploaded_files/File/iRobot_Roomba_500_Open_Interface_Spec.pdf

Cheers for that. I've seen some of this info before when I was looking into it a while ago but could never be sure the scheduler worked for the 530 model.  

When I need my spare arduino, I'll have to give your method a go :) 
nberndt11 months ago
Hey, nice instructable. i was only wondering why you were not just plugging in the interface cable to the irobot and triggering a schedule directly on the roomba. That is actually the cheapest and easiest solution for the 5xx series from my perspective. I did that with my 534, working great!
ShaperG (author)  nberndt11 months ago
Hi nberndt,

I looked into interfacing with my Roomba (Robbie). But that would have meant removing the cover, attaching a cable and sending a command every time I want the roomba to turn on. I don't think you can program a schedule into the 534 (I've never seen any reference to a clock in this model). Correct me if I'm wrong :)

I wanted to keep everything factory standard and as compact as possible to make things cleaner. An interface cable might be cheaper (if you have one or can make one up easily), but a cable sticking out the top is asking for trouble, especially as it goes under furniture!

Mine has been running using this system for a few months now with no dramas :)

I would love to see what you have done with yours though!
joebob81 year ago
Seeing your Ible is what I needed to get started with arduino. I decided to go with a small form factor and purchased the Teensey 3.0. After I got it I found out that it has a build in Real Time Clock. I'm still getting all the parts rounded up for this project but Ill let you know how it turns out. Thank you.
ShaperG (author)  joebob81 year ago
Sounds great. If you end up using the built in clock you should definitely write your own Ible.
leshbob641 year ago
Up and running with not tweaks needed. I just had to get it really close to the Roomba and it worked like a charm. I have the board pushed into a gutted virtual wall that is connected to a Belkin WeMo switch (wifi enabled and allows me to schedule everything remotely based on rules). Here is a picture of the set up. Thanks again for creating this set up.
tbag1 year ago
What codes did you use for the Harmony Remote. I have the same Roomba (537 with same colour and everything) but didn't have any luck controlling it with the Harmony One.
ShaperG (author)  tbag1 year ago
Hi tbag,

On the MyHarmony website I used:

Manufacturer: iRobot
Model Number: Roomba 530

I tried entering 537, but the website (helpfully) says that this device is not recognised.
Try the 530 model number, from my reading it seems to be similar codes for almost all Roomba models.

I'm making up an instructable now with how I did it.
carlos66ba1 year ago
Cool project! Even though it is claimed that the clock of the arduino is not very precise, I bet it is still better than the mechanical clock in these timers.
ShaperG (author)  carlos66ba1 year ago
Thanks Carlos66ba. I was looking into implementing a software clock on the arduino (something like https://www.inkling.com/read/arduino-cookbook-michael-margolis-2nd/chapter-12/recipe-12-4) but I had a heap of these timers and thought it might be more energy efficient to turn the Arduino off rather than having it just waiting till the next scheduled time. I should put my power meter on it to see which uses more, the arduino or the timer switch.