I am experimenting the write((byte)num) function, and I stumble upon a pre-made custom character. Usually it's on above ((byte)200) or and below ((byte)10000). If anyone else know this, where could I find the list for a specific character?

  • Post the code and the output. You're talking nonsense with a byte with a value of 10000. A byte can't have a value that high.
    – Delta_G
    Sep 7, 2020 at 4:30
  • @Delta_G I think that (byte) 10000 is a cast of integer to byte ... it is equal to 16
    – jsotola
    Sep 7, 2020 at 6:21
  • 1
    sparkfun.com/datasheets/LCD/HD44780.pdf pages 17 and 18 (depending on what ROM your LCD has). And the range is 128-255 - the "high bit set" on ASCII.
    – Majenko
    Sep 7, 2020 at 9:38
  • Yes, @jstola, that was exactly my point. There is no character at 10000, he needs to be thinking of what number is actually being used there.
    – Delta_G
    Sep 7, 2020 at 15:15

1 Answer 1


Hi Welcome to Arduino StackExchange

You can build your own LCD characters if you spend some time with the datasheet and user manuals available

Arduino has a dedicated function here

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

byte smiley[8] = {

void setup() {
  lcd.createChar(0, smiley);
  lcd.begin(16, 2);  

void loop() {}

here is one example: from our tool here

enter image description here

From the datasheet:
enter image description here

here is one example where a Heart symbol is created using the built-in Arduino LCD library:

You can play here at our LCD1602 simulator to get a hang of it. Please leave a message or comment if you have any questions :) enter image description here

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.