You will need to search through the text string, and replace any occurrence of 'Ä' or 'ẞ' with the binary value 4 for your custom character. Those letters are likely UTF-8 or some other variety of unicode, so they are likely represented by more than a single byte each.
< edit >
In UTF-8:
'Ä' is 0xC3 0x84
'ẞ' is 0xE1 0xBA 0x9E
i am using the Noiasca LCD libraries... i don't use any others
One lcd uses the NoiascaHW/lcd_PCF8574 with 'convert_special' to handle the umlauts,
The other lcd needs the 'convert_SPLC780D1_003A' thing to work as it has a different character rom.
You helped me a lot 2 years ago with a similar project, but between then and now i had a few medical issues that has affected my memory,
So i am finding old posts of mine that show me stuff i used to know, but i'm having to learn it again (not that i was ever any good at coding in the first place)
This project is similar, but using a different method of getting the data / text out of the game than before.
it's still strings of text being sent from the game and read by the arduino, then the relevant parts of the string get sent to the LCD's,
being a German game it uses the UTF-8 characters i believe
Both LCD's display the Ä and ß characters slightly differently, so i want to make it so they both display the same.
On the 'normal' lcd the ß is small, but it's tall on the SPLC780D1_003A lcd,
And on the SPLC780D1_003A the Ä is smaller than the other capital umlaut letters, but it's ß is tall,
So i need the Ä modifying on the SPLC780D1_003A lcd, and the ß modifying on the normal lcd.
i've seen that the Ä has 2 variants, selectable by commenting out one of them in the 'Custom Characters.h' file, this seems to be what the normal lcd is using, but it does not affect the SPLC780D1_003A lcd.
ß:
by default the lib replaces the ß (latin_small_sharp_s) by the Greek small letter beta if available in the character ROM.
in the (default) ROM_A00
{0xC39F, 0xE2}, // ß to GREEK SMALL LETTER BETA
in ROM_SPLC780D1_003A
{0xC39F, 0xE0}, // ß to GREEK SMALL LETTER BETA
btw: In general, the German sharp s should have no descender, but should have the same size like a capital.
I.e.: neither the ROM_A00 nor the ROM_SPLC780D1_003A Greek small letter beta is perfect for the German sharp s.
You would need a special character for that on both LCD types.
Ä:
The ROM_A00 doesn't have an Ä.
If you are using the convert_special on a ROM_A00 display it will use the special characters 5,6,7 for Ä Ö Ü. You can created predefined Umlauts by calling lcd.createUml(); which will use the array UML on row 1261 from NoiascaConverter.h
The Ä on the ROM_SPLC780D1_003A is part of the character ROM, hence the mapping table for the ROM_SPLC780D1_003A contains this row:
{0xC384, 0x8E}, // Ä
currently there is no default converter for the ROM_SPLC780D1_003A which supports letters from custom characters
I see two options:
either you create your own converter for ROM_SPLC780D1_003A which supports custom characters and the predefined mapping, or
make an individual mapping based on Mapping ROM_SPLC780D1_003A in a lokal .h file,
replace the ROM Address (0x8E, 0xE0) with a special characters 0..7 and load that characters as special character
use the convert_generic which accepts your individual mapping table.
uint8_t convert_generic(uint32_t &special, uint8_t &value, const Mapping *language, size_t lang_len); // NOT HW specific, accepts any mapping table
Currently, I would go the second option for the ROM_SPLC780D1_003A.
for the ROM_A00 display I think the convert_custom can be used if you want to adopt the ß also.
i am looking at buying another LCD with a different character rom.
the LCD is a LC2001B-YYH-JT, which is a 20 x 1 layout, but with large characters, it's the same size as a 40 x 2 lcd.
The LCD i'm looking at has the character set: English-Japanese, it's character map matches the one you show for HD44780U, ROM Code A00)
It says it uses 'ST7066U or equivalent' controller, so am i right in thinking this would use the same character map as the first LCD i have (where my only gripe is the small sharp S / ß symbol,
And i can set up a single extra mapping for the larger ß that will work on both LCD's.
yeah the datasheet showed the rom characters and they match the normal rom map,
But it looks like i cant get the display anyway, it's from CrystalFontz in america, and they want $60 postage, for a $30 display,
They told me of a reseller in Germany 'Lcdstore.de' who have them in stock, but they won't ship to a private person in the uk, and no one seems to stock it in the uk.