Open dhrone opened 3 years ago
@dhrone could you maybe provide a test script that scans through all the chars? how can we help?
Not sure if this belongs here: If I try to add German Umlauts to a device with the A00 font as described in the docs:
fnt = device.get_font('A02')
device.font.combine(fnt, ['Ä','Ö','Ü'])
device.text = 'ÄÖÜ'
Then the displayed result is surely not as expected. E.g. the Ä has a double horizontal bar in the middle and an additional horizontal bar at the bottom.
The new hd44780 driver contains embedded fonts. The data for these fonts are contained within the hd44780 class in luma.lcd.device.const.py in a dict called FONTDATA. One key in FONTDATA is 'mappings' which is a list of two dicts (one for each of the two fonts that are typical for hd44780 style devices). Each dict contains a collection of key value pairs which provide unicode values for as many of the table values as I could decode. I'm looking for help to fill in the missing values and validate that I've correctly assigned the ones that are there. I'd also be interested in any look-alike values that should be added (e.g. unicode codepoints that look the same as a mapping that already exists. A good example of that would be the series of cyrillic mappings I've included for their english equivalents.
Here's a small example of what the tables looks like...
The font tables are in the hd44780 documentation on pages 17 and 18.