micropython-nano-gui/DISPLAYS.md

177 wiersze
12 KiB
Markdown

2022-05-09 12:49:26 +00:00
# Displays tested with nano-gui and micro-gui
2024-04-08 16:35:17 +00:00
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).
2024-04-08 17:17:33 +00:00
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
2022-05-09 12:49:26 +00:00
2023-01-29 10:39:02 +00:00
Size is diagonal in inches. C/M/GS color/1-bit monochrome/greyscale.
2024-04-08 16:35:17 +00:00
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).
2022-05-09 12:49:26 +00:00
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] | |
2023-09-02 10:21:21 +00:00
| 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. |
2024-04-08 16:35:17 +00:00
| 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. |
2024-04-08 16:35:17 +00:00
| 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. |
2024-04-08 17:17:33 +00:00
| 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
2022-05-09 12:49:26 +00:00
[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.
2022-05-09 12:49:26 +00:00
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.
2023-09-02 10:21:21 +00:00
## User contributed drivers
The following drivers were contributed by users. I am unable to support these as
2023-09-02 10:21:21 +00:00
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)
2022-05-10 15:52:40 +00:00
## Adafruit displays
See [these notes](./ADAFRUIT.md) for wiring details, pin names and hardware
issues.
# Unlisted displays
## Displays whose controller is listed above
2022-05-09 12:49:26 +00:00
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.
2022-05-10 15:52:40 +00:00
## 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.
2024-04-08 16:35:17 +00:00
# Touch displays
| Label | Controller | Comments |
2024-04-08 17:17:33 +00:00
|:-----:|:--------------|:------------------------------------------------|
2024-04-08 16:35:17 +00:00
| R | [TSC2007][1t] | Resistive touch needs [external controller][1q] |
| T | [XPT2046][2t] | Resistive touch, XPT2046 controller. |
| K | [FT6206][3t] | Capacitive touch controller. |
2022-05-10 16:04:24 +00:00
# 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)
2022-05-09 12:49:26 +00:00
[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
2022-05-09 12:49:26 +00:00
[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
2022-09-05 10:33:05 +00:00
[10d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/DRIVERS.md#53-waveshare-400x300-pi-pico-display
2022-11-06 11:27:36 +00:00
[11d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/DRIVERS.md#23-drivers-for-ssd1327
2023-01-10 11:39:11 +00:00
[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
2023-09-02 10:21:21 +00:00
[16d]: https://github.com/peterhinch/micropython-nano-gui/blob/master/drivers/st7567s/st7567s.py
2022-05-09 12:49:26 +00:00
[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
2022-09-05 10:33:05 +00:00
[18m]: https://www.waveshare.com/wiki/Pico-LCD-2
2024-04-08 17:17:33 +00:00
[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
2022-11-06 11:27:36 +00:00
[21m]: https://www.seeedstudio.com/Grove-OLED-Display-1-12.html?queryID=080778ddd8f54df96ca0e016af616327&objectID=1763&indexName=bazaar_retailer_products
2023-01-10 11:39:11 +00:00
[22m]: https://www.waveshare.com/product/3.5inch-rpi-lcd-a.htm
[23m]: https://shop.pimoroni.com/products/pico-display-pack?variant=32368664215635
2023-01-27 14:20:26 +00:00
[24m]: https://www.adafruit.com/product/2050
2023-01-29 10:39:02 +00:00
[25m]: https://www.waveshare.com/wiki/Pico-ResTouch-LCD-3.5
[26m]: https://aliexpress.com/item/1005004644515880.html
2023-09-02 10:21:21 +00:00
[27m]: https://www.buydisplay.com/1-4-inch-graphic-128x64-lcd-module-serial-spi-st7567s-black-on-white
2024-04-08 16:35:17 +00:00
[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
2024-04-08 17:17:33 +00:00
[1z]: https://github.com/peterhinch/micropython-micro-gui/blob/main/README.md#10-epaper-displays