SainSmart 4.3" TFT - Touch Screen Not Responding

Hello All, I've just joined the forum!

I'm working on a project at the moment and I'm absolutely stumped! I am able to get the display to work perfectly but I can't get anything out of the touch screen.

I've bought a SainSmart 4.3" 480x272 TFT LCD Touch Screen Module which uses the SSD1963 controller, and also the SainSmart TFT Adaptor Shield to suit (it has "CTE TFT LCD/SD Shield" written on it), and also an Arduino Due - as a package. The link can be found here for reference to the product.

I've downloaded the UTFT and UTouch Libraries to go with this, as I've heard its the best option to use - the link can be found here for reference to these. I have followed the set-up instructions to the letter - installed the both of these libraries, found out which controller the display uses (SSD1963_480) and declared it in the set-up phase of the coding screenshot here. I know that when you first set up the library for UTFT, it's required that you edit the file "UTFT, hardware, ARM, HW_ARM_defines" and ensure that the correct shield has been selectedscreenshot here.

After doing all of this, I opened the demo sketch (from the UTFT examples folder) which runs through a few examples of how to display text, boxes, lines, etc; and this worked perfectly - but didn't require any input from the touch screen. I then proceeded to open the sketch (in the UTouch examples folder) to calibrate the touch screen, it appeared perfectly on the display and when I used a pen to calibrate it, it would respond to my input - so I presumed it was working perfectly.

As part of the set-up prodecure, it said in the documentation of the UTouch Library to modify the file "UTouch, UTouchCD" and edit the values that where given after you calibrated the screen - which I did screenshot here. Everything seemed to be going as expected, so I went on to try out the "UTouch_ButtonTest" sketch (in the examples folder) to see if everything had worked - but none of the buttons would register my input, no matter where I tapped the screen. I went over everything again to double-check myself, but it still wasn't working.

I decided to try the "UTouch_QuickDraw" sketch (in the examples folder) and again, it didn't matter where I tapped on the screen - nothing would work. I read a post that it's often necessary to use a external power supply on larger displays, so I gave this a try and still nothing. So I decided to edit one of these sketches to read out what the x and y dimensions where over serial, and they both showed as "-1" when I was prodding the screen.

I'm out of ideas and have searched everywhere on the web - but I can't find any answers. I'm hoping that someone can point me in the right direction and I'll be happy to provide any other info if needed. Thank you in advance.

I'm not sure if this is the same shield as mine, I have the 3.5" tft and i got mine working the first time--i'm using adafruit libraries not the UTFT stuff.

I followed these steps exactly and mine worked the first time

I'm now combining the examples so I have SD card reading capability, BMP drawing, and touch screen.

Perhaps follow this?

Your link shows a MEGA2560 adapter shield. You should use a DUE adapter shield with a Due.

I have used neither. But the shop that sold you the goods should advise you on which adapter and display to buy. And which library and examples to use. The correct iitems should work straight out of the box.

David.

Sainsmart and newbie with first post......... HOW MANY times do we see this combination? >:( :confused:

One observation is your Cal_X and Cal_Y figures are all zeros. Clearly something is not right!

Regards,

Graham

KrisKasprzak:
I'm not sure if this is the same shield as mine, I have the 3.5" tft and i got mine working the first time--i'm using adafruit libraries not the UTFT stuff.

Thank you KrisKasprzak, I'll take a look and see if it works. SainSmart have suggested that the UTFT and UTouch libraries should work, but I prefer the Adafruit products.

david_prentice:
Your link shows a MEGA2560 adapter shield. You should use a DUE adapter shield with a Due.

Apologies if this was misleading David, I'm using the Arduino Due which came as part off the bundle when I bought the display and shield. Perhaps the MEGA2560 would have been a better choice?

ghlawrence2000:
One observation is your Cal_X and Cal_Y figures are all zeros. Clearly something is not right!

Well spotted Graham, I'm beginning to think that this is a hardware issue as I've been tinkering over the last week with no luck. With hindsight, perhaps I should have bought a better display (newbie mistake) haha?

D15H:
With hindsight, perhaps I should have bought a better display (newbie mistake) haha?

With hindsight you should have bought from ANYBODY else, not Sainshit....... :frowning: The number of first posts on the forum from new users starting "I bought this from Sainsmart and it don't work" is not even amusing any more, but I can guarantee you won't be the last!

The DUE was an excellent choice, it has more of everything and is faster at everything. Being 3.3V is really the only potential problem depending on what you want to do with it, but there are ways of interfacing to 5V stuff.

Regards,

Graham

ghlawrence2000:
With hindsight you should have bought from ANYBODY else, not Sainshit.......

I can understand you're frustration Graham, I've learnt my lesson the hard way but I know for the future now. On the plus-side, I have got things partially up and running. It turns out that the shield inverts both the X and Y dimensions! :o When I initially calibrated the display (presuming things where as they should be) the values where so odd that it didn't display anything. I researched what values the calibration should have produced, used these values in the UTouch library - and all of a sudden we have life, albeit not yet useful.

Now I'm just trying to invert the dimensions. I have tried swapping the values (eg x=y instead of x=x) but that didn't work. Anyone have any suggestions? Thank you all for your input so far! :slight_smile:

All sorted, after some thinking I have also solved the inverted touch - as posted in another thread:

D15H:
I've come up with a solution as I had the same problem myself. Basically, take the overall dimension of your display (mine is 480 x 272) and subtract the relevant x and y dimensions from the overall dimension to give an inverted figure. Its not the BEST answer to the problem, but it works for me! ;D