Wake Up Roomba 615

Hi all,

I am working with my Roomba 615, to make it a little bit more flexible.
E.g. let it run via remote command.

To do this, I use an Arduino Nano.
In general, it works fine.
I can start the robot and make it run.
Even get sensor data.

But, I cant wake it up from sleep.
This should be the easiest part, but for me, it is not :slight_smile:

The general specification (and all of the hundreds of forum and google posts..) say, that one has to send a digital LOW signal (500 ms) to Roomba Pin #5 (Device Detect Pin or Baud Rate Pin).

This code should do the job:

pinMode(ddPin, OUTPUT);

digitalWrite(ddPin, HIGH);
delay(100);
digitalWrite(ddPin, LOW);
delay(500);
digitalWrite(ddPin, HIGH);
delay(2000);

Where ddPin is my Digital Pin on the Arduino Nano Board (currently pin #1, but I tried also others).
This pin is direcly connected with Pin #5 on the Roomba Interface.

Then: GND of Arduino is connected with GND of the Roomba.

But, it does not work.

Any help or ideas?

Greets, Torben

Hi Tobi,

Try to put a delay just after pinMode(ddPin, OUTPUT);

So your code will become:

pinMode(ddPin, OUTPUT);
delay(2000);

digitalWrite(ddPin, HIGH);
delay(100);
digitalWrite(ddPin, LOW);
delay(500);
digitalWrite(ddPin, HIGH);
delay(2000);

Your pin might not be switched to an output straight away.

And also maybe try to play with the delay of 500ms increase/decrease.

Hi makersecrets,

Thanks for your ideas.
Unfortunately, it does still not work :-/

Any other ideas?
I am quite confused, because everything else works :slight_smile:

EDIT: is there a way to check the pinmode, or the mode of the pin?
E.g. something like

If (pinmode(ddpin) == OUTPUT) { ... }
?

Greetz!

You could hook an led up to power through a resistor, and hook it up to the pin on the nano. The led should light up only when the pin goes low.

Have you tested manually that putting ground to that pin causes the roomba to wake up? Get a momentary push button switch and see if holding it down for half a second or more wakes up the roomba.