I am trying to use my GoPiGo3 with my raspberry pi but they don’t seem to connect well to each other.
When I try to to update the Firmware of my GoPiGo3, I get this error:
pi@raspberrypi:~Dexter/GoPiGo3/Firmware $ bash gopigo3_flash_firmware.sh
No SPI response. GoPiGo3 with address 8 not connected.
Firmware upgrade is needed
Attempting to upgrade firmware.
Using interface file 'rpi2.cpg' for RPi version 'RPI3'.
/home/pi/Dexter/GoPiGo3/Firmware
/home/pi/Dexter/GoPiGo3/Firmware/GoPiGo3_Firmware_1.0.0.bin
Updating the GoPiGo3 Firmware with '/home/pi/Dexter/GoPiGo3/Firmware/GoPiGo3_Firmware_1.0.0.bin'
openocd: error while loading shared libraries: libusb-1.0.so.0: cannot open shared object file: No such file or directory
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "build/bdist.linux-aarch64/egg/gopigo3.py", line 244, in __init__
IOError: No SPI response. GoPiGo3 with address 8 not connected.
But I do have a green light on my GoPiGo3 led indicating the connection is working (I suppose).
My distance sensor is working but that’s it.
And when I try:
sudo apt-get install libusb-1.0-0
I get:
libusb-1.0-0 is already latest version (2:1.0.22-2).
Thank you for responding with those specific answers. Yes, I can definitively say TWO THINGS THAT ARE WRONG
You are trying to use a 64-bit OS version which will cause you no end of troubles
BUT MOST DEFINITELY A PROBLEM IF YOUR ROBOT IS A GoPiGo3
You are trying to use a 10 year old Raspberry Pi Model B - That model only has 26 GPIO pins, a single core running at 700MHz, only 256MB or 512BM of RAM.
QUESTION: Is the color of the robot’s control board red, green, or blue?
(GoPiGo3 will probably be red, and an original GoPiGo will probably be green. I think there are some blue boards running around but I don’t know what they are.)
I don’t know about compatibility of an original Pi with the GoPiGo3, but if it will actually work my guess is that it will run the best by using the Raspberry Pi OS Lite (Legacy) which does not burden with a desktop.
The quickest way to know may be to fire up the official GoPiGo OS v 3.0.2 operating system
I flashed an archive of a Buster OS in order to have Python 3.7 and not Python 3.9 installed default. Because it caused troubles of Firmware version afterward if I remember well.
@cyclicalobsessive,
That’s not a “Bullseye kernel”. A 64 bit kernel image has shipped with Buster since day one, but you have to select it in the config.txt using something like arm64=1. I actually have Charlie set to selectively run either a 32 bit kernel or a 64 bit kernel based on the position of dip-switch 5.
Since he’s using (I am assuming), a plain-vanilla Buster, (or Buster Legacy), all the software is in the 32bit userland and only the kernel is 64 bit.
However, I strongly endorse the idea that:
That people STOP EFFING WITH THE FIRMWARE!
If you’re getting “firmware error” messages, the problem is NOT the firmware - rather there is a significant configuration issue with the operating system and installed libraries that is causing it to LOOK like you have a firmware issue. Trust me on this one. I have borked up so many installs and have seen things go all pear-shaped in ways “that would cross a rabbi’s eyes!”, (Fiddler on the Roof), and the solution has ALWAYS been to get the configuration correct.
Get, and flash, the latest GoPiGo O/S which is 3.0.2 and use that. The GoPiGo O/S is “pre built” and thoroughly tested by both the folks at DI/MR, AND folks like us at the sharp end of the spear who actually use the darn stuff. It is pre-configured and is virtually guaranteed to work out-of-the-box first-time. Seriously! Nicole and her crew work damned hard to make this thing as bullet-proof as possible so that people with no clue about robotics who are given 20 GoPiGo-3’s and a classroom full of students don’t look like a donkey’s [back-side].
AFAIK, (@cleoqc, correct me if I am wrong), the GoPiGo-3, regardless of board revision or the size of the header, only uses the first 26 pins. The rest of the pins are just “carried through from top to bottom”, so that if you want to use a 40-pin daughter board that needs signals on those extra pins, you can use it.
Because it only uses the first 26 pins - and earlier GoPiGo-3 boards only have a 26-pin header - theoretically[1] you can run a GoPiGo-3 on a Pi-1B. Note that I have not tried it and I suspect a Pi-1, even if it worked, would be woefully under-powered.
I would strongly suggest that whomever uses a GoPiGo-3 use a Pi-3 as a minimum usable Raspberry Pi.
It seems likely my guess was not correct, and is more likely that @gabriel.cahu-penhiri actually has a “Raspberry Pi 3 Model B v 1.2” mated to his GoPiGo3 as indicated by the firmware update “seeing” an “RPI3”.
I do see in my notes that pins 27 to 40 are “unused” by the GoPiGo3 - so perhaps an original 26 pin Raspberry Pi Model B could run Pi OS Legacy Lite with the GoPiGo3 software installed via curl from github, with the addition of a USB WiFi dongle and function reasonably well for basic programs in a pinch. It is so hard to get a Raspberry Pi right now, someone just might show up with a 10 year old Pi.
Bulk “bot purchases” for the purpose of tying up the market should be an anti-trust action because it artificially drives up prices.
If I remember rightly, Nicole has mentioned that a Pi-3 is the minimum supported Pi, though it could work on a Pi-2. A Pi-1 may well choke due to memory constraints, though it would be an interesting project to try, just for the “grins and giggles”.
P.S.
Actually, they’re pretty easy to get - IF you are willing to pay a full order-of-magnitude more for the beastie.
Ok so my problem is partially resolved but there is still a problem.
My sensors and the rest cannot work at the same time now.
It is eather:
my distance sensor works but my Read_Info.py does not (No SPI response. GoPiGo3 with address 8 not connected)
my Read_Info.py works but not my distance sensor (No such file or directory: ’ /dev/i2c-1’)
depending on my /boot/config.txt configuration.
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
dtparam=spi=on
When i leave it like that my sensors don’t work, and when I uncomment the first 2 my Read_Info.py doesn’t work.
I am using a 32bit OS now.
Am I missing something ?