Time to retire the 16x2 LCD

Most of us can remember seeing some technological gadget for the first time. Depending on your age, you might fondly remember the first CD, first smartphone, first pocket calculator. They were new and exciting once. But the 16x2 LCD was never cool. Low-contrast, slow to update, a terrible signal interface. All these shortcomings were apparent from the beginning, yet somehow it lasts and lasts. The HD44780-based display got a lot of adoption but never much love.

Image by Sparkfun
Well, here's something better. It's a 480x128 RGB panel - you can get them from multiple sources, starting at under $20.

This image was deleted by MailChimp when they shut down TinyLetter.
This one from buydisplay is high-contrast with a strong backlight. It has the same 40-pin connector as a 4.3" panel, so a GD3X can drive it directly. (All these examples are in Python, here, and I've also linked each image to the code snippet.)

This image was deleted by MailChimp when they shut down TinyLetter.
Its signaling is a little odd. The panel acts as if it is the bottom 128 pixels of a 480x272 display. That is, you feed it a 480x272 picture, and it ignores the first 144 lines and displays the last 128. (I experimented with sending fewer than 272 lines, and confirmed that it needs the whole picture to sync.)

This image was deleted by MailChimp when they shut down TinyLetter.
EVE copes just fine with this for the most part. If you use the screen rotate picture, you can just turn the screen upside-down and forget about the invisible 144 lines. If you drive it non-inverted, then the the top left is not (0, 0) but instead (0, 144). It's not very complicated, and you can always use:

gd.VertexTranslateY(144)
to get the EVE hardware to apply the offset for you.

You can use it just like an old text LCD:
This image was deleted by MailChimp when they shut down TinyLetter.
Or do something completely new!

This image was deleted by MailChimp when they shut down TinyLetter.
Thanks for reading.