# Why do almost all HD44780-based LCD displays use font pattern A00

The vast majority of text LCD displays for screens 4x40 or smaller use a controller based on the Hitachi HD44780. It's a pretty nice design in a lot of ways, so its popularity is understandable. One aspect of it puzzles me, however.

The display controller is designed to operate with either 5x8 or 5x10 fonts; according to the 44780 data sheet, the part is available with two stock ROM configurations--one with 248 5x8 character shapes, designated A02, and one with 160 5x8 shapes and 32 5x10 shapes, designated A00. The 5x10 character shapes are only really useful on single-line displays which have a 10-high LCD matrix, and such displays seem to be very rare (I think I've seen data sheets for a handful of them, if that, and I don't know that I've ever actually seen one in person).

I am puzzled, then, by why it seems that every LCD display I've seen based on an HD44780-compatible controller, uses font pattern A00 which has many blank character cells, and whose glyphs for a number of characters (including 0xE4, 0xE6, 0xE7, 0xEA, 0xF0, 0xF1, and 0xF9) are essentially useless with anything other than a single-line 5x10 display. I would have expected that at least some vendors would have at least changed the definitions for those characters to look good on a 5x8 display, but I'm unaware of any having done so. I would also think that for many applications, ROM pattern A02 would be more useful than ROM pattern A00, but all the displays I've ever seen for sale use ROM pattern A00.

To be sure, in a lot of applications, the ability to define custom glyphs substantially mitigates the limitations of the built-in character set, but the display can only show eight different custom glyphs at a time. Having built-in glyphs for things like arrows would mean that applications needing arrows could have more custom glyphs left over for other purposes.

If nothing else, it would seem logical for displays to have an option to fill in character ranges 0x10-0x1F and 0x80-0x9F with useful characters. If a particular controller is only going to be used with 5x8 or 5x16 glass (would seem pretty likely), it should be a simple matter to use the 5x10-font control bit to enable or disable those characters. That would make the controller compatible with software that would expect all of those characters to appear as blank, but would allow software that knows what it is to exploit those other characters.

Buy 100,000 chips that will do for all displays at say $0.10 each, or buy 50,000 of one chip at, say,$0.15 and 50,000 of another chip at $0.15 each. (figures purely fictional - for illustration only) You do the maths. While it's not 100% perfect for every display, it does mean that they are cheaper, which is good for all of us. • There are many companies that make 44780-compatible controller chips. If a company is producing its own 44780-based design, is there any way in which it would be more difficult for them to, at minimum, design 5x8 versions of the character glyphs which are presently only usable on 5x10 glass, than to copy over the less-useful glyphs verbatim? Further, if someone is ordering 100,000 chips, is there any reason to think Hitachi wouldn't be more than happy to supply ROM pattern A02 instead of A00 if that's what the purchaser requested? – supercat Dec 28 '11 at 19:23 • Eh, I understand the enonomy-of-scale argument, but these are pin-compatible ICs (no redesigns necessary) going on glass and a PCB (plus manufacturing and distribution costs) that together cost as much or more than the IC. Remember that the economies of scale are spread over the 100,000 units they'll produce; will anyone notice or care if the end product (which is about$3-5) is \$0.05 more expensive? I doubt that this level of price discrimination is so pervasive as to produce the phenomenon that Supercat has observed. – Kevin Vermeer Dec 28 '11 at 19:29