I'm redesigning a product that has a custom LCD glass with a rather strange organization. It uses 22 segments with 14 commons. It's a little bit like the display in the picture below:
Since this is a cost critical product, I'm looking at the extremely common ST7066 LCD controller, which is used to drive alpanumeric LCD displays.
My approach would be to run the ST7066 in two-line mode (16 commons, 1/16 bias) and configure the first four characters of each line to be custom characters. I would use the 64 x 8-bit character generator RAM to define the patterns for those characters thus allowing me to lit up the segments individually as I please.
Now here comes the tricky part: I need 22 segments to control individually. And we're temptingly close with the 8 programmable characters. I need 14 commons, so I must set up the controller into 2-line mode. So I have 4 characters per line. If the characters are 5 pixels wide, that gives 5 x 4 = 20 segments, just short of 22. However, the CGRAM has 8x8 bits per character.
So the question is can the ST7066 / KS0066 / SED1278 be configured to actually display 8x8 characters? Or are the "extra" bits in the CGRAM just don't cares in any configuration? With 8 pixel wide characters, I would have 32 freely controllable segments and I would be home free.
Finally, do you think this approach is viable at all? The segments in the display have hugely different sizes. Does it affect the drive capability of the controller; would larger icons have worse contrast than the small ones? Also, the ST7066 drives 40 segments; since I only use 22, does that play a role in the contrast or the required panel bias voltage?