I'm using the Delphi example to command my Create 2, I just adapted the demo code to Unicode (DelphiXE). I use the original iRobot USB to serial cable.

My Create 2 seemed to be responding fine to all the commands send via serial yesterday and correctly received all sensor data back this morning, until I recharged the battery. Now when I send "7" "Soft reset" the robot attempts every time to start a clean cycle. It also attempts to start the clean cycle when I press the clean button. It tells me to move the Roomba to a new location, which is normal in cleaning mode because my wheels are not touching my desk. Communication via serial seem to be fine because I still get the Soft Reset response texts in the log memo of my app when I use the 2 buttons method to soft reset my Create 2, so there is still communication both ways.

I must say I had the same yesterday after charging but after a while unexpectedly, don't know why, the robot responded again fine to my commands.

It really seems to me the Create 2 is stuck in the Cleaning mode, or am I missing something?

BTW, I also tried to fix the problem by removing the battery.


2 Answers 2


I think I found the solution myself. When I send a "128 255" opcode to my Create it seems the robot is switched out of Clean mode, and back in to programming mode.

There is no mention anywhere in the specs of opcode "255", nor is there any mention of switching off Clean mode in the specs either.

  • $\begingroup$ 255 is not a valid opcode. 128 will enter Passive mode, which allows programming. $\endgroup$ Mar 25, 2016 at 15:26
  • $\begingroup$ 255 works for me. Sending 128 does not enter passive mode, even removing the battery does not enter passive mode $\endgroup$
    – xavier22
    Mar 27, 2016 at 2:11
  • $\begingroup$ When stuck in Clean mode. $\endgroup$
    – xavier22
    Mar 27, 2016 at 2:33
  • $\begingroup$ Sending a 128 will enter Passive mode. Passive mode does not stop the robot from cleaning. If you want to stop the robot cleaning, send 135. $\endgroup$ Mar 30, 2016 at 20:39
  • $\begingroup$ 255 is not a valid OI opcode. It shouldn't do anything, but if it does produce any behavior, it is not part of the OI and should be considered "undefined behavior". $\endgroup$ Mar 30, 2016 at 21:41

Your robot is fine.

When you send a 7 to reset the robot, you are also exiting Open Interface Mode. If the robot was in a cleaning cycle when you send the 7, it may under certain circumstances resume cleaning after the reboot. This is a feature that allows the Roomba to recover from errors while cleaning. This can give the appearance of being "stuck" in cleaning mode.

Pressing the Clean button will also start a cleaning cycle.

  • $\begingroup$ Yes, sending 7 will attempt to resume Clean mode, thats not what i want. $\endgroup$
    – xavier22
    Mar 27, 2016 at 2:16
  • $\begingroup$ Sending a 7 performs a powered reset of the microcontroller. It's not really part of the Open Interface but we documented the feature because it can be useful under some circumstances. $\endgroup$ Mar 30, 2016 at 20:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.