|
|
(4 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| | {{#addbodyclass:tag_tech}} |
| {{avnotes}} | | {{avnotes}} |
|
| |
|
| =Just a few elements=
| |
|
| |
|
| ==Lighting== | | ==Light-up displays== |
| | |
| | |
| | ===Eggcrate display=== |
| | |
| | <!-- |
| | An eggcrate display is a number of often-incandescent, often-smallish lighbulbs in a grid (often 5 by 7), |
| | named for the pattern of round cutouts |
| | |
| | |
| | These were bright, and primarily used in gameshows, presumably because they would show up fine even in bright studio lighting. |
| | |
| | Note that when showing $0123456789, not all bulbs positions are necessary. |
| | |
| | |
| | --> |
| | |
|
| |
|
| ===Nixie tubes=== | | ===Nixie tubes=== |
Line 21: |
Line 37: |
| <!-- | | <!-- |
| https://en.wikipedia.org/wiki/Dekatron | | https://en.wikipedia.org/wiki/Dekatron |
| -->
| |
|
| |
| ===Eggcrate display===
| |
|
| |
| <!--
| |
| An eggcrate display is a number of often-incandescent, often-smallish lighbulbs in a grid (often 5 by 7),
| |
| named for the pattern of round cutouts
| |
|
| |
|
| |
| These were bright, and primarily used in gameshows, presumably because they would show up fine even in bright studio lighting.
| |
|
| |
| Note that when showing $0123456789, not all bulbs positions are necessary.
| |
|
| |
|
| |
| --> | | --> |
|
| |
|
Line 69: |
Line 71: |
| ===Vane display=== | | ===Vane display=== |
|
| |
|
| | A physical seven-segment display |
| | |
| | https://en.wikipedia.org/wiki/Vane_display |
|
| |
|
| ===Flip-disc=== | | ===Flip-disc=== |
Line 110: |
Line 115: |
|
| |
|
| https://en.wikipedia.org/wiki/Seven-segment_display | | 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====
| |
| <!--
| |
| Basically the above wrapped in a controller you can address via I2C or SPI (and usually they then speak that older parallel interface)
| |
|
| |
| Sometimes these are entirely separate ones bolted onto the classical interface.
| |
|
| |
|
| |
|
| |
| For DIY, you may prefer these just because it's less wiring hassle.
| |
|
| |
| -->
| |
|
| |
| ===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===
| |
| {{stub}}
| |
|
| |
| 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 LED-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.
| |
| 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 {{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====
| |
|
| |
| LCD, 132x162@16bits RGB
| |
|
| |
| <!--
| |
| * SPI interface (or parallel)
| |
|
| |
| * 396 source line (so 132*RGB) and 162 gate line
| |
| * display data RAM of 132 x 162 x 18 bits
| |
|
| |
| * 2.7~3.3V {{verify}}
| |
|
| |
|
| |
| Boards that expose SPI will have roughly:
| |
| : GND: power supply
| |
| : VCC: 3.3V-5.0V
| |
|
| |
| : SCL: SPI clock line
| |
| : SDA: SPI data line
| |
|
| |
| : RES: reset
| |
|
| |
| : D/C: data/command selection
| |
| : CS: chip Selection interface
| |
|
| |
| : BLK: backlight control (often can be left floating, presumably pulled up/down)
| |
|
| |
|
| |
| Lua / NodeMCU:
| |
| * [https://nodemcu.readthedocs.io/en/release/modules/ucg/ ucg]
| |
| * [https://nodemcu.readthedocs.io/en/release/modules/u8g2/ u8g2]
| |
| * https://github.com/AoiSaya/FlashAir-SlibST7735
| |
|
| |
|
| |
| Arduino libraries
| |
| * https://github.com/adafruit/Adafruit-ST7735-Library
| |
| * https://github.com/adafruit/Adafruit-GFX-Library
| |
|
| |
| These libraries may hardcode some of the pins (particularly the SPI ones),
| |
| and this will vary between libraries.
| |
|
| |
|
| |
|
| |
| '''ucg notes'''
| |
|
| |
|
| |
| Fonts that exist: https://github.com/marcelstoer/nodemcu-custom-build/issues/22
| |
| fonts that you have: for k,v in pairs(ucg) do print(k,v) end
| |
|
| |
|
| |
| http://blog.unixbigot.id.au/2016/09/using-st7735-lcd-screen-with-nodemcu.html
| |
|
| |
| -->
| |
|
| |
| ====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
| |
| <!--
| |
| 240(RGB)x480, 16-bit
| |
| -->
| |
| https://www.ramtex.dk/display-controller-driver/rgb/hx8352.htm
| |
|
| |
|
| |
|
| |
| ====HX8357C====
| |
|
| |
| ====R61581====
| |
|
| |
| <!--
| |
| 240x320
| |
| -->
| |
|
| |
| ====ILI9163====
| |
| LCD, 162x132@16-bit RGB
| |
|
| |
| http://www.hpinfotech.ro/ILI9163.pdf
| |
|
| |
| ====ILI9341====
| |
|
| |
| <!--
| |
| 240RGBx320, 16-bit
| |
| -->
| |
| https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf
| |
|
| |
| ====ILI9486====
| |
| LCD, 480x320@16-bit RGB
| |
|
| |
| https://www.hpinfotech.ro/ILI9486.pdf
| |
|
| |
| ====ILI9488====
| |
| LCD
| |
| <!--
| |
| 320(RGB) x 480
| |
| -->
| |
|
| |
| 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
| |
| <!--
| |
| 320 RGB x 480
| |
| -->
| |
|
| |
| 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
| |
|
| |
| [[Category:Computer]]
| |
| [[Category:Hardware]]
| |
|
| |
| ===Epaper===
| |
|
| |
| ====SSD1619====
| |
|
| |
| https://cursedhardware.github.io/epd-driver-ic/SSD1619A.pdf
| |
|
| |
| <!--
| |
| ====UC8151====
| |
|
| |
| https://www.orientdisplay.com/wp-content/uploads/2022/09/UC8151C.pdf
| |
|
| |
|
| |
| -->
| |