gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS development > Touch Screen Pressure Sensitive Or Not?

#35571 - PhoenixSoft - Mon Feb 07, 2005 11:34 am

I know that everyone currently believes that the touch screen is not pressure sensitive (that it can't tell how hard you are pressing). On the NDSTech Wiki (http://www.bottledlight.com/ds/index.php/Main/System), I found a link to the product page for the touch screen controller (http://focus.ti.com/docs/prod/folders/print/tsc2046.html). What is interesting about the product page, is the feature listing:

Quote:
TOUCH-PRESSURE MEASUREMENT


Doesn't this mean that the DS can actually tell how hard you are pressing on the screen? This would explain the unknown register in the NDSTech Wiki:

Quote:
TSC_MEASURE_AUX 0xE4 Measures ?, its non-zero, but I don't know what

#35574 - TJ - Mon Feb 07, 2005 1:00 pm

Everything I ever heard about these type of touch screens was that they could not detect pressure.

But I would imagine this would be easy enough to test, anyone with a pass-through want to check that register and see what happens when you push on the screen?

#35575 - netdroid9 - Mon Feb 07, 2005 1:40 pm

Practicle uses... Practicle uses... Well, someone might make a game involving dropping heavy objects on your DS...

#35576 - Boeboe - Mon Feb 07, 2005 1:50 pm

so, with al these new features, we will have to burn our DS and drop heavy objects on it. What's next? a dremel motion detector? A humidity meter?

#35577 - PhoenixSoft - Mon Feb 07, 2005 1:59 pm

Here's what the data sheet says about pressure measurement:

http://img209.exs.cx/my.php?loc=img209&image=datastouchdspressure4hm.jpg

#35581 - Joat - Mon Feb 07, 2005 4:01 pm

AUX is an extra input on the TSC, its a general purpose AD/C channel, and I have no idea what nintendo is using it for, but it reads non-zero and metroid has code that polls it (doesn't *do* anything with it, but it takes the time to read it).

The TSC can be used to get a rough idea of touch *resistance*, not pressure. This could be used e.g. to determine whehter a finger or a stylus is used, but not how hard a stylus is being pressed.
_________________
Joat
http://www.bottledlight.com

#35582 - Boeboe - Mon Feb 07, 2005 4:23 pm

besides, I think it would be a REALLY bad idea to create a game that promotes putting pressure on your screen.

#35585 - Dib - Mon Feb 07, 2005 4:56 pm

I wonder why you would want to check for the different stylus devices. Unless you were planning to exclude one from being used, which makes no sense to me, I can't conceive of any application for this.

Perhaps it's circumstantial that this can be done, so it might as well be documented for developers so there are no surprises, and/or perhaps they might devise a usage that nobody else can.

#35588 - dagamer34 - Mon Feb 07, 2005 7:30 pm

Dib wrote:
I wonder why you would want to check for the different stylus devices. Unless you were planning to exclude one from being used, which makes no sense to me, I can't conceive of any application for this.



So that you can take into account what kind of device the player is using in your code. A stylus is much more accurate that your finger, and so, movement would be much easier. However, trying to control anything specific with your thumb is crazy.
_________________
Little kids and Playstation 2's don't mix. :(

#35607 - PhoenixSoft - Tue Feb 08, 2005 1:02 am

Joat wrote:
AUX is an extra input on the TSC, its a general purpose AD/C channel, and I have no idea what nintendo is using it for, but it reads non-zero and metroid has code that polls it (doesn't *do* anything with it, but it takes the time to read it).

The TSC can be used to get a rough idea of touch *resistance*, not pressure. This could be used e.g. to determine whehter a finger or a stylus is used, but not how hard a stylus is being pressed.


So we can find out the touch resistance? Because, according to the formula I linked to, can't that be used to find the pressure? It says that, to find out the touch pressure, we have to know Z1, Z2, the X position and the resistance. We already know how to get the first three of those, so if we can find out the resistance, don't we already have all we need to find out the pressure?

Or am I getting the wrong idea altogether about what it refers to as pressure?

#35614 - Dib - Tue Feb 08, 2005 5:15 am

dagamer34 wrote:
So that you can take into account what kind of device the player is using in your code. A stylus is much more accurate that your finger, and so, movement would be much easier. However, trying to control anything specific with your thumb is crazy.

Precisely, so who cares what they do? If they want to use a coin, rusty nail, tuna sandwich, or unabridged Webster's dictionary I couldn't possibly care less.

#35617 - NMcCoy - Tue Feb 08, 2005 8:29 am

I'd say that in less than a year we'll see people competing for the best speedrun of Metroid Prime Hunters using a tuna sandwich. Tap-to-fire control would certainly get rather messy.

#35618 - netdroid9 - Tue Feb 08, 2005 9:23 am

Unless someone pulls a hoax off involving either microwaving your DS, dropping it off a cliff onto sharp rocks or hitting it with a heavy, dangerous object.

#36302 - assassda - Thu Feb 17, 2005 2:35 am

i am 100% positive the touch screen is pressure sensitive, to test this go to the metroid demo "touch to start" screen and with one finger press on the right side of the screen, with the other press on the left side varying in pressure

you will see the highlighted "honeycomb" moves closer to the finger with more pressure

EDIT: you can also test this with pictochat in the same way

#36305 - NMcCoy - Thu Feb 17, 2005 3:54 am

Um, that's just how touchscreens like this work - it can only output a single set of coordinates, and determines this point based on the average of where the voltage across it changes, which is why pushing it with your finger gives you at least some degree of accuracy (rather than some random point under your finger. The same effect can be observed with any touch-based pointer control system.
This is also why the touchscreen can't detect two different points being pressed simultaneously.

In other words, yes, the touchscreen is pressure-sensitive, but only in the most trivial sense - if it wasn't, it wouldn't be a touchscreen.

#36354 - syn[] - Thu Feb 17, 2005 11:13 pm

Also, there is a limit to the pressure it can sense. Using the metroid demo example, you will get to a point where it doesnt matter how hard you push, the "cursor" will stay in the middle.

#36662 - s4uc3m4n - Sun Feb 27, 2005 10:33 am

Quote:
it can only output a single set of coordinates, and determines this point based on the average of where the voltage across it changes


Except that, acording to what you are saying there are multiple points of reception for the electrical impulses, and physically measuring presure could simply be determined by the size of the location your pressing takes up. Being that it is a touch screen this is a perfectly reasonable idea. However if it can understand a central most point, it must be able to recognize all of the surrounding area to get to the central point.

#36664 - ampz - Sun Feb 27, 2005 10:41 am

No, it must not recognize the surrounding area in order to determine the central point.

The x and y coordinates are determined by measuring the voltage drop across each axis.
The area pressed can be estimated by measuring the resistance between the two planes.