1.44′ SPI 128*128 LCD panels based on ILI9163 explained

Right, so I had a chance to put together a few pictures in order to illustrate the differences between version 1.1 and version 2.1 of the red LCD panels as per below:

Red LCD panel comparison

Red LCD panel comparison

For both panels the panel resolution selection pins were set for a 128*160 resolution. What this means is that there is an addressable memory area (in blue) that is bigger than the display size (frame in red):

Memory size and display size

Addressable memory and display size

LCD panel version 1.1 (1.44′ SPI 128*128 V1.1)

By default, the area of memory that is displayed on the screen is as per below in the leftmost picture:

Display area over memory map

Display area over memory map

This means that if we put graphics in the upper area of the internal memory, as per picture in the middle, we are going to see a cut version of such graphics followed by 32 uninitialized rows of memory, which render as garbage on the display, as per rightmost picture.
In order to compensate for that, WITHOUT CHANGING THE ORIENTATION OF THE DISPLAY, all graphic operations need to be shifted down by 32 pixels. By doing that, here’s what we end up with:

Display area over memory map with some compensation

Display area over memory map with some compensation

Bingo: what we see is what we wanted.

LCD panel version 2.1 (1.44′ SPI 128*128 V2.1)

In version 2.1 the rules of the game have changed. The compensation is not required any longer because the area that’s displayed by default is at the top of the internal memory. As long as we accept the default orientation of the picture, which is now different, things simply work by default:

Display area over memory map

Display area over memory map

Again, if we put graphics in the upper area of the internal memory we already get what we want, but the image we see is upside down compared to what happened with the earlier version of the panel.

Let’s suppose that in an existing system that uses LCD panel version 1.1 with compensation we replace the panel with version 2.1. Now we get 2 side effects: one is the fact that the picture is upside down, and the other, much worse, comes from the fact the compensation required by version 1.1 is now offsetting the image too:

Display area over memory map with compensation for panel Version 1.1

Display area over memory map with compensation for panel version 1.1

A complete mess that only a firmware update can fix!

Beware when you shop for your LCDs on eBay as sellers that were posting version 1.1 might now be posting version 2.1 UNDER THE VERY SAME LISTING THAT SHOWS PHOTOS OF PANEL VERSION 1.1. Those sellers have no idea of the inner workings of what they are selling and often don’t understand English or technology well enough to appreciate the issue they are causing, when it’s explained to them!

This entry was posted in Technical, Uncategorized and tagged , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s