Customer:
I’ve been using an Inkplate 10 to run homeplate (GitHub - lanrat/homeplate: Trmnl & Home Assistant E-Ink dashboard on the Inkplate displays · GitHub) to display a home assistant dashboard, and it worked perfectly for over a month. A couple of weeks ago it started misbehaving: after around 12 hours of running, the screen stops updating without any error messages in the log or on screen. A hard reset fixes it temporarily. The homeplate logs and MQTT messages show the software runs fine even after the screen stops responding, but nothing renders on screen. I’ve reflashed with clean code, done hard resets, and parsed days of logs - everything seems to be working as intended, but the screen just stops responding randomly. What hardware issues could cause this?
Originally submitted via email support on 18 January 2026. Migrated to the forum for community visibility.
Soldered Support:
Since the ESP32 continues working even when the screen doesn’t refresh, I suspect one of the IOExpanders could be acting up after prolonged use. When the screen stops refreshing, check if you can still communicate with IOExpander 1 - command lines of the display run through this expander, so if the I2C communication fails, it could lead to an unresponsive display. You can test this by trying to blink an LED on one of the GPIOs, or by connecting another microcontroller to work as an I2C address scanner.
If the IOExpander works correctly, the problem lies with the TPS PMIC chip onboard. Some bad batches have been seen where the chip enters a fault mode and stops responding to I2C communication after a set number of hours. If that’s the case, we can begin the replacement process.
Customer:
I scanned the I2C bus using a Bus Pirate v5 in normal state:
I2C> scan
I2C address search:
0x20 (0x40 W) (0x41 R)
0x21 (0x42 W) (0x43 R)
0x51 (0xA2 W) (0xA3 R)
Found 6 addresses, 3 W/R pairs.
In the locked up state:
I2C> scan
I2C address search:
0x51 (0xA2 W) (0xA3 R)
Found 2 addresses, 1 W/R pairs.
Soldered Support:
Thank you for the I2C bus scan results. The addresses that disappear in the locked up state are both GPIO expanders, so it doesn’t seem like a hardware issue - this is the first time we’ve seen this, and they continue to work after a reset.
Looking at the homeplate code, they use an I2C Mutex between the standard Arduino Library code, which can cause tricky behavior with the I2C bus. I recommend raising an issue on the homeplate repository itself, as someone with greater knowledge of the project could troubleshoot better.
Alternatively, you could upload an example sketch from the Arduino library directly, such as the one here: Inkplate-Arduino-library/examples/Inkplate10/Basic/Inkplate10_Black_And_White at master · SolderedElectronics/Inkplate-Arduino-library · GitHub
Run it for 12 hours and see if the panel refreshes fine. If it does, we can definitely rule out a hardware issue.