The M5Paper would make a nice home automation dashboard with an e-paper display

The M5Stack Core Ink packs an ESP32 microcontroller and 1.54 inch e-paper display in a nice case.

E-paper displays are underestimated devices. I love to play with them because they have a unique property in the electronic world: they keep displaying their content even when they're off. This means that they are essential if you want to build low-power devices with an interface.

Think about a device that shows the current temperature. You don't need it to update the temperature on the display continuously: it's OK if this happens once every minute or maybe every five minutes. So you could build a low-power temperature sensor with an e-paper display. Let the device take the sensor measurement, show it on the display, connect to Wi-Fi/Bluetooth/Zigbee/LoRa/... and publish the temperature, and then turn itself off, only waking a minute later to do this all again. Most of the time the device is asleep and thus using negligible power, but there's always something to see on the display.

I have played with e-paper displays from Waveshare on an Arduino and on a Raspberry Pi, but earlier this month M5Stack released the Core Ink, which adds a 200x200 1.54" e-paper display to an ESP32-PICO-D4 microcontroller and puts it in a nice little box, even with a built-in magnet so you could attach it to your fridge. It also includes a 390 mAh LiPo battery and expansion ports to attach external sensors and other components, as well as a programmable button. I haven't bought the Core Ink yet, but I could see this used in a home automation setting. You can program it with Arduino, MicroPython or UIFlow (M5Stack's graphical IDE).

E-paper, lots of e-paper

M5Stack has now launched another e-paper device, the M5Paper. It has a much bigger display than the Core Ink: 960x540 4.7" (235 ppi), it can display 16 grayscale levels and it's touch-enabled (supporting multipoint touch and gesture controls). Essentially it's a small e-reader, but fully programmable. And just like its little brother, it has a LiPo battery (1150 mAh), expansion ports and a built-in magnet to attach it to your fridge. The M5Paper also comes with a Sensirion SHT30 temperature and humidity sensor, a microSD card slot and 256 KB EEPROM. The ESP32-D0WD can be programmed with Arduino, MicroPython and UIFlow. The M5Paper is priced $69 in M5Stack's shop. In Europe it's available for around €70.


All in all, judging from the specifications I think the M5Paper would be a nice device to build a dashboard for your home automation system that you could put in your living room or bedroom. Or what about a weather display? It's only a pity that it doesn't have one of those three-color e-paper displays: if it had the red color available, you could use it to display warnings that really stand out from the rest of the icons. The 16 grayscale levels make up for it a bit, but of course it's not the same.


M5Stack has documentation about the M5Paper, including full specifications, pin map, data sheets, schematics, and a quickstart for Arduino. The GitHub repository m5stack/M5Paper_FactoryTest is presumably the firmware the M5Paper comes with. This should give you an idea about what's possible with the device. I already saw a file explorer, a picture viewer and The Game of Life.

There are also some other repositories with example projects for the M5Paper: a TODO program, a calculator, an example for fonts, including Unicode support, and then some basic examples in the M5EPD library.

The latter is the M5Paper API for Arduino, which is documented in three parts:

  • System: The API for the system functions, buttons, temperature and humidity sensor, power buttons and real-time clock

  • EPD Canvas: The API for drawing on the display

  • Touch: The API for touch interaction

With all this documentation and example code and the nice all-in-one package it comes in, the M5Paper could become one of the most interesting e-paper devices to write your own software for.