I have an RPi B 2 (newest one). I used the image Dexter provided for GrovePi. I followed the online documentation: updating and upgrading using apt-get, and I ran the update tool that is on the desktop view. It seemed to update the firmware and key software.
The blink.py and all other programs fail with IOerrors. I ran the firmware check script and it failed. I use sudo to run everything, so root access is not at issue.
Tested bottons, sensors, and LEDs. Total failure with IO errors.
I ran the I2C check and got “08” in the fifth position on the first row, versus the “04” in the second position on the first row.
I see many undocumented fixes in this blog:
- enable I2C in raspi-config
- enable use of sensor reads without root accesss: sudo adduser pi i2c
- a fuse fix: grove_setup1.txt is the script to fix.
I am very overwhelmed. Is there a very reliable setup procedure? It seems like pieces are all over the website and the blogs. Very frustrating.
I am sorry for the frustration. Looks like the GrovePi yhat you have got has the wrong firmware burnt on it. It should be a simple fix to get it working. Can you follow the guide here and run the update script: http://www.dexterindustries.com/GrovePi/get-started-with-the-grovepi/updating-firmware/ . This would update the firmware and make the GrovePi work.
Do let us know if this helps.
First, thank you for the quick reply. I appreciate it.
So the page you sent me to speaks to the ongoing confusion in documentation:
Specifically, "Before starting, connect the four solderpads and attach a jumper wire from pin D4 to the reset pin on the 6 pin ISP header "
My understanding is that this jumper is no longer needed (from other information on your website).
Do I need to do the jumper?
Also, I think the dexter update tool on the raspian desktop runs the firmware uploader, and I’ve already done this.
I found the “no jumper” claim for the new GrovePi board (I have the + version):
“The GrovePi board is fully compatible with the previous GrovePi board, but comes with a few minor upgrades. In particular, we’ve made it easier to upload firmware directly from the Raspberry Pi. Previously, to upgrade the firmware, you were required to connect jumpers on the board. Now, firmware can be updated automatically with no changes to the board.”
But it doesn’t tell you how to update the firmware. The documentation is all over the place, and there are old and new versions and comments. It’s maddeningly complex.
Okay… I tried everything. No change. The firmware seems to load. Confirms fuses ok and all that. Can’t even read the firmware version.
Can you post the output that you get when you run the update script and also when you run
sudo i2cdetect -y 1 after it.
Sorry for the frustrating experience with the site. We have been moving the site to a newer platform and the pages have not been updated for some time. We are going to start updating the pages in ASAP.
I did a lot of late night debugging. Here is what I learned:
- Bottom line is that I fixed the problem. But there are systematic problems with the B 2 using the GrovePi+.
- How I fixed it: I had to burn the fuses with a modified version of what you posted to the forum on another post: grove_setup1.txt. I had to run it twice to get the proper configuration. Modification was the firmware version --> 1.2.4 versus 1.2.3.
- Then it worked. Except there are lots of IOErrors, even when it’s “working”.
- I think I proved to myself that the B 2 draws too much power, and the signals to and from the sensors are weak. How I proved it:
I created SD Cards for three models: B 2, B+ and A+. Ran various sensors and other devices. Results:
B 2: Frequent IO Errors
B+: Occasional IO Errors
A+: Zero IO Errors
My power was a high current (2.5 Amp) power brick. That’s very healthy as a power source.
I did slow the execution of the code on the B 2, and that greatly reduced IOerrors. That’s not surprising.
I hope this helps!
Thanks a lot for testing the GrovePi in depth. Slow execution of the program indeed causes less errors but it is a bit surprising that B2, B+ and A+ throw less errors. We’ll try them out and try to figure out the difference.
I am extremely sorry that it took that long for you to get it working.
Just a heads up, we’re working to update the explanation; it was a little dated. Thanks for all your feedback and help with this!