Skip to content
Martin edited this page Feb 23, 2022 · 46 revisions


E-paper component driver for the ESP-IDF v4.2 framework and compatible with ESP32 / ESP32S2

CalEPD is the name of the epaper component and has it's own repository. This component supports more than 22 epaper models, both monochrome and color versions, including well known Goodisplay/Waveshare brands. Also PlasticLogic, a german innovative epaper manufacturer, that has displays with 4 grays support and partial update. It is also the only known ESP-IDF component that supports big multi-SPI epapers like Waveshare/Goodisplay 12.48 inches and touch panel interfaces. including FocalTech and another touch chip controller called L58 (Lilygo T5S EPD47 parallel epaper).


  • ESP-IDF v4.2 or higher. Tested with 4.2-dev and 4.4 (master branch)
  • ESP32 test boards. For bigger Epapers like 12.48 inches a WROOVER-B with PSRAM
  • Epapers, SPI adapters, and some patience to connect this elements together

We are planning to add gray support for other epapers but there are also DRAM memory restrictions so many will require an ESP32 with PSRAM capabilities for grayscale support. It's open for collaboration so feel free to add Issues and suggest a push request in case you want to make a correction or add a new model that we don't have. We will only add models that we have in our workbench, so if you really need to add a new epaper, you need to add it yourself or send to me the epaper and the SPI interface. Please open an Issue so we can track the implementation and testing of new models. In the last version also some parallel epapers are supported: Lilygo EPD47 and the 6 inches models listed on EPDiy component. We do not have a parallel library ourselves, we hook EPDiy using C++ wrappers so you can treat this epapers the same way as the others. Following this two implementations you can add many other parallel displays. Or even you can use directly EPDiy as a component without using CalEPD.


Martin Fasani, C++ programming
Carlos Fasani, electronics, testing and SPI optimization

External contributors

There are external collaborators and people that have contributed with testing or adding new models and they are proudly referenced on the models they added. We try to add a new page documenting each model behaviour, statistics like how long it takes to receive the pixel buffer (Before and after optimization). We would like to be a good alternative to GxEPD for those that use Espressif IDF framework. We owe credit for many color functions and understanding how the buffer of many epapers work to Jean-Marc, so all my respect for him being the first doing a library that supports so many models and has nicely color conversion functions that work very well. We aim to make the SPI communication as fast as possible by sending whole X lines on every Chip select toogle. Other libraries do that byte per byte toggling the CS Gpio everytime. Check our statistics to see how faster it is optimizing this. Faster means better response rates but also means less battery consumption if you just refresh and go to deepsleep.

Latest news

  • Oct ‘21 collaboration with the amazing project DIY-esp32-epub-reader. If you own an EPDiy bro Lilygo EPD47 board you should give it a try. It works really nice to make a pocket size ebook epaper reader and can keep some books in SPIFFs.
  • 20.09.21' Support for IT8951 epapers. Only in branch: feature/45-it8951 Note: It needs an additional component called LovyanGFX please check It-8951 Wiki section for more information.
  • Support of RainMaker to do WiFi provisioning using BLE
  • Model plasticlogic021.h (2.1 inch) Epaper added. Partial update issues
  • Model plasticlogic014.h (1.4 inch) Epaper added. All 3 update forms work great in 1.4 & 1.1" from this manufacturer.
  • Model plasticlogic011.h (1.1 inch) Epaper added. Manufacturer is
  • New class gdew075T8 (640*384) is added to the supported epaper displays

CalEPD first tests Eureka moment when the 2.13" Flex display class got his RAM Buffer filled and GFX displayed

This repository is the start of a new CALE Firmware for ESP-IDF and it's also where CalEPD, a component to drive epapers, is built and tested before landing in the it's own repository.

That way it can be used for another projects as a submodule.

CalEPD requires

Adafruit GFX as a required component

FT6X36-IDF as an optional component only if you use Touch (FocalTech and L58 are the only 2 controllers supported)

EPDiy component optionally if you use the supported parallel epapers. The directory epd_driver should be copied in the components folder such as you can see in this repository.

Component ready to use in your ESP32 Firmware

I've been working every weekend and some nights in order to keep on experimenting with new possibilities and adding drivers for new models. The good news is that the first drivers where already testeable on the last days of May 2020 and in the summer of 2021 we already have around 20 models. And there are instructions coming so you can add your Epaper module too.

The goal is to support most Epaper displays that are >= 400*300 pixeles including:

  • Good Display >= 4.2"
  • Waveshare >= 4.2"
  • PlasticLogic, a german manufacturer that does super fast flexible epapers with 4 levels of gray.
  • Parallel epapers after addding support with EPDiy component

Both in b/w and with their Black/Red Black/Yellow variants and also support for the 7 color epaper from Waveshare. If this sparks your interest you can read more about this EPD driver in the CALE-IDF section.

Please note this is meant to work only with ESP-IDF if you are using Espressif32-Arduino framework just check out GxEPD library that has many good examples and supports most common Eink displays.

Clone this wiki locally