SOLVED [Photon power shield giving SoC readings of 256]


Hello.I am testing the particle photon power shield, using the example in the library just to publish the SoC and voltage readings in the cloud. Unfortunately, the readings are always SoC= 256 and Voltage = 5.

I know this topic has been posted a few times and I’ve read almost all the discussions in the forum regarding this 256 SoC wrong reading but none of the discussions seem to end with a solution. Photon is running 0.6.3 and connected to the battery only. Thanks for the help.

EDIT 11Jan - Just received a new power shield and performed the same tests. It worked fine as it should be. Also received a spark fun power shield for photon and behaved well too. It seems a hardware problem? with the first power shield I tested?


Let me ping someone that might be able to chime in- @rickkas7


That sounds like a hardware problem since it worked properly with the new one. If you bought the replacement yourself, just create a support ticket and reference this posting and we can see about getting either another replacement or a refund.


Hi. Thanks for jumping in. I started to have random bad readings (SOC = 256, Vol = 5) with both power shields (Particle & Sparkfun) so I digged in more.
I happened to have a test button wired to D1 as a trigger to wake up the device from sleep mode (fyi as I was using the power shield to test battery performance for the device coming on/off sleep mode).

I learnt that D0 & D1 are used by the MAX chipset (the one used to gauge fuel levels) in an I2C bus. Therefore, my test button was interfering with the readings. I found the following thread in GitHub: with more details about it (it was difficult to find such information). So not a hardware issue either.

Conclusion: don’t wire anything to D1 or D0 when using the power shields unless is an I2C device that does not interfere with the address assigned to the MAX chipset.

Hope this thread helps other people making the same mistake.


Yes, that is correct. The power shield uses the I2C port on D0 and D1, so you can’t use it for anything other than I2C.