Arduino: LCD with SPLC780D1 Driver (Liquid Crystal Library)
I found a good alternative of LCDs with SPLC780D1 driver. The
SPLC780D1 uses an extended character set, which makes printing of letters for lot of
European languages very easy.
The Character Set of the SPLC780D1 LCD
The SPLC780D1 LCD is available in several versions. For European languages
you need the character set 003A of the SPLC780D1. The displays are often
sold as "European". At the end of the page you find a link where you can buy
these displays. The SPLC780D1 003A ROM contains more characters than the Hitachi HD44780U
A00 ROM. In total 240 characters are defined:
There are some interesting things to find:
- Column 0x01 contains some mathematical symbols.
- The columns 0011 - 0111 are compatible to ASCII. In contrast to the
HD44780 even the backslash and the tilde are available.
- In column 0x08 - 0x0A we find characters from Latin-1 and Latin-2 used for "Western European" (ISO/IEC
8859-1), Scandinavian and Southern European languages.
- In column 0x0B - 0x0C there are more mathematical symbols
- In column 0x0D - 0x0F you find Greek letters
Arduino Library for the SPLC780D1 LCD
The SPLC780D1 should work with any Liquid Crystal
Library. But printing of special characters might get cumbersome. Therefore I
made an extension in the library "Noiasca Liquid Crystal". This library offers
the easy support for special characters on the SPLC780D1.
Depending on the hardware interface, you just add the converter for the
SPLC780D1 as last parameter. For example the constructor for I2C expanders:
LiquidCrystal_I2C lcd(addr, cols, rows, convert_SPLC780D1_003A);
This enables the easy access to Latin-1 (Western European languages) and
includes for example
German, Norwegian, Swedish, Spanish, Italian. More special characters from
Latin-2 are needed for French, Hungarian, Czech, Slovakian, Slovenian, Croatian, Polish, ...
The library contains an example sketch which shows lot of special characters used
in several European languages. For some languages (Danish, English, Swedish) all
characters can be shown:
German uses the Greek beta for the ß (sharp s):
Some languages use
marks (acutes, grave...) on letters which are not available in the character ROM
but are replaced with plain letters:
The French and Italian LCD examples show very clear, that the support of small
letters is better than for capital letters:
And even if there is none of the special characters available, at least the
print out doesn't break and each letter is replaced by the standard ASCII
By the way: If you need Cyrillic for Russian, Ukrainian or Bulgarian, there
are ROM Variants available with Cyrillic also. Mostly they are sold as
"Russian". So far I haven't implemented the Cyrillic mapping. If you are interested in
the support of the Cyrillic letters, contact me by email so that I know the need
and to get a beta tester ;-)
empa0815-noiasca1 [at] yahoo [dot] com.
The SPLC780D1 LCD is currently THE solution if you want to use a character LCD for
Languages. The SPLC780D1 supports lot of Latin-1 and Latin-2 characters. Even some characters
from Latin-3 are available. If you need an easy to use Arduino library, use the
"Noiasca Liquid Crystal" with the prepared constructors for the
First upload: 2020-10-06 | Version: