When i got the display, i found out that the deep-sleep feature was not implemented in the underlying IL0373 controller. There was another issue, sunlight and even ambient bright light would cause gray pigment to surface on light areas of the display.
I would like to share how both issues above could be addressed, maybe it can be useful for someone else.
- When connecting the feather to the display do NOT solder a fixed pin on the RST pin
- Connect a pin of your choice to the RST pin, in my case this is A5/GPIO08, and use this pin when initializingg the display
- Solder a connection to the BUSY pad on the display, in my case this is from A4/GPIO14 to BUSY
- Add code to ThinkInk_290_Grayscale4_T5 as below
Code: Select all
void hibernate() {
powerDown();
busy_wait();
uint8_t buf[4];
if (_reset_pin >= 0) {
buf[0] = 0xA5; // deep sleep
EPD_command(0x07, buf, 1);
}
}
- Then initialize the display as below
Code: Select all
#define EPD_DC 10
#define EPD_CS 9
#define EPD_BUSY 14 // A4 -> has been solder-connected to the busy pad
#define SRAM_CS -1
#define EPD_RESET 8 // A5 -> has been bridged to the reset pin
ThinkInk_290_Grayscale4_T5_Clone display(EPD_DC, EPD_RESET, EPD_CS, SRAM_CS, EPD_BUSY);
As a benefit, the display will not speckle to gray while sleeping.