micropython-nano-gui/DISPLAYS.md

177 wiersze
12 KiB
Markdown

# Displays tested with nano-gui and micro-gui
Drivers used in [nano-gui](https://github.com/peterhinch/micropython-nano-gui),
[micro-gui](https://github.com/peterhinch/micropython-micro-gui) and
[micropython-touch](https://github.com/peterhinch/micropython-touch) are
identical. These displays and drivers are also compatible with the
[Writer class](https://github.com/peterhinch/micropython-font-to-py/blob/master/writer/WRITER.md).
Note that most ePaper/eInk displays are unsuitable for interactive use owing to
their long update time. The one exception is the [Waveshare pico 4.2 inch][19m]
which is quick enough to [work with micro-gui][1z].
## Displays using drivers in this repo
Size is diagonal in inches. C/M/GS color/1-bit monochrome/greyscale.
Displays with a touch overlay are denoted by T, K or R depending on the touch
hardware. See [Touch Displays below](./DISPLAYS.md#touch-displays).
Width and height are pixels.
| Size | Width | Height | Tech | Driver | Description | Notes |
|:------:|:-----:|:------:|:------|:---------------|:-----------------------------|:---------------------------------------------|
| 0.96C | 94 | 64 | OLED | [SSD1331][1d] | [Adafruit 684][1m] | |
| 1.12GS | 96 | 96 | OLED | [SSD1327][11d] | [Seeed 104030011][21m] | Obsolescent. |
| 1.27C | 128 | 96 | OLED | [SSD1351][2d] | [Adafruit 1673][2m] | |
| 1.5C | 128 | 128 | OLED | [SSD1351][2d] | [Adafruit 1431][3m] | |
| 1.4M | 128 | 64 | LCD | [SSD7567s][16d]| [ST7567s][27m] | Similar to SSD1306 |
| 1.44C | 128 | 128 | TFT | [ST7735R][4d] | [Adafruit 2088][5m] | |
| 1.5C | 160 | 128 | TFT | [ST7735R][4d] | [Adafruit 358][6m] | |
| 1.3C | 240 | 240 | TFT | [ST7789][5d] | [Adafruit 4313][7m] | |
| 1.5GS | 128 | 128 | OLED | [SSD1327][11d] | [Waveshare 13992][20m] | |
| 2.0C | 320 | 240 | TFT | [ST7789][5d] | [Waveshare Pico LCD 2][18m] | For Pi Pico. |
| 1.54C | 240 | 240 | TFT | [ST7789][5d] | [Adafruit 3787][8m] | |
| 1.14C | 240 | 135 | TFT | [ST7789][5d] | [T-Display][9m] | ESP32 with attached display. |
| 2.8C K | 240 | 320 | TFT | [ILI9341][6d] | [Adafruit touch shield][28m] | Arduino shield format capacitive touch. |
| 2.8C T | 320 | 240 | TFT | [ST7789][5d] | [Waveshare pico 2.8][10m] | Display for Pi Pico. (Touch support). |
| 1.14C | 240 | 135 | TFT | [ST7789][5d] | [Waveshare pico 1.14][11m] | For Pi Pico. Buttons good for micro-gui. |
| 1.14C | 240 | 135 | TFT | [ST7789][5d] | [Pimoroni pico 1.14][23m] | For Pi Pico. Buttons good for micro-gui. |
| 3.2C R | 320 | 240 | TFT | [ILI9341][6d] | [Adafruit 1743][12m] | Big touch unit. eBay equivalents work here. |
| 3.5C T | 480 | 320 | TFT | [ILI9486][12d] | [Waveshare Rpi 3.5 LCD][22m] | Pi HAT. Many pixels. Needs plenty of RAM. |
| 3.5C R | 480 | 320 | TFT | [ILI9486][12d] | [Adafruit 3.5 LCD][24m] | 3.5" HX8357D touch, notes as above. |
| 3.5C T | 480 | 320 | TFT | [ILI9486][12d] | [Waveshare Pico 3.5][25m] | 3.5" Pico ILI9488 (touch). |
| 2.9M | 296 | 128 | eInk | [UC8151D][7d] | [Adafruit 4262][13m] | Flexible ePaper display. |
| 2.9M | 296 | 128 | eInk | [UC8151D][7d] | [Adafruit 4777][15m] | FeatherWing ePaper display. |
| 2.9M | 296 | 128 | eInk | [SSD1680][15d] | [WeAct Studio ePaper][26m] | WeAct Studio ePaper display. |
| 4.2M | 400 | 300 | eInk | [WS][10d] | [Waveshare pico 4.2][19m] | Pico plugs in, others via cable [see][1z]. |
| 2.7M | 274 | 176 | eInk | [HAT][8d] | [Waveshare HAT][14m] | HAT designed for Raspberry Pi, repurposed. |
| 2.7M | 400 | 240 | Sharp | [Sharp][9d] | [Adafruit 4694][16m] | Micropower monochrome display. |
| 1.3M | 168 | 144 | Sharp | [Sharp][9d] | [Adafruit 3502][17m] | Ditto. |
## Displays using compatible drivers
Monochrome OLED displays based on the SSD1306 chip are supported via the
[official driver][3d]. Displays are available from various sources and can use
I2C or SPI interfaces. An example is [Adafruit 938][4m]. The [SSD1306 driver][14d]
in this repo has minor additions to support demos intended for color displays.
Monochrome OLED displays based on the SH1106 chip are supported via the
[unofficial driver](https://github.com/robert-hh/SH1106). The [SH1106 driver][13d]
in this repo has minor additions to support demos intended for color displays.
Displays are available from various sources and can use I2C or SPI interfaces.
An exmaple is the [Inland IIC SPI 1.3" 128x64 OLED V2.0](https://www.microcenter.com/product/643965/inland-iic-spi-13-128x64-oled-v20-graphic-display-module-for-arduino-uno-r3)
AKA [KeyStudio](https://wiki.keyestudio.com/Ks0056_keyestudio_1.3%22_128x64_OLED_Graphic_Display).
Nokia 5110 (PCD8544) displays. [This driver](https://github.com/mcauser/micropython-pcd8544.git)
is compatible.
Waveshare have published drivers for their other products, claiming nano-gui
compatibility. Lacking the relevant hardware I am not in a position to assess or
support these but feel free to use them. They have re-published `nano-gui` which
they are entitled to do, but their copy may not include the latest bugfixes or
enhancements.
## User contributed drivers
The following drivers were contributed by users. I am unable to support these as
I don't possess the relevant hardware.
SSD7567s contributed by EnricoRoss98 [PR](https://github.com/peterhinch/micropython-nano-gui/pull/57)
SSD1680.py contributed by EnricoRoss98 [PR](https://github.com/peterhinch/micropython-nano-gui/pull/56)
## Adafruit displays
See [these notes](./ADAFRUIT.md) for wiring details, pin names and hardware
issues.
# Unlisted displays
## Displays whose controller is listed above
An untested display that uses a supported controller is not guaranteed to work.
This is because a controller can be connected to the display in a variety of
ways. In some cases the existing driver can be persuaded to work, sometimes by
using nonstandard constructor arguments. In other cases the driver itself needs
to be adapted.
## Other controllers
For an unlisted controller the first step is to see if there is an existing
driver that can be ported. Adafruit publish CircuitPython drivers for their
hardware: these are easy to port to MicroPython. Only a minimal subset is
needed to support these GUI's, with the result that the drivers can be very
simple. See [this doc](./DRIVERS.md#7-writing-device-drivers) for details.
# Touch displays
| Label | Controller | Comments |
|:-----:|:--------------|:------------------------------------------------|
| R | [TSC2007][1t] | Resistive touch needs [external controller][1q] |
| T | [XPT2046][2t] | Resistive touch, XPT2046 controller. |
| K | [FT6206][3t] | Capacitive touch controller. |
# Links
#### [Device driver document.](./DRIVERS.md)
#### [nano-gui](https://github.com/peterhinch/micropython-nano-gui)
#### [micro-gui](https://github.com/peterhinch/micropython-micro-gui)
#### [Writer and CWriter](https://github.com/peterhinch/micropython-font-to-py/blob/master/writer/WRITER.md)
[1d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/DRIVERS.md#22-drivers-for-ssd1331
[2d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/DRIVERS.md#21-drivers-for-ssd1351
[3d]: https://github.com/micropython/micropython/blob/master/drivers/display/ssd1306.py
[4d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/DRIVERS.md#31-drivers-for-st7735r
[5d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/DRIVERS.md#33-drivers-for-st7789
[6d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/DRIVERS.md#32-drivers-for-ili9341
[7d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/DRIVERS.md#51-adafruit-monochrome-eink-displays
[8d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/DRIVERS.md#52-waveshare-eink-display-hat
[9d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/DRIVERS.md#4-drivers-for-sharp-displays
[10d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/DRIVERS.md#53-waveshare-400x300-pi-pico-display
[11d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/DRIVERS.md#23-drivers-for-ssd1327
[12d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/DRIVERS.md#34-driver-for-ili9486
[13d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/drivers/sh1106/sh1106.py
[14d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/drivers/ssd1306/ssd1306.py
[15d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/DRIVERS.md#54-weact-studio-ssd1680-eink-displays
[16d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/drivers/st7567s/st7567s.py
[1m]: https://www.adafruit.com/product/684
[2m]: https://www.adafruit.com/product/1673
[3m]: https://www.adafruit.com/product/1431
[4m]: https://www.adafruit.com/product/938
[5m]: https://www.adafruit.com/product/2088
[6m]: https://www.adafruit.com/product/358
[7m]: https://www.adafruit.com/product/4313
[8m]: https://www.adafruit.com/product/3787
[9m]: http://www.lilygo.cn/prod_view.aspx?TypeId=50033&Id=1126&FId=t3%3a50033%3a3&msclkid=b46a3d0ecf7d11ec88e6ae013d02d194
[10m]: https://www.waveshare.com/Pico-ResTouch-LCD-2.8.htm
[11m]: https://www.waveshare.com/pico-lcd-1.14.htm
[12m]: https://www.adafruit.com/product/1743
[13m]: https://www.adafruit.com/product/4262
[14m]: https://www.waveshare.com/wiki/2.7inch_e-Paper_HAT
[15m]: https://www.adafruit.com/product/4777
[16m]: https://www.adafruit.com/product/4694
[17m]: https://www.adafruit.com/product/3502
[18m]: https://www.waveshare.com/wiki/Pico-LCD-2
[19m]: https://www.waveshare.com/pico-epaper-4.2.htm
[20m]: https://www.waveshare.com/product/ai/displays/oled/1.5inch-oled-module.htm?___SID=U
[21m]: https://www.seeedstudio.com/Grove-OLED-Display-1-12.html?queryID=080778ddd8f54df96ca0e016af616327&objectID=1763&indexName=bazaar_retailer_products
[22m]: https://www.waveshare.com/product/3.5inch-rpi-lcd-a.htm
[23m]: https://shop.pimoroni.com/products/pico-display-pack?variant=32368664215635
[24m]: https://www.adafruit.com/product/2050
[25m]: https://www.waveshare.com/wiki/Pico-ResTouch-LCD-3.5
[26m]: https://aliexpress.com/item/1005004644515880.html
[27m]: https://www.buydisplay.com/1-4-inch-graphic-128x64-lcd-module-serial-spi-st7567s-black-on-white
[28m]: https://www.adafruit.com/product/1947
[1t]: https://github.com/peterhinch/micropython-touch/blob/master/TOUCHPAD.md#tsc2007
[2t]: https://github.com/peterhinch/micropython-touch/blob/master/TOUCHPAD.md#xpt2046
[3t]: https://github.com/peterhinch/micropython-touch/blob/master/TOUCHPAD.md#ft6206-capacitive-controller
[1q]: https://www.adafruit.com/product/5423
[1z]: https://github.com/peterhinch/micropython-micro-gui/blob/main/README.md#10-epaper-displays