# Why lcd.createChar has only 8 available characters?

**URL:** <https://forum.arduino.cc/t/why-lcd-createchar-has-only-8-available-characters/636355>\
**Category:** Programming\
**Created:** [February 12, 2020, 1:13pm UTC](https://forum.arduino.cc/t/why-lcd-createchar-has-only-8-available-characters/636355 "2020-02-12T13:13:24Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Hosmax](https://avatars.discourse-cdn.com/v4/letter/h/a5b964/32.png) [@Hosmax](https://forum.arduino.cc/u/Hosmax)\
**Post date:** [February 12, 2020, 1:13pm UTC](https://forum.arduino.cc/t/why-lcd-createchar-has-only-8-available-characters/636355/1 "2020-02-12T13:13:24Z")

</div>

Hi!

I was playing with my LCD Shield and I saw that the function lcd.createChar has only 8 characters and you can't create more.

Why are there only eight and no more?

---

<div class="post-metadata">

**Author:** ![boolrules](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/boolrules/32/219130_2.png) [@boolrules](https://forum.arduino.cc/u/boolrules)\
**Post date:** [February 12, 2020, 2:48pm UTC](https://forum.arduino.cc/t/why-lcd-createchar-has-only-8-available-characters/636355/2 "2020-02-12T14:48:09Z")

</div>

It's a hardware limitation. Those characters are stored on the LCD and there is only space for 8.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [February 12, 2020, 3:04pm UTC](https://forum.arduino.cc/t/why-lcd-createchar-has-only-8-available-characters/636355/3 "2020-02-12T15:04:35Z")

</div>

(deleted)

---

<div class="post-metadata">

**Author:** ![Hosmax](https://avatars.discourse-cdn.com/v4/letter/h/a5b964/32.png) [@Hosmax](https://forum.arduino.cc/u/Hosmax)\
**Post date:** [February 12, 2020, 6:26pm UTC](https://forum.arduino.cc/t/why-lcd-createchar-has-only-8-available-characters/636355/4 "2020-02-12T18:26:48Z")

</div>

> spycatcher2k:  
> You can redefine them as required, I have had to do this on a few projects.

How can I do it?  
I would like to use more custom characters than eight for some projects.

---

<div class="post-metadata">

**Author:** ![groundFungus](https://avatars.discourse-cdn.com/v4/letter/g/73ab20/32.png) [@groundFungus](https://forum.arduino.cc/u/groundFungus)\
**Post date:** [February 12, 2020, 6:31pm UTC](https://forum.arduino.cc/t/why-lcd-createchar-has-only-8-available-characters/636355/5 "2020-02-12T18:31:53Z")

</div>

> I would like to use more custom characters than eight for some projects.

Then get a graphic display.

---

<div class="post-metadata">

**Author:** ![UKHeliBob](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ukhelibob/32/215663_2.png) [@UKHeliBob](https://forum.arduino.cc/u/UKHeliBob)\
**Post date:** [February 12, 2020, 6:34pm UTC](https://forum.arduino.cc/t/why-lcd-createchar-has-only-8-available-characters/636355/6 "2020-02-12T18:34:31Z")

</div>

As long as you don't need more than 8 different custom characters on screen at the same time you can define them when you need them, but if you display say character 0 then redefine it then the one currently on the display will change immediately

---

<div class="post-metadata">

**Author:** ![Hosmax](https://avatars.discourse-cdn.com/v4/letter/h/a5b964/32.png) [@Hosmax](https://forum.arduino.cc/u/Hosmax)\
**Post date:** [February 12, 2020, 7:15pm UTC](https://forum.arduino.cc/t/why-lcd-createchar-has-only-8-available-characters/636355/7 "2020-02-12T19:15:15Z")

</div>

> groundFungus:  
> Then get a graphic display.

You're right. I should get one. I'm new in this stuff.

---

<div class="post-metadata">

**Author:** ![Hosmax](https://avatars.discourse-cdn.com/v4/letter/h/a5b964/32.png) [@Hosmax](https://forum.arduino.cc/u/Hosmax)\
**Post date:** [February 12, 2020, 7:20pm UTC](https://forum.arduino.cc/t/why-lcd-createchar-has-only-8-available-characters/636355/8 "2020-02-12T19:20:20Z")

</div>

> UKHeliBob:  
> As long as you don't need more than 8 different custom characters on screen at the same time you can define them when you need them, but if you display say character 0 then redefine it then the one currently on the display will change immediately

Making a loop to show the same index at different positions is recommended?

For example, if I set char1="H" and char2="i" with 0 in a loop where char1 is on the first column and char2 is on the second column (assuming the rest of the char spaces are full).

---

<div class="post-metadata">

**Author:** ![UKHeliBob](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ukhelibob/32/215663_2.png) [@UKHeliBob](https://forum.arduino.cc/u/UKHeliBob)\
**Post date:** [February 12, 2020, 8:45pm UTC](https://forum.arduino.cc/t/why-lcd-createchar-has-only-8-available-characters/636355/9 "2020-02-12T20:45:25Z")

</div>

> Hosmax:  
> Making a loop to show the same index at different positions is recommended?
> 
> For example, if I set char1="H" and char2="i" with 0 in a loop where char1 is on the first column and char2 is on the second column (assuming the rest of the char spaces are full).

Sorry, but I don't understand the question

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [May 6, 2021, 12:18am UTC](https://forum.arduino.cc/t/why-lcd-createchar-has-only-8-available-characters/636355/10 "2021-05-06T00:18:48Z")

</div>

Closed on May 6, 2021, 12:18am UTC


