Arduino Forum

Topics => Robotics => Topic started by: tobi on Jun 13, 2018, 10:01 am

Title: Wake Up Roomba 615
Post by: tobi on Jun 13, 2018, 10:01 am
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 :-)

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
Title: Re: Wake Up Roomba 615
Post by: makersecrets on Jun 14, 2018, 01:25 am
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.
Title: Re: Wake Up Roomba 615
Post by: tobi on Jun 15, 2018, 10:06 pm
Hi makersecrets,

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

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

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

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

Greetz!
Title: Re: Wake Up Roomba 615
Post by: Northof49 on Jun 28, 2018, 10:52 pm
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.