We are working on a project where RaspberryPi (with BrickPi3) is used as an I2C slave. It involves acquiring values from gyro and motor encoders connected to BrickPi and sending it over RaspberryPi I2C to Zolertia mote acting as I2C master. We are using GPIO 18 (SDA) and 19 (SCL) on RPi for the I2C communication with the master (zolertia mote). As the reset pin of BrickPi is connected to GPIO 18 of RPi, every time there is data on the bus, BrickPi gets reset and hence we are not able to read the sensor data continuously.
I wanted to know if there is any way I can disable the reset pin so that I can have a continuous data exchange over I2C between RPi (slave) and zolertia mote(master)?
I can’t speak directly to the BrickPi, (I have a GoPiGo named Charlie), but if the implementation of the BrickPi is anything like the GoPiGo, it would require either a “cut-and-jumper” modification to the BrickPi’s hardware controller, or a firmware update.
It is designed so that the hardware controller has programmatic control over the Raspberry Pi. (i.e. The “power” button shuts down both the Pi and the controller. Etc.)
Thank you for your reply @jimrh. So, it seems to me that both are something that only BrickPi developers can do. Isn’t there any hack that we as users can do to achieve this?
The only thing I can recommend is looking for the schematic for the BrickPi, taking a peek, and try to figure something out
One other thing: SDA and SCL are for the on-board SPI interface. i2c is implemented at the other end of the connector - something like pins 3 and 4 - I’m mobile and not near my computer, so I can’t look it up for you. Any pinout for the Pi will give you the real deal.
One kicker, the Pi is configured as an i2c master, which will mess you up.
Maybe you can create a new instance of the i2c interface via software on a different set of pins?
We require the Pi to be configured as a slave for which we would need pins 18 and 19 in specific.
Now, since the same pin 18 is used as a reset for BrickPi, we want to somehow disable the reset functionality.
I think that you’re just plain hozed without a major software/firmware update. I suspect that it might be easier to modify the device that requires these two pins than to modify the entire BrickPi.
Is it possible to modify the software on your device to use other pins?
Maybe you can cut the traces to these two pins and re-route them to two other pins that are currently unused?