1) VOID WARRANTY
2) REALLY ANNOY YOUR SIGNIFICANT OTHER
3) CAUSE YOUR ROOMBA TO COMMIT SUICIDE BY RUNNING UNDER YOUR CAR
THIS IS SOLELY FOR YOUR INFORMATION AND BETTER UNDERSTANDING OF HOW THINGS WORK. YOU HAVE BEEN WARNED
(Sorry, had to put my legal disclaimer in there)
Ok, this thread is my way of showing what I know at any given point in time about the comm traffic between the roomba and OSMO. If you see anything I'm missing, anything I've gotten completely wrong or have thoughts of your own, please feel free to throw them in here. :D
so far i've been able to toy with the roomba to make it produce the date key that rj5555 found in his thread on serial communciation (http://www.robotreviews.com/chat/viewto ... t&start=60). I think I have a basic idea of what is going on, so let me see if the group agrees...
The simulation goes like this...
1) power up the roomba (update commands dont seem to work on an off roomba) ... either manually power it up or toggle DD
2) send the following string:
<CRLF><CRLF>contains 1 image(s):<CRLF>
1: roomba DG256 2005-08-11-1007<CRLF><CRLF><CRLF><08>
where <08> is Chr(08) in VB.NET
3) the roomba will reply with
(thats my program's output.. the string is actually 18 5 8 11 17 7 16 in decimal)0 0x12(18)
1 0x5(5)
2 0x8(8)
3 0xB(11)
4 0x11(17)
5 0x7(7)
6 0x10(16)
this seems to break down into
byte 0: magic byte? header byte?
byte 1: date code year (2 digit)
byte 2: data code month (2 digit)
byte 3: data code day (2 digit)
byte 4,5: revision number (???) 4 digits
byte 6: packet end byte? checksum? options bits?
now an interesting variation on a theme is that if you send TWO Chr(8) bytes as done in the referenced post you get the reply TWICE! ...
so it looks like 8 is the command to return the current version of the firmware. To test this, I sent:
this gives me the exact same reply as before. It seems that the three <CRLF> puts the system into command mode and any bytes sent after that are the command packets.<CRLF><CRLF><CRLF><08>
So using this, I went from 0 to 255 to see how many one byte command there were and what they did... i only found 2... 0x07 and 0x08.
These commands are
7: reset system
8: get firmware version
The interesting thing about #7 is that on my disco it gives me
whereas doing a cold reset (removing battery and putting it back in) gives mebl-start
2004-08-31-1548-L
Roomba by iRobot!
MC9S12E128
2005-08-11-1707-L
battery-current-quiescent-raw 535 battery-current-zero 521
The difference being the first character... so I'm going to call this a soft-cold reboot.?bl-start
2004-08-31-1548-L
Roomba by iRobot!
MC9S12E128
2005-08-11-1707-L
battery-current-quiescent-raw 535 battery-current-zero 521
Once I get my OSMO I suspect I'll find that the flash command is probably a multibyte command that operates pretty much like what I outlined above.[/b]