Flashing the Firmware¶
To flash the firmware, you must first have the GrovePi library/repository installed so for this you must follow the Getting Started guide.
Once the library is installed on the Raspberry Pi, run the following commands to have the firmware flashed onto the GrovePi:
cd ~/Dexter/GrovePi/Firmware bash firmware_update.sh
This updates you to the latest version of the firmware which is the
NOTE TO OTHER LIBRARIES
1.3.0 firmware was recently released, lots of other libraries written in other languages other than Python are yet to be updated, so
they need to run on an older version of the firmware, specifically the
1.2.7 version can be found in
grove_pi_v1_2_7.cpp.hex. If you need to run on this older version, follow these steps to burn the firmware:
mv ~/Dexter/GrovePi/Firmware/grove_pi_firmware.hex ~/Dexter/GrovePi/Firmware/grove_pi_v1_3_0.hex.bak cp ~/Dexter/GrovePi/Firmware/Archive/grove_pi_v1_2_7.cpp.hex ~/Dexter/GrovePi/Firmware/grove_pi_firmware.hex bash firmware_update.sh
To run the entire suite of tests for the GrovePi follow these bash instructions:
cd ~/Dexter/GrovePi/Troubleshooting sudo bash all_tests.sh
At the end of this process you'll get a
log.txt file on your Desktop at
Also, to see with which version of the firmware the library installed on the Raspberry Pi works with you can go to
~/Dexter/GrovePi directory and run:
This should output a version number (of the GrovePi's firmware). Older versions of the firmware (<=
v1.2.7) won't get displayed when calling
pi@raspberrypi:~ $ python grovepi.py library supports this fw versions: 1.4.0
To see which is the version of the current firmware loaded on the GrovePi you can either run the above test (
... all_test.sh) from the
Troubleshooting/ directory or you can run these commands:
import grovepi print(grovepi.version())
There are also cases when the GrovePi doesn't respond to requests. In this situation, you would normally see an exception appearing in Python. More often than not, these can be the source of problems:
- A non-present firmware on the GrovePi.
- A mismatch of versions between the firmware and the library on the Raspberry Pi.
In both of these situations, re-flashing the firmware is all it's needed.
Building the Firmware¶
There may be cases where additional modification to the firmware is required to accommodate someone's particular requirements. In this case, building the firmware and then uploading it is crucial. During our production, we use PlatformIO along with Atom IDE.
Once you get them both installed on your machine, open Atom IDE and add as a project the
/Firmware/Source/grovepi directory. The added directory will have the following structure:
Next, click on the build button or use ALT-CTRL-B key combination to build the firmware with PlatformIO. Once that it's done, head over to
/Firmware/Source/grovepi/.pioenvs/grovepi directory and notice the
firmware.hex. That's the firmware that was just built. You can then burn that to your GrovePi.
Resetting the GrovePi¶
To reset the GrovePi from your Raspberry Pi, run the following command provided you have installed the GrovePi library on your image:
avrdude -c gpio -p m328p