Inkplate 2 display not updating

Customer:

I recently bought Inkplate 2 for a thesis project and have been mostly happy with it. Today the device stopped updating the display. I tried it with several different codes including Inkplate 2 example codes. The device and display look fine visually. My PC recognises the device and I’m able to successfully upload new code to it. The display update is not working. What can I try?

Originally submitted via email support on 9 March 2025. Migrated to the forum for community visibility.

Soldered Support:

Try re-connecting the flat cable of the e-paper panel. Sometimes this flat cable can get disconnected. Gently pull the latches in the marked direction and the cable will let loose, connect it back in and secure with the latches, then try the basic->black white red example to refresh the display.

Attachment omitted in migration: image.png

Customer:

That fixed the problem, thank you. I have two other challenges with the device.

I’m having trouble connecting the device to WiFi. I noticed my router was automatically switching between 2.4 and 5 GHz WiFi. I split that to separate 2.4 GHz and 5 GHz connections and Inkplate 2 was able to connect to the 2.4 GHz WiFi for some time, but at some point it wasn’t able to connect anymore. At my parent’s place and with public WiFis, the connection often works initially but stops working after some time. Interestingly the connection always works if I use my iPhone as a hotspot.

Another challenge is related to my application. I want Inkplate 2 to work as an electricity price monitor. It will connect to WiFi, sync time and fetch 24-hour electricity price data from the internet, save it to Inkplate’s memory and show the current hour price on the display. The display refreshes every time the hour changes, and the device uses WiFi just once per day to save power. When not in active operation it stays in deep sleep. I noticed that Inkplate 2 doesn’t have an internal Real Time Clock to track time and the internal clock is not very accurate. While testing my code, sometimes the device wakes up a minute or two before the hour changes, causing it to show wrong hour data and then go to sleep for an hour. I changed the logic of my code so that every time the device wakes up from deep sleep it increments the hourIndex by +1. This helps improve the way the device works but still doesn’t fix the initial challenge that the device is not able to track time accurately enough. I don’t want the device to sync time through WiFi more often than once per 24 hours to save power.

Is there something I can do through software to improve the time keeping, or is the only solution to get an external RTC?

Attachment omitted in migration: image.png

Soldered Support:

2.4 GHz is the only supported mode for the onboard ESP32. Did your Inkplate 2 come with an antenna? It’s advised to use the antenna and place it on the ESP32 because it greatly improves WiFi reception. Try the following:

  1. Use a static IP address on Inkplate: ESP32 Static/Fixed IP Address | Random Nerd Tutorials
  2. Disable band steering on your router. This is when your router dynamically sends your 2.4GHz devices to 5GHz band internally, which is unsupported by Inkplate 2. You may not be able to find this option.
  3. Disable features like 802.11ax mode (WiFi 6 compatibility) or set compatibility strictly to 802.11b/g/n on the 2.4GHz hotspot.

Maybe using an updated ESP32 board definition would work. These issues may have gotten fixed in the meantime. Unfortunately we are using an older ESP32 board definition for Inkplate and just haven’t had a moment to update it. If points 1-3 don’t work, try the regular esp32 dev board definition by espressif and see if you can connect on Inkplate 2.

Inkplate 2 doesn’t have an onboard RTC due to the size of the board. Here are some possible workarounds:

  1. Wake up the device more often to check if the time changed. Waking up, checking RTC and going back to sleep uses power, but since your device will be in deep sleep 99% of the time, the small short spike in usage to check the time averages out to almost nothing. Maybe wake up and check every 5 minutes if the hour has changed.
  2. You could measure the time drift and offset it manually to make it more accurate. This article may help: https://medium.com/@raypcb/a-complete-guide-to-checking-rtc-accuracy-on-the-esp32-3f83a5c70ec7