2.8" Touch Shield alignment
Moderators: adafruit_support_bill, adafruit

2.8" Touch Shield alignment

by jeroenj on Tue Mar 12, 2013 5:55 am

Dear Adafruit,

Recently I purchased a 2.8" TFT Touch Shield (for Arduino) from the Adafruit site and I received it last week. It works fine, but there appears to be a misalignment of the touch-sensitive layer with respect to the display underneath. One of the borders of the upper layer (actually on the side where the flat cable is situated) obscures a row of pixels, as one can see on the left side of the image:

Image

Is there any modification I can try to fix this?

Thanks in advance,

Jeroen
jeroenj
 
Posts: 3
Joined: Mon Feb 25, 2013 1:47 pm

Re: 2.8" Touch Shield alignment

by adafruit_support_mike on Wed Mar 13, 2013 1:22 am

I just saw a similar issue in this thread: viewtopic.php?f=31&t=37926&p=187316#p187316

I've sent a message to Phil and Limor, and they'll get back with more information.
When you void a product warranty, you give up your right to sue the manufacturer if something goes wrong and accept full responsibility for whatever happens next. And then you truly own the product.
User avatar
adafruit_support_mike
 
Posts: 9411
Joined: Thu Feb 11, 2010 1:51 pm

Re: 2.8" Touch Shield alignment

by adafruit_support_mike on Wed Mar 13, 2013 1:25 am

To answer your question directly: no, there's no easy way to modify an LCD with that kind of problem. This is probably an issue we'll have to take up with the LCD vendor.
When you void a product warranty, you give up your right to sue the manufacturer if something goes wrong and accept full responsibility for whatever happens next. And then you truly own the product.
User avatar
adafruit_support_mike
 
Posts: 9411
Joined: Thu Feb 11, 2010 1:51 pm

Re: 2.8" Touch Shield alignment

by jeroenj on Sat Mar 23, 2013 11:46 am

Thanks for your reply. I have unfortunately noticed another problem with my Touch Shield; when I move my finger across the screen (from edge to edge, both horizontally and vertically), the X and Y coordinates that are returned lie between 900 and 999 (for X) and 750 to 1000 (for Y), which seems strange. However, I found out by accident that when I hold touch shield+Arduino in my hand and have the underside of the Arduino make contact with my palm, the range of X and Y intermittently becomes 150 to 1000. Tried the same with my other Arduino, and that gave the same results.

Any ideas on how to solve this?
jeroenj
 
Posts: 3
Joined: Mon Feb 25, 2013 1:47 pm

Re: 2.8" Touch Shield alignment

by adafruit_support_mike on Sat Mar 23, 2013 5:38 pm

Hmm.. it's a resistive touchscreen, and skin contact with the bottom of the Arduino would probably give you a connection to the device's ground plane. Skin resistance varies dramatically, but the Drawdio and the MaKey MaKey rely on the fact that some small amount of current can flow from one part of the body to another. From there, my reasoning gets very speculative though..

Some people do have trouble getting a good reading with their fingertips. Do you get the same results when using a fingernail or a stylus (the non-point end of a ball-point pen, for instance)?
When you void a product warranty, you give up your right to sue the manufacturer if something goes wrong and accept full responsibility for whatever happens next. And then you truly own the product.
User avatar
adafruit_support_mike
 
Posts: 9411
Joined: Thu Feb 11, 2010 1:51 pm

Re: 2.8" Touch Shield alignment

by jeroenj on Sun Mar 24, 2013 5:00 am

Using a stylus gives the same results; partial range for X and Y when on a flat hard surface, full range when in hand.
jeroenj
 
Posts: 3
Joined: Mon Feb 25, 2013 1:47 pm

Re: 2.8" Touch Shield alignment

by adafruit_support_mike on Sun Mar 24, 2013 2:54 pm

Okay.. I've talked with some other people, and it appears the range of values you're getting is fairly typical. They reminded me that the example sketches use the map() function to scale the results to an appropriate value:

Code: Select all | TOGGLE FULL SIZE
   // scale from 0->1023 to tft.width
   p.x = map(p.x, TS_MINX, TS_MAXX, tft.width(), 0);
   p.y = map(p.y, TS_MINY, TS_MAXY, tft.height(), 0);


The 150-1000 range you see when you hold the device in your hand probably comes from medium-high-impedance skin contact between the pins on the bottom of the board, and probably won't represent where you're touching the screen very well.
When you void a product warranty, you give up your right to sue the manufacturer if something goes wrong and accept full responsibility for whatever happens next. And then you truly own the product.
User avatar
adafruit_support_mike
 
Posts: 9411
Joined: Thu Feb 11, 2010 1:51 pm