Display DIY
LCD character dislays
Character displays are basically those with predefined (and occasionally rewritable) fonts.
Classical interface
The more barebones interface is often a 16 pin line with a pinout like
- Ground
- Vcc
- Contrast
- usually there's a (trim)pot from Vcc, or a resistor if it's fixed
- RS: Register Select (character or instruction)
- in instruction mode, it receives commands like 'clear display', 'move cursor',
- in character mode,
- RW: Read/Write
- tied to ground is write, which is usually the only thing you do
- ENable / clk (for writing)
- 8 data lines, but you can do most things over 4 of them
- backlight Vcc
- Backlight gnd
The minimal, write-only setup is:
- tie RW to ground
- connect RS, EN, D7, D6, D5, and D4 to digital outs
I2C and other
Matrix displays
(near-)monochrome
SSD1306
OLED, 128x64@4 colorsTemplate:Vierfy
https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf
SH1107
OLED,
https://datasheetspdf.com/pdf-file/1481276/SINOWEALTH/SH1107/1
Small LCD/TFTs / OLEDs
Small as in order of an inch or two (because the controllers are designed for a limited resolution?(verify)).
and some of the ebays and aliexpresses sellers of the world will happily 'accidentally' call any small screen OLED if it means they sell more.
This is further made more confusing by the fact that there are
- few-color OLEDs (2 to 8 colors or so, great for high contrast but only high cotnrast),
- high color OLEDs (65K),
...so you sometimes need to dig into the tech specs to see the difference between high color LCD and high color OLED.
When all pixels are off they give zero light pollution (unlike most LCDs) which might be nice in the dark. These seem to appear in smaller sizes than small LCDs, so are great as compact indicators.
Can it do video or not?
If it does speak e.g. MIPI it's basically just a monitor, probably capable of decent-speed updates, but also the things you can connect to will (on the scale of microcontroller to mini-PC) be moderately powerful, e.g. a raspberry.
But the list below don't connect PC video cables.
Still, they have their own controller, and can hold their pixel state one way or the other, but connect something more command-like - so you can update a moderate amount of pixels with via an interface that is much less speedy or complex.
You might get reasonable results over SPI / I2C for a lot of e.g. basic interfaces and guages. By the time you try to display video you have to think about your design more.
For a large part because amount of pixels to update times the rate of frames per second has to fit through the communication (...also the display's capabilities). There is a semi-standard parallel interface that might make video-speed things feasible. This interface is faster than the SPI/I2C option, though not always that much, depending on hardware details.
Even if the specs of the screen can do it in theory, you also have to have the video ready to send.
If you're running it from an RP2040 or ESP32, don't expect to libav/ffmpeg.
Say, something like the TinyTV runs a 216x135 65Kcolor display from a from a RP2040.
Also note that such hardware won't be doing decoding and rescaling arbitrary video files. They will use specifically pre-converted video.
In your choices, also consider libraries.
Things like TFT_eSPI has a compatibility list you will care about.
Interfaces
ST7735
LCD, 132x162@16bits RGB
ST7789
LCD, 240x320@16bits RGB
https://www.waveshare.com/w/upload/a/ae/ST7789_Datasheet.pdf
SSD1331
OLED, 96x 64, 16bits RGB
https://cdn-shop.adafruit.com/datasheets/SSD1331_1.2.pdf
SSD1309
OLED, 128 x 64, single color?
https://www.hpinfotech.ro/SSD1309.pdf
SSD1351
OLED, 65K color
https://newhavendisplay.com/content/app_notes/SSD1351.pdf
HX8352C
LCD https://www.ramtex.dk/display-controller-driver/rgb/hx8352.htm
HX8357C
R61581
ILI9163
LCD, 162x132@16-bit RGB
http://www.hpinfotech.ro/ILI9163.pdf
ILI9341
https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf
ILI9486
LCD, 480x320@16-bit RGB
https://www.hpinfotech.ro/ILI9486.pdf
ILI9488
LCD
https://www.hpinfotech.ro/ILI9488.pdf
PCF8833
LCD, 132×132 16-bit RGB
https://www.olimex.com/Products/Modules/LCD/MOD-LCD6610/resources/PCF8833.pdf
SEPS225
LCD
https://vfdclock.jimdofree.com/app/download/7279155568/SEPS225.pdf
RM68140
LCD
https://www.melt.com.ru/docs/RM68140_datasheet_V0.3_20120605.pdf
GC9A01
LCD, 65K colors, SPI
Seem to often be used on round displays(verify)
https://www.buydisplay.com/download/ic/GC9A01A.pdf
Epaper
SSD1619
https://cursedhardware.github.io/epd-driver-ic/SSD1619A.pdf