So this thread is similiar to this one: IRobot Create 2: Powering Up after Sleep
All except I am trying to do this on an RPi.
I have followed these intstruction: https://www.irobotweb.com/-/media/MainSite/PDFs/About/STEM/Create/RaspberryPi_Tutorial.pdf
I have put together the little RPi top that uses the buffering chip. Everything is working great.
However I cannot get it to wake over serial!
iRobot even has examples of this, I can't get it to work.
GPIO.setmode(GPIO.BCM) # as opposed to GPIO.BOARD # Uses 'import RPi.GPIO as GPIO' GPIO.setup(17, GPIO.OUT) # pin 17 connects to Create2 BRC pin GPIO.output(17, GPIO.HIGH) time.sleep(1) GPIO.output(17, GPIO.LOW) # pulse BRC low to wake up irobot and listen at default baud time.sleep(1) GPIO.output(17, GPIO.HIGH)
They also have an example python script with this code:
GPIO.setmode(GPIO.BCM) # BCM for GPIO numbering GPIO.setup(17, GPIO.OUT) # Make pin 17 (which is hooked up to the BRC pin) an output while True: # Pulse the BRC pin at a low duty cycle to keep Roomba awake. GPIO.output(17, False) sleep(1) GPIO.output(17, True) sleep(59)
Now this code runs perfectly fine without issue on the RPi. I pip installed all the right libraries. I am using Python3.7, every other function over serial is working fine.
But this wake command does not work. It also does not prevent it from going back to sleep!
I followed the instruction for making the 3.3v to Logic circuit exactly from here: https://www.irobot.com/~/media/MainSite/PDFs/About/STEM/Create/Create_2_Serial_to_33V_Logic.pdf Again I made the one at the bottom with the '5V-tolerant 3.3V buffer' which does explicitly show the green pin being soldered to IO17. Which is where I soldered it.
The only different is I put the pi hat on a RPi 3 rather than an RPi, I assume the GPIO pins still align the same?
Can anyone think of any more ideas? I am running out of them myself.