Sorry for asking again, but there is still no solution and I am not able to comment this question from Aaron: Cannot disable sleep in passive mode for iRobot Create 2

Create 2 spec says:

In Passive mode, Roomba will go into power saving mode to conserve battery power after five minutes of inactivity. To disable sleep, pulse the BRC pin low periodically before these five minutes expire. Each pulse resets this five minute counter. (One example that would not cause the baud rate to inadvertently change is to pulse the pin low for one second, every minute, but there are other periods and duty cycles that would work, as well.)

Here you see the signal at the BRC pin at the connector:


Is there a newer firmware? Roomba output:

bootloader id: #x47135160 6BFA3FFF
bootloader info rev: #xF000
bootloader rev: #x0001
Roomba by iRobot!
battery-current-zero 258
r3_robot/tags/release-3.2.6:4975 CLEAN
bootloader id: 4713 5160 6BFA 3FFF 
assembly: 3.3
revision: 0
flash version: 10
flash info crc passed: 1

If Roomba is already sleeping it wakes up from the pulse. So there is no chance for not receiving it.

Any idea?

Roomba with Raspberry Pi


2 Answers 2


We are also seeing the same problem and have identified a few things which specifically help.

We are trying to get it to stay awake on the charger so we can monitor it and therefore tried toggling into full then passive modes, however encountered a crash where it freezes communication when it toggles back in to passive mode afterwards. stack overflow link

A few things to verify:

Change Interval

  1. It looks like you are sending it out once a minute. Have you tried every 30 seconds? See the link below but this could be the issue where it goes to sleep every minute. Given you have older firmware this could be an issue. (Guessing it isn't, but need to note it)

One link I found states that there may be a bug in the firmware for the 600 series which actually makes it fall asleep after 1 minute and also not wake up: "The latest Roomba 600 models will go to sleep after 1 minute on the dock. Unfortunately iRobot has disabled the serial communication when Roomba is asleep on the dock. We think this is a bug in iRobots firmware and we hope they will fix this soon." link

Double number of pulses

Have you tried sending out 2 pulses in a row, a few seconds apart to see if a fast interval would work and replicate the second pulse, but faster? A solution like sending out those pulses every minute could possible make it work.

Send pulse when communication stops

If you are monitoring the packet rate, you can send a pulse when the packet rate goes to 0, restarting it immediately if it responds while asleep.

Charger vs not

Are you trying this on the charger and having it fail? I would suggest trying to see if the behavior is different while on the charger and off as we have seen a fully responsive robot off the charger for toggling all states but are having trouble with stability of communications while charging where it freezes and then re-appears minutes later which confused our team a lot.

Note: We have firmware version: r3-robot/tags/release-stm32-3.7.5:6216 so it is significantly newer (3.7 vs 3.2 than yours).


I have the same problem in that pulsing the BRC line keeps the Roomba alive when its OFF the charger, but not when its ON the charger

I'm starting to wonder if the "iRobot Create 2 Open Interface (OI) Spec" was only referring to the undocked state

To disable sleep, pulse the BRC pin low periodically before these five minutes expire. Each pulse resets this five minute counter.

  • $\begingroup$ If this robot is on the dock, this problem is a duplicate of robotics.stackexchange.com/questions/15433/… . Please note that I am an iRobot employee, but the postings on this site are my own and don't necessarily represent iRobot's positions, strategies, or opinions. $\endgroup$
    – Steve
    Jul 18, 2018 at 13:11

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.