/Arduino_GFX

Arduino GFX developing for various color displays and various data bus interfaces

Primary LanguageC++

Arduino_GFX

This library is developing aim for support various data bus interfaces and various displays.

As I know, it should be the first Arduino display library that can support ESP32 9-bit hardware SPI. It is very important to support the displays (e.g. HX8357B, ST7701, ...) that only have 9-bit SPI interface.

This library start rewrite from Adafruit_GFX, TFT_eSPI, Ucglib and more...

Ease of use

Simple Declaration

(not require modify library header files)

#include <SPI.h>
#include <Arduino_ESP32SPI.h>
#include <Arduino_GFX.h>
#include <Arduino_ILI9341.h>
Arduino_ESP32SPI *bus = new Arduino_ESP32SPI(16 /* DC */, 5 /* CS */, 18 /* SCK */, 23 /* MOSI */, -1 /* MISO */);
Arduino_ILI9341 *tft = new Arduino_ILI9341(bus, 17 /* RST */);

And Simple Usage

tft->begin();
tft->fillScreen(BLACK);
tft->setCursor(10, 10);
tft->setTextColor(RED);
tft->println("Hello World!");

Performance

This library is not putting speed at the first priority, but still paid much effort to make the display look smooth. Below are some figures compare with other 2 Arduino common display libraries.

  • Arduino IDE: 1.8.10
  • MCU: ESP32-PICO-D4
  • PSRAM: disable
  • Display: ILI9341
  • Interface: SPI@40MHz
  • Test time: 2019 Oct 13
Benchmark Adafruit_GFX Arduino_GFX TFT_eSPI
Screen fill 39,055 32,229 33,355
Text 96,432 18,717 24,010
Pixels 1,353,319 919,219 768,022
Lines 1,061,808 455,992 307,429
Horiz/Vert Lines 17,614 14,277 14,587
Rectangles-filled 405,880 334,974 346,317
Rectangles 11,656 9,374 9,251
Circles-filled 76,619 55,173 62,182
Circles 118,051 52,315 46,909
Triangles-filled 150,999 120,362 117,591
Triangles 58,795 26,143 18,704
Rounded rects-fill 407,755 335,537 376,764
Rounded rects 42,668 21,100 24,201
Foot print Adafruit_GFX Arduino_GFX TFT_eSPI
Flash 232,572 245,544 231,136
Estimate memory 15,512 15,616 15,432

Currently Supported data bus

  • 8-bit and 9-bit hardware SPI (ESP32SPI)
  • 8-bit hardware SPI (HWSPI)
  • 8-bit and 9-bit software SPI (SWSPI)

Tobe Support data bus

  • 8 bit parallel interface

Currently Supported Display

Tobe Support Display

  • LG4573 480x800
  • ST7701 480x800
  • Mono display supported by co-operate with Canvas
  • Multi-color e-ink display supported by co-operate with Canvas

Known issue

  • ESP32SPI data bus class is a little bit faster than HWSPI, but not all chip supported, e.g. SSD1283A