ESP-IDF component for Waveshare epaper displays
Report Bug
·
Request Feature
·
Send a Pull Request
ESP-IDF Component for driving waveshare's epaper displays. This is a port of Waveshare's official code for driving epaper display.
- 1.02" D module
- 1.54" V2 module
- 1.54" B module
- 1.54" C module
- 2.13" V2 module
- 2.13" B module
- 2.13" C module
- 2.13" D module
- 2.66" module
- 2.7" module
- 2.7" B module
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
Set the pins used and appropriate display module used in menuconfig
idf.py menuconfig
Setting present at: Component config --> E-Paper display configuration
Path: Component config --> E-Paper display configuration
Path: Component config --> E-Paper display configuration --> Display Type
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();
}
- Thanks to ayoy, Adapted the code for other display models using this project.
- Thanks to waveshare for sharing arduino codes for epaper displays.