Roomba 530 and Scheduling

Inside the Roomba and Scooba and more, Cool mods, Repair and Upgrades - including the all new iRobot Create Kit. Let's void that warranty baby!
Milan
Posts: 6
Joined: May 14th, 2008, 4:51 am
Location: Germany

Roomba 530 and Scheduling

Post by Milan »

Hi, I don't know if this is already known...

if so, sorry, i just didn't find anything about it ;)

I've won a Roomba 530 about 2 weeks ago and until now I'm really happy with this little guy :)
The only thing that bothered me a bit was the fact that there seems to be no scheduling available for the 530. The scheduling remote i found is described to work only with the Models 535 and higher.

But I really thought this is a nice feature to have. So first I was playing with the thought to have a microcontroller backpacked doing the scheduling and "pressing" the clean button over the roomba interface, but reading the open interface specification made me curious - there are some opcodes described for the 560/570 only, but not the "Set Time"
and the "Scheduling" opcodes. So i started building a pc-to-roomba serial interface (similar to the ones that i now found in this forum :) ) and connecting it to my 530.

After sending some opcode commands to test the interface, i started to set the time and a schedule. And guess what, it works!
So right now he's hopefully cleaning my apartment while I'm at work... :D

Next step might be a pc program or a microcontroller based tool to set the schedule more comfortable..
User avatar
vic7767
Robot Master
Posts: 15556
Joined: January 14th, 2006, 7:31 pm
Location: Haughton Louisiana - USA

Post by vic7767 »

I know the op codes work on my 535. Let us know if your Roomba really accepted the time and a schedule and actually ran a mission.
rtsh
Posts: 7
Joined: May 14th, 2008, 4:16 pm

Post by rtsh »

Milan - that's very interesting. I'm about to buy a Roomba, and if it's possible to program the 530, then I'll get it. Otherwise, it's a bit more money and I'll have to get the 560. Can you let us know if it worked?
Milan
Posts: 6
Joined: May 14th, 2008, 4:51 am
Location: Germany

Post by Milan »

Well, I programmed him to run every day at 10 AM except saturday and sunday... yesterday for the first time and that definitely worked, because my girlfriend was working at home and she was kinda frightend when he suddenly started to clean on his own :lol:

I think I'll make him clean at the weekends on a time I'm home, so I can check if everything works and give you a feedback.
Milan
Posts: 6
Joined: May 14th, 2008, 4:51 am
Location: Germany

Post by Milan »

After more than a week now I can definitely say it works :D
User avatar
igors48
Robot Groupie
Posts: 76
Joined: April 17th, 2008, 5:54 am
Location: Ukraine

Post by igors48 »

Milan wrote:After more than a week now I can definitely say it works :D
And that`s great!!! :lol:
Roomba550 & Scooba340. !!!Sorry my English!!!
dshearon
Posts: 9
Joined: March 14th, 2008, 8:30 pm

Post by dshearon »

Is ther any way you could do a quick DIY write up? I am a bit of a Roomba noob and have a 530. I have a rootooth but cant get it to work for the life of me.
User avatar
vic7767
Robot Master
Posts: 15556
Joined: January 14th, 2006, 7:31 pm
Location: Haughton Louisiana - USA

Post by vic7767 »

What is not working ? The Rootooth connection or the commands sent to the 5XX Open Interface ?

The Open Interface commands for the newer 5XX model Roombas is different. You can find info here:

http://www.robotreviews.com/chat/viewtopic.php?t=7126
dshearon
Posts: 9
Joined: March 14th, 2008, 8:30 pm

Post by dshearon »

I am just a little confused about how to enter the OP commands. I have SCI status up and can input the 128 and press send which is the startup command but then how do i enter the multiple commands required for the schedule. I see the 167, but what is the syntax for the numbers afterwords and do i input them all and then hit send or do i do each one individually? for example what would i do if i have everything connected and wanted the roomba to clean at 12:00 pm. Tuesday through Friday?
User avatar
vic7767
Robot Master
Posts: 15556
Joined: January 14th, 2006, 7:31 pm
Location: Haughton Louisiana - USA

Post by vic7767 »

Go over to the hacker forum and download the "Roomba Status" program written by Black_64. Then either use a Rootooth, or comm cable to connect your PC to the 535.

All you have to do is wake up the SCI with a 128 command, then send the set clock command followed by the set schedule command for the start time and days of the week. I tried it tonight and it worked like a charm. I set it to clean tonight at 11:45 pm and at that time it played its little start up tune and rolled off the home base and started cleaning. Here are the commands that were sent.

128 (This wakes up the SCI for commands)

168, 5,23,22 (This set the clock for Fri at 11:22 pm)

167, 32,0,0,0,0,0,0,0,0,0,0,23,45,0,0 (This set the day & time to start, Friday at 11:45pm)

Other than the 128 command which the Roomba responds with a beep, none of the other two commands caused the Roomba to do anything, no beeps, no lights, nothing. But at 11:45 it started right up.
dshearon
Posts: 9
Joined: March 14th, 2008, 8:30 pm

Post by dshearon »

Thanks for the reply, Looks like I am having other issues I will have to deal with first as my roomba does not beep anymore when I send the 128 command. Thank you for typing that out, now that I see your syntax I understand how to schedule once I get it to accept commands.

Also, to clarify, does this work with the 530, I noticed you said 535 in the last post.
User avatar
vic7767
Robot Master
Posts: 15556
Joined: January 14th, 2006, 7:31 pm
Location: Haughton Louisiana - USA

Post by vic7767 »

The 535 is the lowest numbered model that is schedule capable and is the one I performed the tests on. However another poster has scheduled a 530 successfully.
Milan
Posts: 6
Joined: May 14th, 2008, 4:51 am
Location: Germany

Post by Milan »

dshearon wrote:Thanks for the reply, Looks like I am having other issues I will have to deal with first as my roomba does not beep anymore when I send the 128 command.
Maybe you didn't send the required number of data bytes after the opcode when you were trying to set the schedule, so the processor is in a waiting state. I had that too and resetting it by holding spot&dock for about 10 seconds solved it for me.
dshearon wrote: Also, to clarify, does this work with the 530
yep :)


Another thing about the "Day" value that comes after the schedule opcode: This is a databyte (8 bit) with the days represented by bit0 to bit6 and bit7 reserved.
Or explained in a more easy way: every day has its own value.

Value | Day
1 | Sunday
2 | Monday
4 | Tuesday
8 | Wednesday
16 | Thursday
32 | Friday
64 | Saturday

You can get the "Day" value which is needed to be sent by just adding the values of the days you want it to run.
So for example Monday + Thursday means: 2 + 16 --> 18 to send.
dshearon
Posts: 9
Joined: March 14th, 2008, 8:30 pm

Post by dshearon »

Thanks for the help guys, sorry for all the questions I am new to this stuff. So if I wanted the schedule to run Tuesday through Friday at 12:00 pm. I would enter 128 to start, then 168, 5,23,20 (edit for actual time) to set the time and then 167, 61,0,0,0,0,12,0,12,0,12,0,12,0,0,0 to schedule?

Do I just enter those Strings as is into the send window in Roomba status and click send?

I cant wait to get this working, I hate having to listen to that thing. Having it run while I am at work will be awesome.
User avatar
vic7767
Robot Master
Posts: 15556
Joined: January 14th, 2006, 7:31 pm
Location: Haughton Louisiana - USA

Post by vic7767 »

Yes, that is the correct syntax, just remember to seperate each option with the "comma" and you should be good to go.
Milan
Posts: 6
Joined: May 14th, 2008, 4:51 am
Location: Germany

Post by Milan »

Should be 60 for the schedule [Day] value (4+8+16+32), the rest is fine
dshearon
Posts: 9
Joined: March 14th, 2008, 8:30 pm

Post by dshearon »

Milan wrote:Should be 60 for the schedule [Day] value (4+8+16+32), the rest is fine
Good catch, Thanks again guys. I will try this when i get home and let you know the results.
dshearon
Posts: 9
Joined: March 14th, 2008, 8:30 pm

Post by dshearon »

You guys rock, it worked. I scheduled a test clean and it ran great. Wierd thing though, it still did not beep when I sent 128. I just entered the rest of the commands and it worked. I tried it a second time to set the actual schedule and still no beep. This was a great find, should be made a sticky as it will save people time and money. I was just getting ready to buy a more bowerful bluetooth card and was researching software to do this. Now I am all set. Thanks again.
User avatar
vic7767
Robot Master
Posts: 15556
Joined: January 14th, 2006, 7:31 pm
Location: Haughton Louisiana - USA

Post by vic7767 »

I forgot to mention that I only received the beep when sending the 128 command only once when I first sent the undocumented reset command 7.

When you send the 7 command it resets everything on your Roomba including the time and schedule as well as the charging timers.
benjaminchodroff
Posts: 6
Joined: September 15th, 2010, 5:10 pm

Re: Roomba 530 and Scheduling

Post by benjaminchodroff »

Thank you!!! I also can confirm that you *can* schedule a Roomba 530. In order to consolidate this entire thread, I thought I'd submit this post.

What you will need:
1. A Roomba 530
2. A Roomba Serial cable or Bluetooth. I'd suggest the easiest option is to go to http://store.irobot.com and purchase the iRobot Create USB Cable (Item Number: 4822). You can build your own for cheaper, but for less than $20 you can save yourself the hassle. The instructions will assume you have the iRobot USB Cable.
3. A copy of the "Roomba Status" program written by Black_64. You can download it for free here (See the attachment under the screenshots in the first post to download it):
http://www.robotreviews.com/chat/viewtopic.php?t=6941

Steps for Windows XP (can confirm it works inside of VMWare):
1. Take your Roomba 530, remove the dust bin, and pop the top grey plastic piece off. Underneath this plastic piece, you should see the cable port
2. Install Roomba Status on your computer
3. Plug the USB Cable into your computer. Do not plug it into the Roomba 530 yet
4. Accept the defaults as Windows identifies this new devices
5. Open up Control Panel, Double click on System, Go to the "Hardware" tab, and click the "Device Manager" button
6. In "Device Manager" window, expand "Ports" and note the COM number next to the "USB Serial Device" - Example "COM5"
7. On your Roomba 530, perform a reset procedure - Push and hold the "Spot" and "Dock" buttons together for about 10 to 15 seconds. You should hear the roomba beep. This makes sure everything is ready to go.
8. Plug the USB Cable into both your computer and the Roomba 530
9. Run Roomba Status
10. The first time you run Roomba Status, you will need to go to Menu->Settings
11. Enter the correct number of the COM Port of the USB Cable Example "5"
12. Enter the correct connection baud rate (The Roomba 530 default is 115200) and settings. Example: "115200,n,8,1"
13. Make sure "Serial Cable" is selected and click OK
14. Click the "Connect" button
15. You should now see the Virtual Roomba picture and other diagnostic information start indicating live settings. If you don't, you messed something up. Double check the connection, com port and connection settings, and try again.
16. In the dialog box above the "Connect" button, enter the following strings pushing "Send" after each one (Note, there will usually be no indication that anything is working - first try example schedule that you can test!)
(Do not enter the stuff in parenthesis)
128 (This tells the Roomba 530 to start accepting commands)
168, 5,23,22 (This set the clock for Fri at 11:22 pm. 1=Monday,2=Tuesday,3=Wednesday,etc.)
167,127,12,00,12,00,12,00,12,00,12,00,12,00,12,00 (This sets the Roomba to run every day at noon)

Once you perform this, click the "Disconnect" button
Unplug the cable, and your Roomba is now ready to automatically clean!

Explanation of the 167 command:
167,[day],[sunday_hour],[sunday_minute],[monday_hour],[monday_minute],[tuesday_hour],[tuesday_minute],etc.
The day is calculated by adding the days you wish to run together:
Value | Day
1 | Sunday
2 | Monday
4 | Tuesday
8 | Wednesday
16 | Thursday
32 | Friday
64 | Saturday

Example:
To run on Tuesday through Friday at 11:59PM, you would use the value (4+8+16+32) = 60, so:
167, 60,00,00,00,00,23,59,23,59,23,59,23,59,00,00

Thanks again to everyone in this forum! Really appreciate it - my floors will be so clean! :dance:

*EDIT*
I ran into problems on Windows 7 64 Bit with my instructions I posted earlier in this thread.
I fixed it by installing the iRobot drivers manually and installing mscomm32.ocx.

Get mscomm32.ocx here: http://www.ocxdump.com/download-ocx-fil ... nload.html

Register it by opening a command prompt in administrator mode, navigate to the ocx file and register it:
regsvr32 MSCOMM32.OCX

Then I went into device manager, found the device that was reporting a missing driver, pointed it at these drivers unzipped into a directory:
http://www.ftdichip.com/Drivers/VCP.htm

I then went into the device under ports in device manager and made sure it was set to the correct rate (115k)
Sorry for the lack of clarity (I didn't take detailed notes), but I hope this helps you. I got it working, don't give up hope! Oh, and I think I had to reboot Windows a few times (and for some reason install multiple drivers...). Good luck.
Last edited by benjaminchodroff on December 4th, 2011, 11:09 pm, edited 1 time in total.
Post Reply