M5STACK PaperColor epaper ESPHome Demo

I was able to get the M5STACK PaperColor (SKU: C151) working with ESPHome today. It seems to work well. The biggest hurdle was related to managing the EPD power rail in order to make the display available.

I plan on building on this initial "get it working" example, but I thought I'd share it here in case the core is useful to others:

Nice โ€” built one of these too, and it looks like we took different routes, which is handy. Yours is deep-sleep + on-device-drawn; mine's always-on with a server-rendered (Puppet) dashboard that the 3 buttons page through as a carousel. I also pulled the M5PM1 bits into a reusable ESPHome external component โ€” EPD rail + charging + power-hold (survives USB-unplug) + battery % + the power button โ†’ "off" screen โ†’ shutdown. Repo:

Might be useful to compare or borrow from?

Also interesting: you're on mainline's Spectra-E6 model while I'm still on kepstin's 4.0in-Spectra-E6 PR โ€” good to know mainline works.

I just switched to mainline's generic Spectra-E6 model + explicit dimensions, and it renders identically โ€” so it builds on stock ESPHome / the HA add-on now, no fork.

Thanks for the pointers @PFalko
I incorporated a few things from your work: HOLD_CFG power-hold register sequence, enabling the 3.3V LDO rail, the hardware button approach, battery voltage filter logic. Super helpful. This display seems to be a useful and well implemented piece of hardware.

@PFalko Your recent improvements to deep sleep management were super useful. Preliminary test results look significantly better and meaningful for extended on battery operation, Thx.

FYI: I'm working on GitHub - cryptomilk/hass-eink-dashboard: This is beta quality, should be mostly stable ยท GitHub

I don't have color support yet, but it could be added in future.