Giter Club home page Giter Club logo

arduino_gfx's Introduction

Arduino_GFX

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

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

Various dat bus interfaces

Most tiny display in hobbiest electronics world support 8-bit SPI, but some require 9-bit SPI. 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 require 9-bit SPI interface.

Larger display most likely not support standalone SPI since it is not fast enough to refresh the full screen details. Most of them can use 8-bit/16-bit Parallel interface.

Ease of use

Simple Declaration

(not require touch the header files in libraries folder)

#include "Arduino_GFX_Library.h"
Arduino_DataBus *bus = new Arduino_HWSPI(16 /* DC */, 5 /* CS */);
Arduino_GFX *gfx = new Arduino_ILI9341(bus, 17 /* RST */);

And Simple Usage

gfx->begin();
gfx->fillScreen(BLACK);
gfx->setCursor(10, 10);
gfx->setTextColor(RED);
gfx->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)
  • 8-bit parallel interface (ESP32PAR8)
  • 16-bit parallel interface (ESP32PAR16)

Tobe Support data bus (Donation can make it happen)

  • ESP32 I2S 8-bit/16-bit parallel interface
  • FastLED

Currently Supported Dev Device

  • M5Stack Core Family
  • Odroid Go
  • TTGO T-Watch
  • Wio Terminal

Currently Supported Display

Tobe Support Display (Donation can make it happen)

  • HX8357A 240x320 (first trial failed)
  • LG4573 480x800 (first trial failed)
  • ILI9806 480x800 (first trial failed)
  • ST7701 480x800
  • FastLED Martix supported by co-operate with Canvas
  • Mono display supported by co-operate with Canvas
  • Multi-color e-ink display supported by co-operate with Canvas
  • ILI9486 320x480 (3 bit color) supported by co-operate with Canvas

Used source code

arduino_gfx's People

Contributors

moononournation avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.