Display types: Difference between revisions
m (→GC9A01) |
|||
(42 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
==Backlit flat-panel displays== | ==Backlit flat-panel displays== | ||
<!-- | <!-- | ||
We may call them LCD, but that was an early generation | |||
LCD and TFT and various other acronyms are all the same idea, with different refinements on how the pixels work exactly. | LCD and TFT and various other acronyms are all the same idea, with different refinements on how the pixels work exactly. | ||
There are roughly two parts of such monitors you can care about: How the backlight works, and how the pixels work. | |||
But almost all of them come down to | But almost all of them come down to | ||
* put bright lights on the side | * pixels will block light, or less so. | ||
* put a bright lights behind those | |||
: in practice, they are on the side, and there is some trickery to try to reflect that as uniformly as possible | |||
There are | There are a lot of acronyms pointing tou | ||
: TN and IPS is more about the crystals (and you mostly care about that if you care about viewing angle), | |||
: TFT is more about the electronics, but the two aren't really separable, | |||
: and then there are a lot of experiments (with their own acronyms) that | |||
https://en.wikipedia.org/wiki/TFT_LCD | |||
TFT, UFB, TFD, STN | |||
--> | --> | ||
Line 41: | Line 51: | ||
https://nl.wikipedia.org/wiki/CCFL | https://nl.wikipedia.org/wiki/CCFL | ||
=== | ==Self-lit== | ||
===OLED=== | |||
<!-- | <!-- | ||
While OLED is also a thing in lighting, OLED ''usually'' comes up in the context of OLED displays. | |||
It is mainly contrasted with backlit displays (because it is hard to get those to block all light). | |||
OLEDs being off just emit no light at all. So the blacks are blacker, you could go brighter at the same time, | |||
There are some other technical details why they tend to look a little crisper. | |||
Viewing angles are also better, ''roughly'' because the light source is closer to the surface. | |||
OLED are organic LEDs, which in itself party just a practical production detail, | OLED are organic LEDs, which in itself party just a practical production detail, and really just LEDs. | ||
(...though you can get fancy in the production process, e.g. see-through | {{comment|(...though you can get fancy in the production process, e.g. pricy see-through displays are often OLED with substate trickery{{verify}})}} | ||
PMOLED versus AMOLED makes no difference to the light emission, | |||
just to the way we access them, but it can mean lower power, higher speed, and more options along that scale{{verify}}, | |||
all of which makes them interesting for mobile uses. It also scales better to larger monitors. | |||
POLED (and confusingly, pOLED is a trademark) uses a polymer instead of the glass, | |||
so is less likely to break but has other potential issues | |||
Line 71: | Line 82: | ||
'''Confusion''' | '''Confusion''' | ||
"Isn't LED screen the same as OLED?" | |||
No. | |||
Marketers will be happy if you confuse "we used a LED backlight instead of a CCFL" (which we've been doing for ''ages'') | |||
with "one of those new hip crisp OLED thingies", while not technically lying, | |||
so they may be fuzzy about what they mean with "LED display". | |||
You'll know when you have an OLED monitor, because it will cost ten times as much - a thousand USD/EUR, more at TV sizes. | |||
The cost-benefit for people without a bunch of disposable income isn't really there. | |||
"I heard al phones use OLED now?" | |||
Fancier, pricier ones do, yes. | |||
Cheaper ones do not, because the display alone might cost on the order of a hundred bucks.{{verify}} | |||
Line 97: | Line 108: | ||
===QLED=== | ===QLED=== | ||
<!-- | <!-- | ||
It's quantum, so it's buzzword compatible. | It's quantum, so it's buzzword compatible. How is it quantum? Who knows! | ||
It may surprise you that this is LCD-style, not OLED-style, | |||
but is brighter than most LCD style, | |||
they're still working on details like decent contrast. | |||
Line 290: | Line 301: | ||
--> | --> | ||
===Matrix | ===Matrix displays=== | ||
===(near-)monochrome=== | |||
====SSD1306==== | |||
OLED, 128x64@4 colors{{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 LCD/TFTs / OLEDs=== | ||
{{stub}} | {{stub}} | ||
Small as in order of an inch. | Small as in order of an inch or two (because the controllers are designed for a limited resolution?{{verify}}). | ||
{{zzz|Note that, like with monitors, marketers really don't mind if you confuse backlit LCD with OLED, | |||
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. | |||
}} | |||
<!-- | |||
[[Image:OLED.jpg|thumb|300px|right|Monochrome OLED]] | |||
[[Image:OLED.jpg|thumb|300px|right|High color OLED]] | |||
[[Image:Not OLED.jpg|thumb|400px|right|Not OLED (clearly backlit)]] | |||
--> | |||
When all pixels are off they give zero light pollution (unlike most LCDs) which might be nice in the dark. | When all pixels are off they give zero light pollution (unlike most LCDs) which might be nice in the dark. | ||
Line 312: | Line 346: | ||
''' | '''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 {{imagesearch|tinycircuits tinytv|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 [https://github.com/Bodmer/TFT_eSPI TFT_eSPI] has a compatibility list you will care about. | |||
====Interfaces==== | |||
{{stub}} | |||
<!-- | |||
* 4-line SPI | |||
* 3-line SPI ([[half duplex]], basically) | |||
* I2C | |||
* 6800-series parallel | |||
* 8080-series parallel interface | |||
The last two are 8-bit parallel interfaces. ''In theory'' these can be multiples faster, | |||
though notice that in some practice you are instead limited by the display's controller, | |||
your own ability to speak out data that fast, and the difference may not even be twice | |||
(and note that [[bit-banging]] that parallel may take a lot more CPU than dedicated SPI would). | |||
The numbers aren't about capability, they seem to purely references then Intel versus Motorola origins of their specs{{verify}}) | |||
They are apparently very similar - the main differences being the read/write and enable, and in some timing. | |||
: If they support both, 8080 seems preferable, in part because some only support that?{{verify}} | |||
There are others that aren't quite ''generic'' high speed moniutor interfaces yet, | |||
but too fast for slower hardware (e.g. CSI, MDDI) | |||
https://forum.arduino.cc/t/is-arduino-6800-series-or-8080-series/201241/2 | |||
--> | |||
====ST7735==== | ====ST7735==== | ||
LCD, 132x162@16bits RGB | |||
<!-- | <!-- | ||
* SPI interface (or parallel) | * SPI interface (or parallel) | ||
Line 380: | Line 459: | ||
--> | --> | ||
====ST7789==== | |||
LCD, 240x320@16bits RGB | |||
https://www.waveshare.com/w/upload/a/ae/ST7789_Datasheet.pdf | https://www.waveshare.com/w/upload/a/ae/ST7789_Datasheet.pdf | ||
====SSD1331==== | ====SSD1331==== | ||
OLED, 16bits RGB | |||
https://cdn-shop.adafruit.com/datasheets/SSD1331_1.2.pdf | https://cdn-shop.adafruit.com/datasheets/SSD1331_1.2.pdf | ||
====SSD1351==== | |||
OLED, 65K color | |||
https://newhavendisplay.com/content/app_notes/SSD1351.pdf | https://newhavendisplay.com/content/app_notes/SSD1351.pdf | ||
====HX8352C==== | ====HX8352C==== | ||
LCD | |||
<!-- | |||
240(RGB)x480, 16-bit | |||
--> | |||
https://www.ramtex.dk/display-controller-driver/rgb/hx8352.htm | https://www.ramtex.dk/display-controller-driver/rgb/hx8352.htm | ||
====HX8357C==== | |||
====R61581==== | |||
<!-- | |||
240x320 | |||
--> | |||
====ILI9163==== | ====ILI9163==== | ||
LCD, 162x132@16-bit RGB | |||
http://www.hpinfotech.ro/ILI9163.pdf | http://www.hpinfotech.ro/ILI9163.pdf | ||
====ILI9341==== | ====ILI9341==== | ||
<!-- | |||
240RGBx320, 16-bit | |||
--> | |||
https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf | https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf | ||
====ILI9486==== | ====ILI9486==== | ||
LCD, 480x320@16-bit RGB | |||
https://www.hpinfotech.ro/ILI9486.pdf | https://www.hpinfotech.ro/ILI9486.pdf | ||
====ILI9488==== | ====ILI9488==== | ||
LCD | |||
<!-- | |||
320(RGB) x 480 | |||
--> | |||
https://www.hpinfotech.ro/ILI9488.pdf | https://www.hpinfotech.ro/ILI9488.pdf | ||
====PCF8833==== | ====PCF8833==== | ||
LCD, 132×132 16-bit RGB | |||
https://www.olimex.com/Products/Modules/LCD/MOD-LCD6610/resources/PCF8833.pdf | https://www.olimex.com/Products/Modules/LCD/MOD-LCD6610/resources/PCF8833.pdf | ||
====SEPS225==== | ====SEPS225==== | ||
LCD | |||
https://vfdclock.jimdofree.com/app/download/7279155568/SEPS225.pdf | https://vfdclock.jimdofree.com/app/download/7279155568/SEPS225.pdf | ||
==== | ====RM68140==== | ||
LCD | |||
<!-- | |||
320 RGB x 480 | |||
--> | |||
https:// | https://www.melt.com.ru/docs/RM68140_datasheet_V0.3_20120605.pdf | ||
====GC9A01 (round)==== | |||
====GC9A01==== | |||
LCD, 65K colors, SPI | |||
https://www.buydisplay.com/download/ic/GC9A01A.pdf | https://www.buydisplay.com/download/ic/GC9A01A.pdf |
Revision as of 19:42, 24 March 2024
Backlit flat-panel displays
CCFL or LED backlight
https://nl.wikipedia.org/wiki/CCFL
Self-lit
OLED
QLED
On image persistence / burn-in
VFD
-
larger segments
-
dot matrix VFD
Vacuum Fluorescent Displays are vacuum tubes applied in a specific way - see Lightbulb_notes#VFDs for more details.
Lighting
Nixie tubes
Mechanical
Mechanical counter
https://en.wikipedia.org/wiki/Mechanical_counter
Split-flap
https://en.wikipedia.org/wiki/Split-flap_display
LED segments
7-segment and others
These are really just separate lights that happen to be arranged in a useful shape.
Very typically LEDs (with a common cathode or anode), though similar ideas are sometimes implemented in other display types - notably the electromechanical one, also sometimes VFD.
Even the simplest, 7-segment LED involves a bunch of connectors so are
- often driven multiplexed, so only one of them is on at a time.
- often done via a controller that handles that multiplexing for you
Seven segments are the minimal and classical case,
good enough to display numbers and so e.g. times, but not really for characters.
More-than-7-segment displays are preferred for that.
https://en.wikipedia.org/wiki/Seven-segment_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, 16bits RGB https://cdn-shop.adafruit.com/datasheets/SSD1331_1.2.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 (round)
LCD, 65K colors, SPI