GxEPD2
Arduino Display Library for SPI E-Paper Displays
Install / Use
/learn @ZinggJM/GxEPD2README
GxEPD2
Arduino Display Library for SPI E-Paper Displays
-
With full Graphics and Text support using Adafruit_GFX
-
For SPI e-paper displays from Dalian Good Display
-
and SPI e-paper boards from Waveshare having the same panels
important note:
- the display panels are for 3.3V supply and 3.3V data lines
- never connect data lines directly to 5V Arduino data pins, use e.g. 4k7/10k resistor divider
- series resistor only is not enough for reliable operation (back-feed effect through protection diodes)
- 4k7/10k resistor divider may not work with flat cable extensions or Waveshare 4.2 board, use level converter then
- do not forget to connect GND
- the actual Waveshare display boards now have level converters and series regulator, safe for 5V
- use 3k3 pull-down on SS for ESP8266 for boards with level converters
- note that 7.5" e-paper displays don't work reliable if fed from 3.3V Arduino pin
- note that Waveshare boards with "clever" reset circuit may need shortened reset pulse
- use
init(115200, true, 2, false)for Waveshare boards with "clever" reset circuit - note that Waveshare boards with "clever" reset circuit need 1k pull-up on RST on ESP8266, or different pin
- note that the new Waveshare Universal e-Paper Raw Panel Driver HAT Rev 2.3 needs PWR connected to VCC or driven HIGH
- see https://www.waveshare.com/wiki/E-Paper_Driver_HAT
- some new Waveshare boards also have a PWR control pin, needs be pulled hight
Paged Drawing, Picture Loop
- This library uses paged drawing to limit RAM use and cope with missing single pixel update support
- buffer size can be selected in the application by template parameter page_height, see GxEPD2_Example
- Paged drawing is implemented as picture loop, like in U8G2 (Oliver Kraus)
- see https://github.com/olikraus/u8glib/wiki/tpictureloop
- Paged drawing is also available using drawPaged() and drawCallback(), like in GxEPD
// GxEPD style paged drawing; drawCallback() is called as many times as neededvoid drawPaged(void (*drawCallback)(const void*), const void* pv)- paged drawing is done using Adafruit_GFX methods inside picture loop or drawCallback
Full Screen Buffer Support
- full screen buffer is selected by setting template parameter page_height to display height
- drawing to full screen buffer can either be done using Adafruit_GFX methods without picture loop or drawCallback
- and then calling method display()
- or by still using the page loop or drawCallback
Low Level Bitmap Drawing Support
- bitmap drawing support to the controller memory and screen is available:
- either through the template class instance methods that forward calls to the base display class
- or directly using an instance of a base display class and calling its methods directly
Supporting Arduino Forum Topics:
- Waveshare e-paper displays with SPI: http://forum.arduino.cc/index.php?topic=487007.0
- Good Display ePaper for Arduino : https://forum.arduino.cc/index.php?topic=436411.0
- Note that these topics are closed. Use only for reference.
- The Arduino Forum is no longer watched and answered by the Author.
- New questions or issues should be posted on https://github.com/ZinggJM/GxEPD2/discussions
Note on documentation
- GxEPD2 uses Adafruit_GFX for Graphics and Text support, which is well documented there
- GxEPD2 uses meaningful method names, and has some comments in the header files
- consult the header files GxEPD2_BW.h, GxEPD2_3C.h and GxEPD2_GFX.h
- for the concept of paged drawing and picture loop see:
- https://github.com/olikraus/u8glib/wiki/tpictureloop
Note on issues and pull requests
- issues should be reported in https://github.com/ZinggJM/GxEPD2/discussions.
- issues on GitHub are disabled; there were too many false issues.
- pull requests are not welcome, will not be merged.
- pull requests can't be disabled, but will be closed.
- please place information about interesting fork additions in https://github.com/ZinggJM/GxEPD2/discussions.
Supported SPI e-paper panels from Good Display:
- GDEW0102T4 1.02" b/w 80x128, UC8175
- DEPG0150BN 1.50" b/w 200x200, SSD1681, e.g. LILYGO® TTGO T5 V2.4.1 1.50 inch
- GDEP015OC1 1.54" b/w 200x200, IL3829, no longer available
- GDEH0154D67 1.54" b/w 200x200, SSD1681, replacement for GDEP015OC1
- GDEW0154T8 1.54" b/w 152x152, UC8151 (IL0373)
- GDEW0154M09 1.54" b/w 200x200, JD79653A
- GDEW0154M10 1.54" b/w 152x152, UC8151D, DES
- GDEY0154D67 1.54" b/w 200x200, SSD1681
- GDEW0154Z04 1.54" b/w/r 200x200, IL0376F, no longer available
- GDEH0154Z90 1.54" b/w/r 200x200, SSD1681, replacement for GDEW0154Z04
- GDEM0154F51H 1.54" 4-color 200x200, JD79660
- GDE0213B1 2.13" b/w 122x250, IL3895, phased out
- GDEH0213B72 2.13" b/w 122x250, SSD1675A (IL3897), replacement for GDE0213B1
- GDEH0213B73 2.13" b/w 122x250, SSD1675B, new replacement for GDE0213B1, GDEH0213B72
- GDEM0213B74 2.13" b/w 122x250, SSD1680
- GDEW0213I5F 2.13" b/w 104x212, UC8151 (IL0373), flexible
- GDEW0213T5D 2.13" b/w 104x212, UC8151 (IL0373)
- GDEW0213M21 2.13" b/w 104x212, UC8151 (IL0373), DES
- GDEW0213Z16 2.13" b/w/r 104x212, UC8151 (IL0373)
- GDEW0213Z19 2.13" b/w/r 104x212, UC8151D
- GDEY0213Z98 2.13" b/w/r 122x250, SSD1680
- GDEY0213F51 2.13" 4-color 122x250, JD79661
- DEPG0213BN 2.13" b/w 122x250, SSD1680, e.g. LILYGO® TTGO T5 V2.3.1 2.13 inch
- GDEY0213B74 2.13" b/w 122x250, SSD1680
- GDEW026T0 2.6" b/w 152x296, UC8151 (IL0373)
- GDEW026M01 2.6" b/w 152x296, UC8151 (IL0373), DES
- DEPG0266BN 2.66" b/w 152x296, SSD1680, e.g. LILYGO® TTGO T5 2.66 inch
- GDEY0266Z90 2.66" b/w/r 152x296, SSD1680
- GDEY0266F51H 2.66" 4-color 184x460, JD79667
- GDEW027C44 2.7" b/w/r 176x264, IL91874
- GDEW027W3 2.7" b/w 176x264, EK79652 (IL91874)
- GDEY027T91 2.7" b/w 176x264, SSD1680
- GDEH029A1 2.9" b/w 128x296, SSD1608 (IL3820)
- GDEW029T5 2.9" b/w 128x296, UC8151 (IL0373)
- GDEW029T5D 2.9" b/w 128x296, UC8151D
- GDEW029I6FD 2.9" b/w 128x296, UC8151D, flexible
- GDEM029T94 2.9" b/w 128x296, SSD1680
- GDEW029M06 2.9" b/w 128x296, UC8151D, DES
- GDEW029Z10 2.9" b/w/r 128x296, UC8151 (IL0373)
- GDEH029Z13 2.9" b/w/r 128x296, UC8151D
- GDEM029C90 2.9" b/w/y 128x296, SSD1680
- DEPG0290BS 2.9" b/w 128x296, SSD1680, e.g. LILYGO® TTGO T5 V2.4.1 2.9"
- GDEY029T94 2.9" b/w 128x296, SSD1680
- GDEY029T71H 2.9" b/w 168x384, SSD1685
- GDEY029F51H 2.9" 4-color 168x384, JD79667
- Waveshare3inch4color 3.0" 4-color 168x400
- GDEQ031T10 3.1" b/w 240x320, UC8253
- GDEM035F51 3.5" 4-color 184x384, JD79667
- GDEY037T03 3.7" b/w 240x416, UC8253
- ED037TC1 3.7" b/w 280x480, SSD1677, Waveshare 3.7"
- GDEW0371W7 3.7" b/w 240x416, UC8171 (IL0324)
- GDEM0397T81 3.97" b/w 480x800, SSD2677
- GDEM0397F81 3.97" 4-color, 800x480, SSD2677
- GDEW042T2 4.2" b/w 400x300, UC8176 (IL0398)
- GDEW042M01 4.2" b/w 400x300, UC8176 (IL0398), DES
- GDEW042Z15 4.2" b/w/r 400x300, UC8176 (IL0398)
- GDEQ042Z21 4.2" b/w/r 400x300, UC8276, (Waveshare V2)
- GDEY042Z98 4.2" b/w/r 400x300, SSD1683
- GDEY042T81 4.2" b/w 400x300, SSD1683
- GDEY0420F51 4.2" 4-color 400x300, HX8717
- GDEQ0426T82 4.26" b/w 800x480, SSD1677
- Waveshare437inch4color Waveshare 4.37" 4-color e-paper display 512x368
- ACeP565 5.65" Waveshare 5.65" 7-color e-paper display 600x448
- GDEP0565D90 5.65" 7-color 600x448
- GDEY0579T93 5.79" b/w 792x272, SSD1683
- GDEY0579Z93 5.79" b/w/r 792x272, SSD1683
- GDEY0579F51 5.79" 4-color 792x272, HX8717
- GDEW0583T7 5.83" b/w 600x448, UC8159c (IL0371)
- GDEW0583T8 5.83" b/w 648x480, EK79655 (GD7965)
- GDEW0583Z83 5.83" b/w/r 648x480, EK79655 (GD7965)
- GDEQ0583T31 5.83" b/w 648x480, UC8179
- GDEQ0583Z31 5.83" b/w/r 648x480, UC8179C
- GDEY073D46 7.3" 800x480 7-color
- GDEP073E01 7.3" 800x480 7-color
- ACeP730 7.3" Waveshare 7-color e-paper display 800x480, PhotoPainter
- GDEW075T8 7.5" b/w 640x384, UC8159c (IL0371)
- GDEW075T7 7.5" b/w 800x480, EK79655 (GD7965)
- GDEY075T7 7.5" b/w 800x480, UC8179 (GD7965)
- GDEW075Z09 7.5" b/w/r 640x384, UC8159c (IL0371)
- GDEW075Z08 7.5" b/w/r 800x480, EK79655 (GD7965)
- GDEY075Z08 7.5" b/w/r 800x480, UC8179
- GDEH075Z90 7.5" b/w/r 880x528, SSD1677
- GDEM075F52 7.5" 4-color, 800x480, JD79665AA
- GDEM102T91 10.2" b/w 960x640, SSD1677
- GDEM1085T51 10.85 b/w 1360x480, JD79686AB
- GDEH116T91 11.6" b/w 960x640, SSD1677
- GDEY116Z91 11.6" b/w/r 960x640, SSD1677
- GDEY116F51 11.6" 4-color 960x640, SSD2677
- GDEW1248T3 12.48" b/w 1304x984, UC8179
- GDEY1248Z51 12.48" b/w/r 1304x984, UC8179
- GDEM133T91 13.3" b/w 960x680, SSD1677
- GDEM133Z91 13.3" b/w/r 960x680, SSD1677
Supported SPI e-paper panels & boards from Waveshare: compare with Good Display, same panel
other supported panels
- GYE042A87 4.2" b/w 400x300, SSD1683 (HINK-E042-A07-FPC-A1)
- SE0420NQ04 4.2" b/w 400x300, UC8276C (OPM042A2_V1.0)
- ED060SCT 6" grey levels, on Waveshare e-Paper IT8951 Driver HAT
- ED060KC1 6" grey levels, 1448x1072, on Waveshare e-Paper IT8951 Driver HAT
- ED078KC2 7.8" grey levels, 1872x1404, on Waveshare e-Paper IT8951 Driver HAT
- ES103TC1 10.3" grey levels, 1872x1404, on Waveshare e-Paper IT8951 Driver HAT
I can and will only support e-paper panels I have!
- I accept panel donations to add support to GxEPD2 only on exception.
- I support only panels from known sources that are well documented.
- Let me know about interesting panels that fall into this category.
- I occasionally buy new panels, but adding support will take as much time as needed.
Version 1.6.8
- added methods writeImageToPrevious and writeImagePartToPrevious to b/w driver classes
- added partial update support to GDEP073E01
- added partial window addressing to GDEY073D46, partial refresh not usable
Version 1.6.7
Related Skills
node-connect
339.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.8kCommit, push, and open a PR
