/esp-epaper-display

ESP-IDF component for waveshare epaper displays

Primary LanguageCOtherNOASSERTION


Logo

ESP-IDF component for Waveshare epaper displays

Report Bug · Request Feature · Send a Pull Request

ESP32 Epaper Display component

ESP-IDF Component for driving waveshare's epaper displays. This is a port of Waveshare's official code for driving epaper display.

Installation

cd <your_esp_idf_project>
mkdir components
cd components
git clone https://github.com/VedantParanjape/esp-epaper-display.git epaper

Change CMakeList.txt to add the line given below:

set(EXTRA_COMPONENT_DIRS <relative_path_to_component_folder>)

component folder must contain epaper component

Configuration

Set the pins used and appropriate display module used in menuconfig

idf.py menuconfig

Setting present at: Component config --> E-Paper display configuration

Pin setting

Path: Component config --> E-Paper display configuration

Display model setting

Path: Component config --> E-Paper display configuration --> Display Type

Example code

Example app: https://github.com/VedantParanjape/esp-component-examples/tree/master/esp-epaper-example

#include "epaper.h"
#include "esp_log.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/timer.h"

#define COLORED     0
#define UNCOLORED   1

extern "C" void app_main() 
{
  Epd epd;

  unsigned char* frame_ = (unsigned char*)malloc(epd.width * epd.height / 8);

  Paint paint_(frame_, epd.width, epd.height);
  paint_.Clear(UNCOLORED);

  ESP_LOGI("EPD", "e-Paper init and clear");
  epd.LDirInit();
  epd.Clear();

  vTaskDelay(2000);
  int d = 3;
  for (char i = '0'; i <= '9'; i++)
  {
    paint_.DrawCharAt(d, d, i, &Font20, COLORED);
    epd.DisplayPart(frame_);
    vTaskDelay(100);
    d = d + 20; 
  }
  epd.Sleep();
}

Credits

  • Thanks to ayoy, Adapted the code for other display models using this project.
  • Thanks to waveshare for sharing arduino codes for epaper displays.