I'm having a problem with a fresh build of a Blue Dot ROV. I've got everything hooked up and running, but one of the motor drivers (the left side) won't reverse direction on either motor. Vertical only spins one way whether I push the controller up or down, horizontal only spins one way whether I push the controller forward or back. The right side behaves normally. Watching the cytron's lights, I see that the right side lights up M1A for up, M1B for down, M2A for forward, M2B for reverse. But the left side only lights up M1B for either up or down, M2B for either forward or reverse. The jumper connections all appear to be in the right places.
If I disconnect DIR1, the vertical control only lights up M1A in both directions. If I disconnect DIR2, the horizontal control only lights up M2A in both directions. So there must be some sort of connection there, because it lights up B when connected. But somehow the Pi is not telling the Cytron the proper direction and is sending the same signal no matter what. Any idea what's going on?
Thanks for the update. Good to hear it is all running! Hopefully I will be doing the same soon :-)
I suppose I owe some updates on this post. I eventually realized my Pi was bad, when it stopped booting up. So I replaced my 3B+ with a 4B, since it has the exact same form factor. Then I blew one of my Cytron boards. :( Replaced that. Eventually I got everything wired back up again but I once again ran into the issue where one side of the ROV would only spin motors in one direction. Only this time it was the right side. Switching the leads between the Pi and the motor boards just moved the problem to the other side.
I did dig into the code again and found what I think is another error, which I'll report on Github, but it didn't fix this issue. In the end I decided to try different pins. Since the GPIO pins on the Pi are all programmable, but they're not entirely identical, I switched to pins that don't have extra capabilities. I moved the DIR1 lead from pin 11 to 7 (GPIO 17 to GPIO 4) and the DIR2 lead from pin 15 to 18 (GPIO 22 to GPIO 24). Then of course I had to update the Cytron script to use the new pins.
And that works! I'm not sure whether it was the switch from a Pi 3B to a 4B, or if there was something damaged on the Pi's pins when the left-side Cytron blew up. Either way, the propellers are spinning perfectly on the new pin assignments.
I noticed the pin photo plug-ins are on the outside of the Pi... the pinout diagram shows the motor driver wires on the inside row. I used the pinout diagram and all good.
For clarity on my first question, the GPIO connections are different from the PDF manual and your YOUTube GPIO connection. Tried both and failed to generate any kind of signals to the Motor Driver. Apps looks good and mother armed.
help plz. also, I acquired the micro disk from you last year. Got discouraged and now trying to get help.
I’m having problem linking any of my motor driver to raspberry , which wiring connections do you use ~ INSTRUCTION PDF MANUAL OR YOUTUBE. I have no luck in both. Viewed and tilt camera works fine- motors armed but no help
. if you can, send me yours, plz. Thanks
I discovered that this was a coding error in Cytron27Aug2019.py, which contains the following:
def LV(y): if(y>=0): GPIO.output(DirLV,GPIO.HIGH) l.start(abs(y)) if(y<0): GPIO.output(DirLV,GPIO.LOW) l.start(abs(y)) def L(z): if(z<=0): GPIO.output(DirL,GPIO.HIGH) lv.start(abs(z)) if(z>0): GPIO.output(DirL,GPIO.LOW) lv.start(abs(z))
If you look close, the LV function has l.start and the L function has lv.start, these are reversed. I swapped these values and the motors started working properly. I will attempt to submit a PR or at least an issue in the Archimedes2 repo.
I just connected the right side jumpers to the left side Cytron and the Cytron behaved as expected, reversing properly. Could this be a case of a bad Pi? How would I double check that?