How to create custom characters on a Parallel Character LCD?

Sep 24, 2025|

Hey there! As a supplier of Parallel Character LCDs, I've seen a lot of folks scratching their heads over how to create custom characters on these nifty displays. It's not as hard as it might seem at first glance, and in this blog, I'm gonna walk you through the whole process step by step.

Understanding Parallel Character LCDs

First things first, let's talk a bit about what Parallel Character LCDs are. These are displays that use a parallel interface to communicate with a microcontroller or other devices. They're super popular because they're relatively easy to work with and can display text and simple graphics. You can find them in all sorts of applications, from industrial control panels to consumer electronics.

One of the really cool features of Parallel Character LCDs is the ability to create custom characters. This means you can design your own symbols, icons, or even small pictures to display on the screen. It's a great way to add a personal touch to your project or to display information in a more intuitive way.

The Basics of Custom Character Creation

Before we dive into the nitty - gritty of creating custom characters, you need to understand a few basic concepts. Each character on a Parallel Character LCD is made up of a matrix of dots. Most common Parallel Character LCDs use a 5x8 or 5x10 dot matrix to represent characters.

To create a custom character, you'll need to define the pattern of these dots. Each dot can be either on (lit up) or off (dark). You represent this pattern using binary numbers. For example, in a 5x8 dot matrix, each row of dots can be represented by an 8 - bit binary number.

Step 1: Design Your Character

The first step in creating a custom character is to design it. You can do this on paper or use a software tool. If you're a visual person like me, using a tool might be easier. There are plenty of online character generators that let you draw your character using a grid and then give you the binary values for each row.

Let's say you want to create a simple heart symbol. Using an online generator, you'd draw the heart within the 5x8 or 5x10 grid. The tool will then show you the binary pattern for each row. For example, in a 5x8 matrix, one row might look like this: 00100 in binary.

Step 2: Convert Binary to Hexadecimal

Once you have the binary pattern for each row of your custom character, you'll need to convert these binary numbers to hexadecimal. Hexadecimal is a base - 16 number system, and it's much more compact and easier to work with than binary when programming.

Most programming languages and microcontrollers use hexadecimal values to represent data. You can use an online binary - to - hexadecimal converter to do this quickly. For example, the binary number 00100 converts to the hexadecimal number 0x04.

2Parallel LCD Display Module

Step 3: Store the Custom Character in the LCD's CGRAM

Parallel Character LCDs have a special area of memory called the Character Generator RAM (CGRAM). This is where you store your custom characters. The CGRAM can typically store up to 8 custom characters.

To store your custom character in the CGRAM, you'll need to send a series of commands to the LCD. The exact commands depend on the specific model of the LCD, but the general process is as follows:

  1. Set the address counter to point to the CGRAM location where you want to store your character.
  2. Send the hexadecimal values for each row of your character to the LCD.

Here's a simple example of how you might do this using an Arduino and a common 16x2 Parallel Character LCD:

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// Custom character heart pattern
byte heart[8] = {
  0b00000,
  0b01010,
  0b11111,
  0b11111,
  0b01110,
  0b00100,
  0b00000,
  0b00000
};

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Create a custom character (character 0)
  lcd.createChar(0, heart);
  // Print the custom character
  lcd.setCursor(0, 0);
  lcd.write(byte(0));
}

void loop() {
  // Do nothing here
}

Step 4: Display Your Custom Character

Once you've stored your custom character in the CGRAM, you can display it on the LCD just like any other character. You simply send the character code for your custom character to the LCD. In the Arduino example above, we used lcd.write(byte(0)) to display the custom character we created.

Tips and Tricks

  • Test Your Characters: Before you start using your custom characters in a big project, test them out on a small scale. Make sure they look the way you want them to and that they display correctly on the LCD.
  • Use Multiple Custom Characters: Don't be afraid to create multiple custom characters. You can use them together to create more complex graphics or animations.
  • Refer to the Datasheet: Every Parallel Character LCD is a bit different, so always refer to the datasheet for your specific model. It will have all the details you need about the CGRAM, commands, and other important information.

Applications of Custom Characters

Custom characters on Parallel Character LCDs have a wide range of applications. For example, in a Parallel LCD Display Module, you can use custom characters to show unique status icons. In an LCD Screen Module for Digital Watch, custom characters can be used to display special symbols like a heart rate icon or a battery level indicator. And in a Blue Screen LCD Module Screen, custom characters can add a touch of style to the display.

Why Choose Our Parallel Character LCDs

As a supplier, we offer high - quality Parallel Character LCDs that are easy to work with. Our displays have a clear and sharp output, and they're reliable in a variety of environments. Whether you're a hobbyist working on a small project or a professional developing a commercial product, our LCDs are a great choice.

If you're interested in using our Parallel Character LCDs for your project and need more information on creating custom characters or anything else related to our products, don't hesitate to reach out. We're here to help you make the most of your display and bring your ideas to life. Contact us to start a procurement discussion and see how we can meet your needs.

References

  • Arduino LiquidCrystal Library Documentation
  • Datasheets of various Parallel Character LCD models
Send Inquiry