3.5" TFT LCD calibration

The TFT paint example worked great on the breadboard with a nano, but after soldering it up, it's acting werid. I'm not sure if it's the calibration, or if I damaged the "touch" sensitive part during working on it, I accidentally pushed a little hard getting out of a case I made.

Video showing behaviour: 3.5" TFT issue - YouTube

Attached is the info about the screen.

I’m sure David can offer more specific suggestions but I wonder if you might have swapped the XP/YP/XM/YM pin connections when transferring from the breadboard.

In any case, have you re-tried the calibration sketch with your current soldered wiring?

Impulsive:
I’m sure David can offer more specific suggestions but I wonder if you might have swapped the XP/YP/XM/YM pin connections when transferring from the breadboard.

In any case, have you re-tried the calibration sketch with your current soldered wiring?

oops, i just remembered that i flipped my screen orientation because when i soldered it i didn't take that into affect, and it was upside down. so i just swapped the orientation in the code instead of re-soldering everything.

ill have to do some digging on how the touch and Display portions work together/independently because ATM i am "sharing" 2 pins for touch with the LCD display. or i could just setup a new calibration/coordinate system based on my specific use and leave it at that, depends which route has less roadblocks in the way.

thanks for pointing that out.

Run the Calibration sketch. It will diagnose the X, Y pins. And get the Portrait calibration values.

Copy-Paste the two calibration lines into the TouchShield example.

Everything should work perfectly in Portrait.
Then edit the TouchShield example for Landscape, Portrait_Rev, Landscape_Rev in turn.

It should work perfectly in every rotation.

If you are using the v2.9.8 Release there is a typo in the TouchShield sketch.

            case 3:
                xpos = map(tp.y, TS_BOT, TS_TOP, 0, tft.width());
                ypos = map(tp.y, TS_LEFT, TS_RT, 0, tft.height());
                break;

It should be ypos = map(tp.x, TS_LEFT, ...

If you do not get perfect results please run the Calibration again. Copy-Paste the whole Serial Terminal to your message.

David.