What are the Controller Differences?


New member
I am trying to decide which CFAG12864_ Graphic LCD to buy. What are the controller differences?
I see 3 different controllers for the models that look like what I want; but I don't know enough to select the appropriate model.
Can you briefly describe the differences between the KS0107/KS0108, Toshiba T6963, Sitronix ST7920 so I can figure out which one to get?

Looking for additional LCD resources? Check out our LCD blog for the latest developments in LCD technology.

CF Support2

Here is the answer that everyone hates:

"Which controller you pick is really up to you."

For the most part, they work the same in regards to you sending the module commands and data, and the controller interpreting the command and data. There are developers that like one controller over another for what ever reason. They are all good controllers. We have become fond of the ST7920 lately due to it's flexibility. As for one being "better" over the other, it is really subjective.

There is a good deal of sample code out there for the Toshiba T6963 since it has been around for a good deal of time. Since you are new to graphic LCDs, this may be of benefit to you in your project. We have some sample code and information for most of our graphics modules here:


If the one you want is not in the list, we can get it for you.

I would compare sizes of the modules and see which one most closely matches what you need. Since they are all 128 x 64, they will be quite similar. I would pull down the data sheets for the modules you are interested in, as well as the appropriate controller's data sheet (should be on the module family page) and do your comparisons using the data sheets, and what other information you can find on the internet in how the particular controllers were used.


New member
Controller Differences

Ok, I reviewed some of the data sheets. The differences seem architectural with regards to software I will need to write. I am considering the T6963 because it looks like there are a wider variety of sizes that I can select from. I may start with a 128x64 but then move to 240x64 or 240x128. So, if I need to get a bigger LCD screen; my software will not change as much.

When reading the T6963 datasheet, I cannot tell how the graphic memory maps to the graphic display. I'm sure the datasheet is perfectly clear, but my brain isn't.

Is the "External display RAM" mapped directly to the LCD pixels? If so, I think I understand: Does this sound correct?

The bits (in written as bytes on the parallel interface) are displayed on the LCD screen in cells incremented from left to right, top to bottom. Each cell contains 1 byte. Each bit in the cell's byte is displayed left to right MSB to LSB; or are the bits written as LSB to MSB? The Graphic Area is defined in hardware but can be shifted with a "Set Graphic Home Address" command.