Skip to content

Model color gdew0583z21.h

Martin edited this page Jul 25, 2021 · 3 revisions
  • Size: 600 * 448 Colors: B/W/RED
  • Manufacturer: Good display
  • Inches: 5.83
  • Controller: IL0371
  • Status: Implemented. Tests passed (merged in master)
  • Partial update: Not supported by the controller (Most color epapers do not support partial refresh)

Statistics in milliseconds with SPI clocked at 4 Mhz and ESP32 at max CPU speed:

2334 _wakeUp settings+send Buffer
2003 update 
4338 total time in millis

Video demo

Takes less than 3 seconds to send the data and 2 seconds more waiting for BUSY till the update is released. This display uses a special function that is called _send8pixel and per SPI IO.data(2 pixels per byte) in 4 rounds per byte which makes this class a bit slower than the others.

A byte in the Pixel buffer looks like

Each pixel has 4 bits. A transaction sends one byte with 2 pixels at a time until reaches the end of the buffer. Note that small ¹ is used only to mark where each pixel starts.

Ex1: Two white pixels
|¹ 0|² 0| 1 | 1|¹ 0|² 0| 1 | 1|
0x03           |  0x03  2 white pixels will set this byte to 0x33

00110011 Byte (51 in decimal)

Ex2: Two red pixels
|¹ 0|² 1| 0 | 0|¹ 0|² 1| 0 | 0|
0x04           |  0x04  2 red pixels will set this byte to 0x44

01000100 Byte (68)

Ex3: One white and a second red pixel
|¹ 0|² 0| 1 | 1|¹ 0|² 1| 0 | 0|
0x03           |  0x04   will set the byte to 0x34

00110100 Byte (52)

Color index:
0x00 Black
0x03 White 
0x04 Red

First successful test

To test it, in your C++ example of choice:

#include <gdew0583z21.h>
#include <Fonts/FreeSerif12pt7b.h> // Optionally include a font from Adafruit GFX
EpdSpi io;
Gdew0583z21 display(io);

void app_main(void)
{
   display.init(true);     // Activate debug
   display.setRotation(0); // Optionally change rotation
   display.setTextColor(EPD_RED);

   // Draw a line of 2 pix height
   for (int i = 0; i < display.width(); i++) {
     display.drawPixel(i,10,EPD_BLACK);
     display.drawPixel(i,11,EPD_BLACK);
   } 

   // Write something
   display.setCursor(10,100);
   display.setFont(&FreeSerif12pt7b);
   display.println("CalEPD the epaper component you can trust");

   // Type display.* to discover more of the inherited GFX functions fillCircle, fillTriangle, etc
}

Preview of housing 3D printed for this display Good display 5.83 Housing More pictures of the 5.83" epaper display