Hi, I just got a BrickPi. It’s a Christmas present for the kids but I don’t have the NXT/EV3 motors yet. I put it on my Pi to check it out and without motors or sensors, only way I could really check it’s there is to run the sample battery voltage reading script. However, this returns “FALSE”. I also notice that if I run i2cdetect utility I see nothing at all. I believe the BrickPi has some of the sensors on I2C including the reading of the battery voltage. I’ve tried both my own Raspian image but also downloaded the Dexter one and it’s the same with both. I2C bus on PI is working as I can attach another I2C device and see it.
I’ve power the BrickPi and Pi via the 2-pin power connector on the BrickPi. I’ve confirmed there’s 5 Volts coming out of the voltage regulator on the BrickPi. NOTE: There’s no lights on the BrickPi. Not sure if it has any or not.
Should I be able to see it on the I2C bus and be able to read the battery voltage? Do you think it’s a faulty unit? I don’t have the motors to test further until nearer Christmas and it would be a shame if it turns out to be a faulty unit.
forgot to also say that the Pi powers fine via the BrickPi. I’m primarily trying to use it on a Pi B (rev2) but have also tried it on a Pi 2 (using the top 26pins of the 40pins) Both PIs have working I2C buses.
Hi Ian, this forum post slipped through the cracks, I’m sorry for the slow response.
Were you able to test this with motors or sensors? You should be able to run the I2C detect and see the voltage battery voltage chip respond, so I’m not sure what’s going on here.
I had a look at the schematic for the BrickPi when debugging and can’t see the i2c A/D chip on my BrickPi that reads the battery voltage. Perhaps it is a very old version of the BrickPi that the UK retailer had in stock for a long time (assuming there was an older revision without this chip).
Following the schematic I managed to check the AVRs were powered up and running and notice a lack of serial communications with the Pi. I eventually noticed the GPIO pin for TxD on the Pi/BCM was defaulting to mode “IN” instead of “ALT0” and was therefore not functioning as a serial device. The RxD GPIO pin was defaulting to “ALT0” fine. I thought the Pi firmware defaulted both these GPIO pins to ALT0 but I guess not. Must be only when the serial port is in use by the kernel as console device that it’s getting put into “ALT0” mode.
For now I’m manually using the WiringPi GPIO utility to set the pin mode to “ALT0” each time I boot (gpio mode 15 alt0). Then there’s 2 way serial comms and now I also have the motors, they run fine. Just no way to read the battery voltage but that’s not such a serious issue at the moment.
At some point I’ll get around to setting up something in rc startup scripts to fix the GPIO pin on each boot. I don’t know if this is a common problem but maybe an idea to have the BrickPi driver set the pin modes for the serial pins just to make sure.
If you have any thoughts on the missing A/D chip or where it should be physically located on the circuit board then please let me know. Or even if there was an earlier version without this chip?
Hey Ian, the I2C chip is on the latest BrickPi+. The easiest way to tell if you have a + or the older BrickPi Advanced, is to check the power connector. The BrickPi Advanced (old) has a white power connector with two pins poking out. The BrickPi+ has a round barrel jack. Which do you have?