GrovePi and 9DOF IMU

IS there any support with the GrovePi and this IMU?

We don’t support this sensor directly and do not have code for it, but this sensor is compatible with the GrovePi and can be used with it.

You would have to port the Arduino library over to Python to make sense of the data and to use it.


It’s an I2C sensor, so you can interact with it directly using code on the Raspi.

The I2C ports are pass through.

You could use the GrovePi as a proxy, but it would throttle the requests and require firmware modifications.

There is an Arduino C library here that you could use:

Thanks for the reply,

I think I’ll simply wrap the c source and use it in python.

After toying with the firmware and that package I’ve got a lot more questions about the GrovePi now I’ll TLDR at the end.

Right, I already found the Library on github. I used it and applied it to the GrovePi’s firmware. It programmed fine and worked, a 9DOF reading took ~.8 seconds (slow). But my chip broke when…

I wen’t to restore the original firmware, this time running the ‘’ and it broke the chip on the grove. Rather it just became unresponsive and I can’t see on my RaspberryPi’s ‘i2cdetect.’

Uh, I’m kinda at a loss for words that the GrovePi’s package comes with faulty firmware? or just a bad script for flashing it? When I compile the v1.1 firmware the .hex file provided and compiled one are extremely different. What’s up with that? If it’s cross compiling the native environment shouldn’t effect that?

Either way, I ordered a few new 328 chips, is there a guide on flashing a blank chip with the grove firmware?

  1. Why did the brake the chip?
  2. Why do the .hex files of the provided ‘grove_pi_firmware.hex’ and a newly compiled ‘grove_pi_v1_1.ino’ differ so much?
  3. Are there any guides on flashing a blank 328 chip using the grove? (so that I can put the original firmware on it)

The firmware update should not break the chip, at the worst the firmware update process somehow failed and the firmware was not written properly. Can you try updating the firmware again and see if the GrovePi shows up on i2cdetect. Just make sure that the jumper is connected and nothing else is connected to the GrovePi when updating the firmware.
If it does not then can you post the output of the firmware update process.

We don;t have an exact answer why the hex files are so different. Even on our end everytime we compile the HEX file, every time its different. Do let us know if you find anything about it.

If you end up replacing the chip, just change the fuse settings first : avrdude -c gpio -p m328p -U lfuse:w:0xFF:m,avrdude -c gpio -p m328p -U hfuse:w:0xDA:m and avrdude -c gpio -p m328p -U efuse:w:0x05:m and then run the firmware update.

Sorry for the troubles.


I’ll try this once the replacement 238’s arrive in the mail.

I’m curious if it will work since the GrovePi can’t be detected on the i2c bus anymore (verified on multiple RPis’). I don’t think just replacing the chip will make it addressable by the RPi again. And obviously if it’s not on the i2c bus - programming it won’t be an option.

But I’ll wait and see hopefully the replacement comes tonight.

The programming should work because we use the SPI for updating the firmware rather than I2C or UART. You should at least give the firmware a try again. I am pretty sure that the firmware somehow got corrupted and re-uploading the firmware should solve your problem.


I guess the second times’ the charm, It worked! That’s great, thanks for all the support.

Great to hear that it worked.

Sorry for all the troubles.


Hi Matutter,

I am trying to get the module IMU 9DOF to work on raspberry pi. So far I haven’t find any library on google. And I have no Idea how to get it work. Would it be possible to get the library / firmware?
I’m kind of a noob when it comes to raspberry and Python. I have to use this module for a project and I’m stuck.


I didn’t interface with it in python, but this link has a great tutorial.

There is this available on Github. We haven’t tried it but might be you best bet.

Do let us know if this works for you.


Thanks for this quick answer I’ll have a look.
I’ll let you know

  • Lki