Quest for a Decent LCD
Floppy Emu uses an 84×48 graphical LCD display. It’s just a low-resolution 1-bit display, but it’s fast and easy to use, and has a nice built-in backlight. The display is actually a clone of the old Nokia 5110 phone display, and it’s made by semi-mysterious third-party factories in Shenzhen. It can be purchased in bulk for about $2.50 apiece. Photo from RH Electronics.
The big problem with these Nokia 5110 displays is that their reliability stinks. The actual LCD module (the glass and metal bit) is clipped onto a supporting PCB with some passive electronics, and it’s only a pressure-fit holding the two together. If it’s not clipped in just right, the display will exhibit contrast problems, or glitchy behavior, or just won’t work at all. Gently pushing on the LCD frame sometimes changes the pressure-fit enough to make these problems appear and disappear. Adjusting and tightening the LCD clips, as described in the Floppy Emu manual, is the only thing I’ve found that helps.
The electronics assembler that builds Floppy Emus must go through every LCD to check for problems. They usually end up discarding about 10% of all the LCDs, because they don’t work no matter how the clips are adjusted. Once the boards are finished, I do a second check of each LCD immediately before it’s shipped to the customer. This often requires more fiddling with the clips, or manual contrast adjustments, and a further 5% of LCDs are discarded. It’s very time-consuming, but despite all this effort, some troublesome LCDs still reach customers who must then make further adjustments.
In the most recent batch of LCDs, the pressure-fit contact design changed slightly, and it now appears to be even more troublesome than before. At the same time, the LCD bezel was unexpectedly enlarged by 2mm, forcing me to redesign the Floppy Emu acrylic case to match. This is a risk of buying generic parts from eBay and Alibaba, with no manufacturer to stand behind them or datasheet to document them.
Surely There Must Be Something Better?
It would be very nice to replace the 5110 displays with something similar but more stable. A replacement would need to handle about 84 x 48 1-bit pixels (equivalent to 21 x 6 text characters), with a diagonal size about 1.5 inches, and ideally use an SPI interface. Unfortunately, I’ve found nothing that even comes close. The alternatives are either much too large/small, lack graphical capabilities, are too slow, or are much too expensive.
Character and numeric displays aren’t appropriate, since they can’t do graphics or six rows of text. So looking at Digikey’s Display Modules – LCD, OLED, Graphic category, and sorting by unit price quantity 100 purchasing, and including only those results that have at least a few hundred units in stock, I found these:
128×128 RGB LCD, 1.44 inch diagonal, $4.23 – This could almost work, except I believe it’s a 24-bit color display, so the microcontroller would need to move 24x as much data to draw on it. And because it’s a much higher resolution, the amount of data to moved must be still higher to maintain the same font sizes as the old display. And it’s a slow I2C interface, instead of fast SPI. And there’s no datasheet.
128×32 LCD, $8.01 – This is an odd shape, doesn’t have enough vertical resolution, and uses a parallel 8-bit interface.
Another 128×32 LCD, $8.69 – Also an odd shape, and not enough vertical resolution.
128×160 RGB LCD, 1.8 inch diagonal, $8.83 – This is another color, higher-resolution display like the $4.23 one, but it uses a parallel interface.
128×64 LCD, 2 inch diagonal, $9.52 – Too big, too expensive, uses a parallel interface.
Non-Branded Options
Nothing from DigiKey looks suitable. What about other options from eBay or Alibaba?
128×64 OLED, 0.96 inch diagonal, $2.91 – This could sort of work, and I have one of these modules already. But it’s tiny, smaller than a postage stamp, which isn’t really suitable. It’s also I2C which means the interface is comparatively slow. Coming from a random non-branded eBay seller, it’s also not clear it would be any more reliable than the LCD display I have now.
128×128 RGB LCD, 1.44 inch diagonal, $3.04 – This is basically the same as the $4.23 module from DigiKey. Although this one says it has an SPI interface. Maybe this is the best option from a list of not-so-great alternatives.
Read 12 comments and join the conversation12 Comments so far
Leave a reply. For customer support issues, please use the Customer Support link instead of writing comments.
I have used this OLED display in the past, with SPI interface.
https://store.digilentinc.com/pmod-oledrgb-96-x-64-rgb-oled-display-with-16-bit-color-resolution/
cost is high, but the page lists info on the display and chip used, so perhaps some help?
I’ve been a customer of EastRising (buydisplay.com) for several years. They have all kinds of displays at very reasonable prices. Also, the types they have tend to be around for quite some time and can be bought in bulk. But the datasheets are where they really shine: everything, from dimensions to the used connector and even the driver IC is documented. They often even give you some sample code.
TL;DR buydisplay.com is a good and reliable source for displays for production.
Many of the LCDs at buydisplays.com are the naked LCD on a flexible connector. How would you permanently mount something like that? It seems like you’d need another PCB or other mounting hardware.
For the naked displays I’d recommend double-sided foam tape. If you mount a proper connector on the board the assembly required should be minimal. To reduce the distance between the display and the top cover you could mount it on a riser board. I know, more boards and more complexity, but it still might be worth it given the savings from having a more reliable source for the displays.
Or you’re limited to the ones that come with a bezel. Unfortunately, those tend to be quite large and expensive.
I have the same issues with Nokia displays, and I don’t have a better answer, I also spent a lot of time searching for a good alternative.
I prefer the nokias for being inexpensive, and very power efficient compared to anything else, resolution wise it’s not great. And the mechanical issues with the screen are major like you said.
My next preference is for the small OLEDs you already mentioned, they use more power (depending on ON pixel counts) and can be driven from high speed I2C (800khz seems fine, but the challenge with these is they come in different pinout variants [GND VCC SCL SDA] and [VCC GND SCL SDA] so you have to find a good supplier. Also they are very fragile, and I wish they were larger (even if pixels were actually larger).
I think the best options come down to these:
1. Stay with the Nokia 5110 LCD, and accept the headaches.
2. 128×128 RGB LCD. This is marketed as a Nokia 5110 replacement, and it’s the same size and has the same pinout. It comes already mounted on a PCB, which is good for me. Drawbacks: no good supplier, possible high power consumption, and roughly 20x more data needed for screen updates vs a lower-resolution monochrome LCD. I don’t really need or want a color LCD.
3. 128×64 monochrome LCD or OLED on a flex connector. There are a few options for these. I’d also need to design a riser board to mount it on, which would need about a dozen small passives and other components. This would be more of a pain, and probably more expensive, and Felix makes a good point about fragility and power consumption of the OLEDs. But the end result would have a similar data demand to my current LCD, and come from a more reliable supplier.
In case anybody’s wondering why I care how much data is needed to update the screen, it’s a question of refresh times. If a new LCD requires 20x the data bytes as the old one to draw the entire screen, then screen updates will be 20x slower and the UI will probably visibly suffer. Scrolling through menus or switching UI screens might feel annoyingly laggy. I suspect there are also places in the Floppy Emu disk emulation code where the time needed for an LCD update has inadvertently become part of the disk timing, and changing to a different LCD might break those timings. I’d just have to try it and see.
Regarding option 3) you can also buy COG displays with crimped-on pins from EastRising, Electronic Assembly and others. Depending on your processes these might be easier to handle. They still need a riser-board, though.
I’ve had good results with the Nokia N1202 display, which can be bought cheaply, has a soldered flexible PCB connection and is 96×68 pixels. I read about it on Dangerous Prototypes:
http://dangerousprototypes.com/forum/viewtopic.php?f=19&t=3486
It uses an SPI-type interface, which means it can be updated fast. But I’m not sure if that’s what you mean or whether you’re concerned about the actual LCD contrast response speed, which isn’t all that impressive.
I use the N1202 LCD with a CD4050 level shifter on a 5V Arduino circuit. Do you need a 5V interface or can you shift to 3.3V?
The existing interface is 3.3V. My concern over speed is whether it can be updated quickly: how long does it take to send all the bits necessary to fill the entire screen. The Nokia 1202 display looks good, but it has only 4 vendors on eBay vs hundreds for the Nokia 5110 display, so that seems risky to design a product around.
I concluded there are VERY few “real companies” selling simple graphical LCD modules at wholesale prices to small vendors like me. In fact buydisplay.com really seems to be the only one. Crystalfontz has many options, and Adafruit and Sparkfun have some too, but they’re too expensive in the $10-$20+ range. They’re aimed at one-off retail sales, not at somebody who needs to buy in bulk and incorporate the displays into another product.
The only alternative seems to be the plethora of eBay and AliExpress LCD sellers, but then there’s no guarantee exactly what you’ll get. Search “Nokia 5110 LCD” on eBay, and you’ll see there are at least two different pinouts in use for this same LCD. Photos may be old, or copied from some other vendor, so they don’t always help. Most vendors have a disclaimer like “We will send the latest version of product, the upgraded function. It may has different shape or color. If you can’t agree, pls don’t buy.” In other words – they will change the product at any time, or substitute a different version, without informing you. This is what happened with my most recent batch of LCDs. This isn’t unique to the Nokia clones, and other common displays like the 128×64 OLED also have a confusing variety of shapes and pinouts.
If I can tolerate the tiny 0.96 inch size, buydisplay.com has a 128×64 OLED mounted on a riser PCB for a reasonable price. If I want a low-effort solution, that might be best. I’ve also purchased one of the 128×128 RGB color LCDs, and I’ll see if the slow update speed is actually a problem.
I’ve been pretty happy with the “COG 12864″ displays on AliExpress. They have a SPI interface and a UC1701X driver, which is supported by u8g2. They’re uniformly reasonable contrast, at least among the 2-3 I’ve gotten, and don’t seem to use the zebra pins that the 5110s do. But it’s the same supply-chain problem. Costs around $4 each qty 1.
There is also a 1.3” version of the ssd1306 (really sh1106) OLED widely available, also around $4. The extra third inch makes a pretty big difference. And the quality of the self-illuminating pixels is really nice, though there’s a barely perceptible flicker.
epaper?
If you can find a datasheet for the 128×128 display, you may be able to use a mode with less color depth. I had a similar concern when I got one of these 1.8 inch color LCDs (https://www.adafruit.com/product/358?gclid=Cj0KCQjwk_TbBRDsARIsAALJSOaQhRv4rKYhAfRulCQCuY3lL1oogiKUO6KIsZ69N55J0AfpaEFKCNkaAkx-EALw_wcB). They can show 262k colors but there is a 4k mode as well.