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

Does a 16x2 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!

  • 1
    \$\begingroup\$ I have used at least one on an Arduino shield and it had, I think, eight user-programmable characters. I think the character had to stay set as long as it was on the display so you couldn't have nine or more custom characters on one display. \$\endgroup\$
    – Transistor
    Commented Sep 25, 2019 at 7:13

2 Answers 2


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/

  • \$\begingroup\$ Thanks for that. I know about the 8 custom characters option, but it's not what I mean. My idea was to change the ROM fonts themselves, which I understand now it's not available because it's not stored on a separate EPROM. Can you please think about an alternative controller that will include such a separate chip that will be re-programable? \$\endgroup\$
    – Offer
    Commented Sep 25, 2019 at 15:10
  • \$\begingroup\$ What you are looking for is a graphical LCD, where every pixel is configurable such as the 12832 or 12864 respectively 128x32 and 128x64. Both of these are standard devices, and the web offers plenty of drivers with several configurable fonts. \$\endgroup\$
    – Elmesito
    Commented Sep 25, 2019 at 21:21

Character generator ROM is mask programmed, so the font ROM is not written, the ROM content is just set during chip manufacturing process. They cannot be reprogrammed by user. You can order e.g. HD44780 and other controller chips with custom characters from chip manufacturer.

  • \$\begingroup\$ Thanks for that. Can you please think about a HD44780 alternative that will include the font data in a separate chip the can be changed/written using an EEPROM programmer, so the LCDs will be more flexible to non-standard use? \$\endgroup\$
    – Offer
    Commented Sep 25, 2019 at 15:07
  • \$\begingroup\$ No, I would not spend any time thinking if what you describe even exists, because 128x32 graphics displays already exist. \$\endgroup\$
    – Justme
    Commented Sep 25, 2019 at 18:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.