Topics

TFT touch screen


Barry Hansen
 

TFT Touch Calibrator” is a new example program to study TFT Resistive Touchscreen behavior and calibration.

I’ve never been really satisfied with the responsiveness and accuracy of Griduino’s touch screen. It’s good enough to use okay, but it doesn’t seem really responsive nor does it report taps exactly where it was pressed. As a result, my Griduino programs are always designed with giant hit-targets to raise the chance of successfully pressing inside the on-screen buttons. Not a bad idea for drivers in motion anyway, but I wanted to understand it and see if I could improve performance. Maybe it’s a calibration problem and maybe a close study of calibration settings can make it better.

Further, there is a certain amount of manufacturing variability and it's possible that my hardcoded values don't suite your own device. If your particular screen shows that touches are too far off, the reported measured values can help you choose new settings to edit into your source code and compile/run again.

So I wrote this new TFT_Touch_Calibrator program. The idea is to actually display the compiled-in touchscreen configuration settings along with the actual values actually measured when you actually touch it, actually.

The screen feedback shows how where each touch is mapped into screen coordinates after running my finger along two of the edges.

A screen shot of a monitor

Description automatically generated

In this photo, the native X-direction of the screen is up-down. The directional settings are grouped into boxes with dotted lines.

  • The native Y-direction measurements are left-right.
  • There are three real-time measurement values in yellow (433, 366, 750).
  • The current configuration values in X are 240-800 ohms, and in Y are 320-760 ohms.
  • The pink dots are visual reports of where touches are mapped into screen cords using these settings.

Bottom line after all this is that resistive touch screens are not as accurate as the more common capacitive touch screens that we see on smartphones and tablets. If you run this example program, you’ll see a scattering of coordinates for simple straight-line touches. That’s okay; it works well enough for my purposes.

This test was successful in finding a mild improvement to my calibration settings. And, now that they are corralled together in one spot near the top of the source code, people can more easily change them and copy/paste them into the other Griduino programs.

Comments?

Happy Socially Distanced Outdoor Thanksgiving, everyone!

Barry K7BWH

 

PS – Has anyone tried the six-digit announcements feature?


 

Hi Barry,
That is a very interesting program. 
If I recall on the STM32-SDR project we used mostly the LCD touchscreen calibration program supplied by ST with a few tweaks.  For the most part it works well and don’t recall any major issues.  We have some much smaller buttons etc on that project. 

But in mobile applications big areas is good. I find using touch screen when in motion even as passenger is challenging. 

The fellow who worked on it teaches CS at local university and is a rather clever fellow with data analysis.  I would have to look at the code to see if he did anything to what was provided. 

Hope you are having a good Thanksgiving. 
73
Dave
VE7HR 




On Nov 26, 2020, at 3:31 PM, Barry Hansen <barry@...> wrote:



TFT Touch Calibrator” is a new example program to study TFT Resistive Touchscreen behavior and calibration.

I’ve never been really satisfied with the responsiveness and accuracy of Griduino’s touch screen. It’s good enough to use okay, but it doesn’t seem really responsive nor does it report taps exactly where it was pressed. As a result, my Griduino programs are always designed with giant hit-targets to raise the chance of successfully pressing inside the on-screen buttons. Not a bad idea for drivers in motion anyway, but I wanted to understand it and see if I could improve performance. Maybe it’s a calibration problem and maybe a close study of calibration settings can make it better.

Further, there is a certain amount of manufacturing variability and it's possible that my hardcoded values don't suite your own device. If your particular screen shows that touches are too far off, the reported measured values can help you choose new settings to edit into your source code and compile/run again.

So I wrote this new TFT_Touch_Calibrator program. The idea is to actually display the compiled-in touchscreen configuration settings along with the actual values actually measured when you actually touch it, actually.

The screen feedback shows how where each touch is mapped into screen coordinates after running my finger along two of the edges.

<image001.jpg>

In this photo, the native X-direction of the screen is up-down. The directional settings are grouped into boxes with dotted lines.

  • The native Y-direction measurements are left-right.
  • There are three real-time measurement values in yellow (433, 366, 750).
  • The current configuration values in X are 240-800 ohms, and in Y are 320-760 ohms.
  • The pink dots are visual reports of where touches are mapped into screen cords using these settings.

Bottom line after all this is that resistive touch screens are not as accurate as the more common capacitive touch screens that we see on smartphones and tablets. If you run this example program, you’ll see a scattering of coordinates for simple straight-line touches. That’s okay; it works well enough for my purposes.

This test was successful in finding a mild improvement to my calibration settings. And, now that they are corralled together in one spot near the top of the source code, people can more easily change them and copy/paste them into the other Griduino programs.

Comments?

Happy Socially Distanced Outdoor Thanksgiving, everyone!

Barry K7BWH

 

PS – Has anyone tried the six-digit announcements feature?


Rod WE7X
 

Is this a new update?  I do not see mention of an update, or if one coming, or if it is even something that is possible with the hardware we have.
   And, no, I have not tried the six digit announcement feature yet.
  I did get to try out the tracking feature a few weeks ago, while out in the Olympic Penninsula while working Comm's support for a big high speed car rally.
  It was pretty interesting watching the circuitous route I needed to take to get from one place to another.  I was in CN87 the whole time, but sometimes just barely.
  Rod J


Barry Hansen
 

Just for fun, a pre-compiled TFT_Touch_Calibrator is now in the downloads folder on GitHub.

If anyone wants to see how accurately their touch screen responds to touches, then try out the little example program. It works on all versions of Griduino hardware.

The regular breadcrumb trail plotted in Griduino is fascinating. All my life I’ve used paper maps and online maps that (a) simplify roads into mostly straight lines and (b) change their mapping scale from one page to the next which interferes with estimating distances. I particularly object to USA maps that fit every state onto one page. Now, at last, Griduino shows my route at always the same scale and tracks detailed movement down to the screen’s resolution (about 0.5 miles per pixel). Pretty interesting how much our real roads wander around. I somehow find this feedback reassuring in a way I can’t explain.

Here’s a track from a recent trip. I drove from home to Issaquah and back which as you know has to go around most of Lake Washington; I went outbound on its west side I-5 and inbound on its east side I-405. We usually think of I-90 as an E-W corridor but in the breadcrumb trail (the little tail end in the lower right) it’s really much more NW-SE near Issaquah. This is the opposite of high speed car rally racing but still fascinating.

Barry K7BWH

 

From: Griduino@groups.io <Griduino@groups.io> On Behalf Of Rod WE7X via groups.io
Sent: Monday, November 30, 2020 9:42 PM
To: Griduino@groups.io
Subject: Re: [Griduino] TFT touch screen

 

Is this a new update?  I do not see mention of an update, or if one coming, or if it is even something that is possible with the hardware we have.
   And, no, I have not tried the six digit announcement feature yet.
  I did get to try out the tracking feature a few weeks ago, while out in the Olympic Penninsula while working Comm's support for a big high speed car rally.
  It was pretty interesting watching the circuitous route I needed to take to get from one place to another.  I was in CN87 the whole time, but sometimes just barely.
  Rod J

_._,_._,_


TFT Touch Calibrator” is a new example program to study TFT Resistive Touchscreen behavior and calibration.

I’ve never been really satisfied with the responsiveness and accuracy of Griduino’s touch screen. It’s good enough to use okay, but it doesn’t seem really responsive nor does it report taps exactly where it was pressed. As a result, my Griduino programs are always designed with giant hit-targets to raise the chance of successfully pressing inside the on-screen buttons. Not a bad idea for drivers in motion anyway, but I wanted to understand it and see if I could improve performance. Maybe it’s a calibration problem and maybe a close study of calibration settings can make it better.

Further, there is a certain amount of manufacturing variability and it's possible that my hardcoded values don't suite your own device. If your particular screen shows that touches are too far off, the reported measured values can help you choose new settings to edit into your source code and compile/run again.

So I wrote this new TFT_Touch_Calibrator program. The idea is to actually display the compiled-in touchscreen configuration settings along with the actual values actually measured when you actually touch it, actually.

The screen feedback shows how where each touch is mapped into screen coordinates after running my finger along two of the edges.

A screen shot of a monitor

Description automatically generated

In this photo, the native X-direction of the screen is up-down. The directional settings are grouped into boxes with dotted lines.

  • The native Y-direction measurements are left-right.
  • There are three real-time measurement values in yellow (433, 366, 750).
  • The current configuration values in X are 240-800 ohms, and in Y are 320-760 ohms.
  • The pink dots are visual reports of where touches are mapped into screen cords using these settings.

Bottom line after all this is that resistive touch screens are not as accurate as the more common capacitive touch screens that we see on smartphones and tablets. If you run this example program, you’ll see a scattering of coordinates for simple straight-line touches. That’s okay; it works well enough for my purposes.

This test was successful in finding a mild improvement to my calibration settings. And, now that they are corralled together in one spot near the top of the source code, people can more easily change them and copy/paste them into the other Griduino programs.

Comments?

Happy Socially Distanced Outdoor Thanksgiving, everyone!

Barry K7BWH

 

PS – Has anyone tried the six-digit announcements feature?