I’m using the GrovePi+ on a Raspberry Pi 4 with Ubuntu Server (arm64) and components that are not supported in the default Firmware, so I implemented a custom one.
I use avrdude 6.2 for arm64 with gpio to upload the firmware with the following commands:
avrdude -c linuxgpio -p m328p -U lfuse:w:0xFF:m avrdude -c linuxgpio -p m328p -U hfuse:w:0xDA:m avrdude -c linuxgpio -p m328p -U efuse:w:0x05:m avrdude -c linuxgpio -p m328p -U flash:w:firmware.hex
This works fine and all fuses are ok, but when I now run
i2cdetect -y 1 it does not find the GrovePi+ at 0x04 anymore and I need to reboot the Pi. After the reboot it detects it again and I can use the firmware and all components are working.
Can I do something after uploading the firmware to “reset” the GrovePi+ without the need to reboot the whole Pi?