Grove i2c motor driver with GrovePi

Just got the board back.

I’m leaning even more strongly to this because the behavior when you remove the sensor; it seems to work, and the line seems to be released.

I am new to the hardware side of things.

enough to pull the pullup resistors off the sensor

Can you show me where this resistor is on the board? I believe this is the one I have (Link to the product page)

Hey Exadon,
I just checked the eagle design files for the Motor controller and it does not look like that it has pullups at all on the motor controller. This can or cannot be a problem and the only to way to check that would be with a logic analyzer. There are two things that you should try: 1) try connecting that motor controller to the GrovePi with the shortest cable that you have and 2) try connecting the motor shield directly to the raspberry pi on the I2C pins, VCCC and GND to see if that helps.

-Karan

Hi all,
I have same problem. Do you solve the problem?

Sadly I was never able to get it to work. Even when connecting the driver directly to the PI.

Has anyone ever gotten this to work?

I have exactly the same problem (IOErrors and I2C bus fail after i2cdetect command) with my setup (motor driver 1.3, GrovePi+, Pi B), with and without external power supply.

Hi @ErPi,

We haven’t tried the motor controller again and other users had problems, even when connecting it to the Pi. Can you try the example that we have here and tell us how it goes. Please do read the notes given in the comment section of the program. It is pretty sensitive to errors and commands sent to it, can get stuck.

-Shoban

Hi @Shoban,

Thanks for the quick response.

I have tested it with the example script and, after many failed attempts, managed to get it to work. It is indeed very sensitive and the only reasonably certain way to get my motor to spin is when I reboot the PI, run “avrdude -c gpio -p m328p” to reset the GrovePi and then reset the driver board by pressing its reset button. Make sure NOT to run any i2cdetect commands at any time. If you do, you will have to start all over again.
If you then run the example script it will probably fail with the dreaded IOError nr. 5. If you run it again after a few seconds, it will work correctly and your motor will start to spin. From then on it appears to continue to work fine. Well at least a dozen times or so. Haven’t done more extensive testing.
So it looks like the i2c bus needs a little while to initialize after a clean start or maybe it does so after a failed first attempt to address it.

Not an ideal situation but at least I can continue my project. :slight_smile:

Cheers,

Erwin

Hey @ErPi,
We had seen pretty similar behavior when we had tried it and were and there was not a lot we could do because the firmware on the motor driver was not available to hack around and test. It looks like Seeed has just released that firmware and the next time we are working on the motor driver, we see if there is a way to make it more stable. Not ETA on this though.