In this article we look at an ESP32 board which is a combination of an ESP32-PICO-D4 and a 1.02 inch e-paper display
The board does not have a USB to serial chip and therefore you need a download adapter which can be bought with the display
There is a micro sd (tf) card slot and also 2 GPIO expansion headers
Features
– 3D printed shell
– ESP32-PICO-D4 4MB Flash WIFI/Bluetooth
– Low power consumption sleep mode is about 10uA
– 1.02 inch e-paper @ 128 X 80
– Three-way toggle button
– TF card socket
– Reset button
– Battery charging and discharging circuit
– Bottom expansion interface (2.54 female row)
– T-U2T downloader (if you already have this downloader, you don’t need to buy it again)
– TYPE-C USB
Pinout
Purchase
About $20 for this board with the downloader
Arduino Instructions
Donwload all the files from https://github.com/Xinyuan-LilyGO/LilyGO-Mini-Epaper
- Copy all the folders in the lib directory to
"C:\User\<YourName>\Documents\Arduino\libraries"
- At the top of the sketch, define the model of the board and screen to be used
- Select
ESP32 Pico Kit
in the development board, and keep the other options as default - If you do not find the ESP32 series in the development board, then you should see the following installation method How to install ESP32 in ArduinoIDE
- For the version of the board you purchased, please check the product link below
- When you think there is a problem with your board, you can pull the binary file corresponding to your screen model in the firmware directory, follow the
SETTING.png
settings in the directory, download it to the board, and then observe the execution.
Code
This is one of the default examples there are several in the download above.
[codesyntax lang=”cpp”]
/* LilyGo Ink Screen Series u8g2Fonts Test - Created by Lewis he */ // According to the board, cancel the corresponding macro definition // #define LILYGO_T5_V213 // #define LILYGO_T5_V22 // #define LILYGO_T5_V24 // #define LILYGO_T5_V28 #define LILYGO_T5_V102 // #define LILYGO_T5_V266 // #define LILYGO_EPD_DISPLAY_102 // #define LILYGO_EPD_DISPLAY_154 #include <boards.h> #include <GxEPD.h> #if defined(LILYGO_T5_V102) || defined(LILYGO_EPD_DISPLAY_102) #include <GxGDGDEW0102T4/GxGDGDEW0102T4.h> //1.02" b/w #elif defined(LILYGO_T5_V266) #include <GxDEPG0266BN/GxDEPG0266BN.h> // 2.66" b/w form DKE GROUP #elif defined(LILYGO_T5_V213) #include <GxDEPG0213BN/GxDEPG0213BN.h> // 2.13" b/w form DKE GROUP #else // #include <GxGDGDEW0102T4/GxGDGDEW0102T4.h> //1.02" b/w // #include <GxGDEW0154Z04/GxGDEW0154Z04.h> // 1.54" b/w/r 200x200 // #include <GxGDEW0154Z17/GxGDEW0154Z17.h> // 1.54" b/w/r 152x152 // #include <GxGDEH0154D67/GxGDEH0154D67.h> // 1.54" b/w // #include <GxDEPG0150BN/GxDEPG0150BN.h> // 1.51" b/w form DKE GROUP // #include <GxDEPG0266BN/GxDEPG0266BN.h> // 2.66" b/w form DKE GROUP // #include <GxDEPG0290R/GxDEPG0290R.h> // 2.9" b/w/r form DKE GROUP // #include <GxDEPG0290B/GxDEPG0290B.h> // 2.9" b/w form DKE GROUP // #include <GxGDEW029Z10/GxGDEW029Z10.h> // 2.9" b/w/r form GoodDisplay // #include <GxGDEW0213Z16/GxGDEW0213Z16.h> // 2.13" b/w/r form GoodDisplay // #include <GxGDE0213B1/GxGDE0213B1.h> // 2.13" b/w old panel , form GoodDisplay // #include <GxGDEH0213B72/GxGDEH0213B72.h> // 2.13" b/w old panel , form GoodDisplay // #include <GxGDEH0213B73/GxGDEH0213B73.h> // 2.13" b/w old panel , form GoodDisplay // #include <GxGDEM0213B74/GxGDEM0213B74.h> // 2.13" b/w form GoodDisplay 4-color // #include <GxGDEW0213M21/GxGDEW0213M21.h> // 2.13" b/w Ultra wide temperature , form GoodDisplay // #include <GxDEPG0213BN/GxDEPG0213BN.h> // 2.13" b/w form DKE GROUP // #include <GxGDEW027W3/GxGDEW027W3.h> // 2.7" b/w form GoodDisplay // #include <GxGDEW027C44/GxGDEW027C44.h> // 2.7" b/w/r form GoodDisplay // #include <GxGDEH029A1/GxGDEH029A1.h> // 2.9" b/w form GoodDisplay // #include <GxDEPG0750BN/GxDEPG0750BN.h> // 7.5" b/w form DKE GROUP #endif #include GxEPD_BitmapExamples // FreeFonts from Adafruit_GFX #include <Fonts/FreeMonoBold9pt7b.h> #include <Fonts/FreeMonoBold12pt7b.h> #include <Fonts/FreeMonoBold18pt7b.h> #include <GxIO/GxIO_SPI/GxIO_SPI.h> #include <GxIO/GxIO.h> GxIO_Class io(SPI, EPD_CS, EPD_DC, EPD_RSET); GxEPD_Class display(io, EPD_RSET, EPD_BUSY); void LilyGo_logo(); void setup(void) { Serial.begin(115200); Serial.println(); Serial.println("setup"); #if defined(LILYGO_EPD_DISPLAY_102) pinMode(EPD_POWER_ENABLE, OUTPUT); digitalWrite(EPD_POWER_ENABLE, HIGH); #endif /*LILYGO_EPD_DISPLAY_102*/ #if defined(LILYGO_T5_V102) pinMode(POWER_ENABLE, OUTPUT); digitalWrite(POWER_ENABLE, HIGH); #endif /*LILYGO_T5_V102*/ SPI.begin(EPD_SCLK, EPD_MISO, EPD_MOSI); display.init(); // enable diagnostic output on Serial LilyGo_logo(); Serial.println("setup done"); } void loop() { display.setRotation(1); display.fillScreen(GxEPD_WHITE); display.setTextColor(GxEPD_BLACK); display.setFont(&FreeMonoBold9pt7b); display.setCursor(0, 45); display.println("Hello World"); display.update(); delay(10000); } void LilyGo_logo(void) { display.setRotation(0); display.fillScreen(GxEPD_WHITE); display.drawExampleBitmap(BitmapExample1, 0, 0, GxEPD_WIDTH, GxEPD_HEIGHT, GxEPD_BLACK); display.update(); }
[/codesyntax]