Electronic – arduino – Looking for a way to re-program 16×2 LCD display EEPROM font

arduinoeepromhd44780lcdreverse-engineering

Some time ago I've seen this topic – asking where does the fonts stored in 16×2 (1602) LCD display.

Does a 16×2 LCD display has its own EEPROM?

I'm really interested in this, and didn't find any good answer to in on the net, yet.

It's known that the suppliers of 1602 LCDs (for Arduino, for example), can provide them in different versions of fonts, (European, Russian, etc.).

I'm almost sure those 'special characters' are programmed into the 'upper level memory' in the table (above ASCII 128) – in an EPROM or EEPROM customized module.

A way to find the specs and re-program that module can open a whole new world of easily customized fonts and characters into those cheap 1602 / 2004 LCD displays.

If anyone can find a way to get those specs from the manufactures, or find the right way to do it – it would be really helpful and appreciated.

Thanks for looking into it!

Best Answer

Most HD44780 based and similar LCDs have two areas for the fonts, the GCROM and the GCRAM. the GCROM is not editable as this is written by manufacturer, while the GCRAM allows for user defined characters. This area allows the user to define 8 characters, and are usually used for custom symbols.

There are several tutorials online, just search for "HD44780 custom characters".

A good page I've read in the past is this one, which also explains other parts of this LCD: http://www.handsonembedded.com/lcd16x2-hd44780-tutorial-5/