I have some custom characters in an array setup, but they are being overwritten.
Sketch is truncated
byte tempChar[8] = {
0b00100,
0b01010,
0b01010,
0b01010,
0b01010,
0b10001,
0b11111,
0b01110
};
byte BChar[8] = {
0b11110,
0b11011,
0b11011,
0b11110,
0b11011,
0b11011,
0b11110,
0b00000
};
byte CChar[8] = {
0b01110,
0b11011,
0b11000,
0b11000,
0b11000,
0b11011,
0b01110,
0b00000
};
byte SChar[8] = {
0b01111,
0b11111,
0b11000,
0b11111,
0b00011,
0b11111,
0b11110,
0b00000
};
byte rightArrowChar[8] = {
0b01000,
0b01100,
0b01110,
0b01111,
0b01110,
0b01100,
0b01000,
0b00000
};
byte GChar[8] = {
0b01110,
0b11011,
0b11000,
0b11011,
0b11011,
0b11001,
0b01111,
0b00000
};
byte leftHugChar[8] = {
0b00001,
0b00011,
0b00011,
0b00011,
0b00011,
0b11111,
0b11111,
0b00000
};
byte rightHugChar[8] = {
0b10000,
0b11000,
0b11000,
0b11000,
0b11000,
0b11111,
0b11111,
0b00000
};
byte thickDashChar[8] = {
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b11111,
0b11111,
0b00000
};
byte partFillBoxChar[8] = {
0b11111,
0b10001,
0b10001,
0b11111,
0b11111,
0b11111,
0b11111,
0b00000
};
lcd.createChar(1, BChar);
lcd.createChar(2, SChar);
lcd.createChar(3, CChar);
lcd.createChar(5, GChar);
lcd.createChar(4, rightArrowChar);
lcd.createChar(6, leftHugChar);
lcd.createChar(7, rightHugChar);
lcd.createChar(8, thickDashChar);
lcd.createChar(9, tempChar);
lcd.createChar(10, partFillBoxChar);
lcd.setCursor(0, 3);
lcd.write((uint8_t)2); // Bold S *** This character is being overwritten by the Part Fill Box Character ****
lcd.write((uint8_t)10); // Part Fill Box
lcd.setCursor(13, 2); // Coffee Boiler/Group Temp
lcd.write((uint8_t)3); // Bold C
lcd.write((uint8_t)9); // Temp Icon
lcd.setCursor(15, 2);
lcd.print(coffeeBoilerTemp, 1);
lcd.setCursor(13, 3); // Coffee Boiler Pressure
lcd.write((uint8_t)3); // Bold C
lcd.write((uint8_t)10); // Part Fill Box *** This character is overwriting the Bold S Above ***
lcd.print(coffeePressure, 1);
lcd.setCursor(2, 3); // Service Boiler Pressure
lcd.print(boilerPressure, 1);
lcd.setCursor(5, 3);
lcd.print(F("b"));
The "lcd.write((uint8_t)2); // Bold S" is being overwritten by " lcd.write((uint8_t)10); // Part Fill Box". If I remove the "lcd.write((uint8_t)10); // Part Fill Box" array/setup then the "Bold S" displays perfectly...
It is not a positioning error, the character itself is being "misrepresented"?
Thank you in advance for any insight