Es gibt seit einiger Zeit runde Displays mit Breakout Boards mit einer Auflösung von 240x240 Bildpunkten und einer Diagonale von 32mm (1,28").
Diese gibt es für den kleinen Geldbeutel (<10€) z.B. bei Aliexpress

Ich wollte so ein Display über einen ESP8266 (per NodeMCU D1 Mini) ansteuern, da dieser zum Einen mit ausreichend Speicher ausgerüstet ist, zum Anderen ist dieser mit den 3.3V Pegeln des Displays kompatibel. Prinzipiell kann man das Display auch mit jedem anderen Controller ansteuern, muss dann aber ggf. jeweils 2.2k Widerstände in die Signalleitungen setzen, alternativ eine "richtige" Pegelanpassung vornehmen.

Ich musste ziemlich lange nach einer geeigneten Library suchen, die auch mit dem verbauten Controller kompatibel ist - diese funktioniert sehr gut:
https://github.com/Bodmer/TFT_eSPI
(die "User.h" im Library Verzeichnis muss für den Controller anpasst werden)

#define GC9A01_DRIVER
#define TFT_HEIGHT 240 // GC9A01 240 x 240
#define TFT_CS PIN_D8 // Chip select control pin D8
#define TFT_DC PIN_D3 // Data Command control pin
#define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line)


Falls nicht nur Texte/Fonts, sondern auch Bilder angezeigt werden sollen:
https://github.com/Bodmer/JPEGDecoder

Zum Konvertieren von JPEG-Bildern zu DatenArrays nutze ich dieses Tool:
https://tomeko.net/online_tools/file_to_hex.php?lang=en


Mir war zuerst die Pin-Zuordnung nicht ganz schlüssig, habe ich daher mal dokumentiert:

Display

Signal

ESP8266 (PIN)

Arduino Uno/Nano (PIN)

GND

Ground

GND

GND

VCC

Power Supply

3.3V

3.3V

SCL

Clock Input (SCK SPI)

D5

D13 (remember R2.2k)

SDA

Data Input (SDI/Mosi SPI)

D7

D11 (remember R2.2k)

RES

Reset

D4 (user.h)

D4 (user.h, remember R2.2k)

DC

Data/Command Select

D3 (user.h)

D3 (user.h, remember R2.2k)

CS

Chip Select (CS SPI)

D8 (user.h)

D8 (user.h, remember R2.2k)

BL

Backlight Control

every IO (low="off)

every IO (low="off, remember R2.2k)