Problem 1.44" TFT SPI Screen (ILI9163)

Hello,

I have a problem with TFT 1.44 "SPI v2.1, the screen controls the driver ILI9163, so at least the result of a description, where I buy it. Any attempt to connect ends up shifting the displayed items by about 30 pixels. I've tried several libraries, and nothing else .. .
I hope that the photos clearly shows something to you and you can help me. The codes are standard examples of libraries ILI9163C.h and Adafruit_GFX.h

The first 128x128 displays had a hardware problem. So libraries had a software fix. Look in the header file for a define called OFFSET.

Nowadays the 128x128 are 100% fine. Make OFFSET 0 and everything should run ok.

I am not aware of any library called "ILI9163C.h"
Sumotoy's library is called "TFT_ILI9163C.h"

It looks as if you are sending 5V GPIO logic. I would be happier with 3.3V logic.

David.

david_prentice:
The first 128x128 displays had a hardware problem. So libraries had a software fix. Look in the header file for a define called OFFSET.

Nowadays the 128x128 are 100% fine. Make OFFSET 0 and everything should run ok.

I am not aware of any library called "ILI9163C.h"
Sumotoy's library is called "TFT_ILI9163C.h"

It looks as if you are sending 5V GPIO logic. I would be happier with 3.3V logic.

David.

I'm not as fluent in programming. I really do not advise it to themselves with it.
Did you mean to add the command "#define __OFFSET 0"?
If so, unfortunately, it did not work :frowning:

The values defined in the example looks like this:

"...
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <TFT_ILI9163C.h>

#define __OFFSET 0

// Color definitions
0x0000 #define BLACK
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF

#define __CS 10
#define __DC 9
#define __RST 8

TFT_ILI9163C TFT = TFT_ILI9163C (__ CS __DC, __RST); "

What exactly would change? Because I defined already OFFSET and nothing helped

I am not at a PC. I doubt if this is the correct place to change the define.

You should edit the .h file or possibly the .cpp file.
Read Sumotoy's documentation.

Since I have an old red pcb and a new black pcb, I can assure you that the examples will work for both.

However, I suspect that new red pcb displays will work now.
When and where did you huy your display?

David.

Edit. Just looked at the Sumotoy library on my PC. you edit for your board in "_settings/TFT_ILI9163C_settings.h"

Hi, Marcys!

I had a exactly the same problem.

It fixed by the "__OFFSET" constant, but constant must defined not in sketch, but in h-file TFT_ILI9163C.h

I put a string

#define __OFFSET 0 //this is the offset of my display

before the string

//--------- Keep out hands from here!-------------

save file, and all was well.

It should be changed in the offset TFT_ILI9163C_settings.h!
I have the black pcb. The offset was already set to 0. It still did not work. Then I changed the pcb red to 0 instead of 32 and it works great !!
Hello
Chip_x

after.jpg

1.44spi_2.jpg

TFT_ILI9163C_settings.h

#if defined(144_RED_PCB)
/*
This display:

This particular display has a design error! The controller has 3 pins to configure to constrain
the memory and resolution to a fixed dimension (in that case 128x128) but they leaved those pins
configured for 128x160 so there was several pixel memory addressing problems.
I solved by setup several parameters that dinamically fix the resolution as needed so below
the parameters for this diplay. If you have a strain or a correct display (can happen with chinese)
you can copy those parameters and create setup for different displays.
*/
#define _TFTWIDTH 128//the REAL W resolution of the TFT
#define _TFTHEIGHT 128//the REAL H resolution of the TFT
#define _GRAMWIDTH 128
#define _GRAMHEIGH 160//160
#define _GRAMSIZE _GRAMWIDTH * _GRAMHEIGH//*see note 1
#define __COLORSPC 1// 1:GBR - 0:RGB
#define __GAMMASET3 //uncomment for another gamma
#define __OFFSET 0//*see note 2 THIS!!! before was 32
//Tested!
#elif defined (144_BLACK_PCB)
#define _TFTWIDTH 128//the REAL W resolution of the TFT
#define _TFTHEIGHT 128//the REAL H resolution of the TFT
#define _GRAMWIDTH 128
#define _GRAMHEIGH 128
#define _GRAMSIZE _GRAMWIDTH * _GRAMHEIGH//*see note 1
#define __COLORSPC 1// 1:GBR - 0:RGB
#define __GAMMASET1 //uncomment for another gamma
#define __OFFSET 0
//not tested
#elif defined (22_RED_PCB)

i know is old topic but...

i cant romove this radom pixels wit _OFFSET 0

Solution

Use screan rotation

display.setRotation(2);

i have screan upsidedown

Hi everyone
i am use the display (1.44 spi 128*128 v1.0 red pcb and st7735R I think it's one of the wrong products :slight_smile: )
i had the same problem.
i solved by setting offset to 0.

I installed the sample clock program.
second handle in the right place.(As shown in the picture)
but the clock picture 3 pixels shifted to the left.

How can i solve this problem?

Best regards

Please post your _settings/TFT_ILI9163C_settings.h file.

I ran the clock.ino example on a Uno. My config is 144_BLACK_PCB . It worked fine.

The GitHub Release is August 2016.

David.

hi David
yes i tried it the result hasn't changed.
I'll take a card without problems.

Just want to say, "Thanks."

This thread solved the very problem that had been bedeviling me since the displays arrived last week.