Inkplate 4 TEMPERA battery.begin() fails without wakePeripheral

Customer:

I’m using the Inkplate 4 TEMPERA and the Inkplate.battery.begin() never succeeds. How can I debug this?

Originally submitted via the contact form on soldered.com on 7 July 2025. Migrated to the forum for community visibility.

Soldered Support:

The Inkplate.battery.begin() function starts communication with the BQ27441 LiPo Fuel Gauge and requests its ID. If the ID is read as expected, the function returns true. The Inkplate.battery.begin function must be called after the Inkplate.begin() function, otherwise it will fail.

You can try running an I2C scanner sketch to check if the fuel gauge is visible on Inkplate: Soldered-Hacky-Codes/I2C_Scanner at main · SolderedElectronics/Soldered-Hacky-Codes · GitHub

Attachment omitted in migration: Inkplate_4TEMPERA_battery_check.ino

Customer:

I’m indeed initializing the fuel gauge after I have done Inkplate.begin(), and it’s not succeeding. Here’s the result of the I2C scan:

Scanning...
I2C device found at address 0x20 !
I2C device found at address 0x21 !
I2C device found at address 0x39 !
I2C device found at address 0x51 !
I2C device found at address 0x6B !
I2C device found at address 0x76 !
done

From what I can tell, the fuel gauge should be at 0x55. Do we have some specific troubleshooting steps to perform after I get to disassemble the unit?

Soldered Support:

Have you tried the official example on how to measure the battery? In Advanced>Sensors>Fuel Gauge, open that example and run it. Notice how you need to call wakePeripheral - the earlier code I sent didn’t include this. The official example works on our Inkplate. You don’t need to check the return value of the begin function. Just run the example as-is and report back if you can get the battery capacity reading.