Skip to content

gdey027T91 176*264 4 grays

Martin F edited this page Mar 18, 2023 · 2 revisions
  • Size: 176 * 264 2.7"
  • Buffer size: 5808 bytes (2x additional buffers in 4 gray mode)
  • Controller: SSD1680 (Solomon)
  • Status: Working
  • Partial update: Works great
  • Gray mode: Works (Needs more testing)
  • Proof-of-concept video
  • RES value: 4.7 Ω

logo-Goodisplay Buy this 2.7" epaper here

Test in main.cpp

Tech specs

IC Driver SSD1680 (pdf)

Additional information about 2.7 inch for models with touch display

One option is to use the DESPI-V3 small PCB adapter from Goodisplay. But be aware that is only for touch or for SPI. Not for both! SPI interface with touch specifications A better option is just to get a 6 wire FPC adapter to pins and wire it yourself.

If you want to use the touch function please use the class: goodisplay/touch/gdey027T91T.h

Implementation example

Without touch:

#include "goodisplay/gdey027T91.h"
EpdSpi io;
Gdey027T91 display(io);

void app_main() {
  display.init();
  display.setMonoMode(true);       // Use monochorome mode
  display.print("Hello black");
  display.update();

  display.setMonoMode(false);      // Use 4 gray mode (Which uses 2 different buffers)
  display.setCursor(10,20);        // Move text cursor to x:10 y:20
  display.setTextColor(EPD_LGRAY); // Tint color to Light gray
  display.print("Hello GRAY");
  display.update();

  // Now if you want to switch to mono mode again, that layer has still the old buffer, so doing this:
  display.setMonoMode(true);       // Switch to mono again which uses mono buffer that is still there
  display.update();                // Should print again "Hello black"
}

With touch:

#include "goodisplay/touch/gdey027T91T.h"

// INTGPIO is touch interrupt, goes low when it detects a touch, which coordinates are read by I2C
FT6X36 ts(CONFIG_TOUCH_INT);
EpdSpi io;
Gdey027T91T display(io, ts);

// Touch event: As a demo prints x & y coordinates via Serial output
void touchEvent(TPoint p, TEvent e)
{
    printf("X: %d Y: %d Ev:%d\n", p.x, p.y, int(e));
}

void app_main(void)
{
   printf("CalEPD version: %s\n", CALEPD_VERSION);
   // Test Epd class
   display.init(false);

   // Draw your UX here (Buttons, etc)
   
   // Register the function that is triggered when there is a touch event   
   display.registerTouchHandler(touchEvent);
  
   // Loop or launch this in a FreeRTOS task:
   for (;;) {
     display.touchLoop();
   }
}
Clone this wiki locally