mini210S and android/ubuntu

Reggie
Hi all, I thought I'd start a thread so that we could try and track down
issues with all of the different touch screens that are available.

1. ubuntu with h43 resistive touch (1wire interface, also connected to the
backlight), just doesn't seem to work

2. Android 4.0.3, tslib is missing as well as the helper apps, 1wire ts
driver is recognised by the system but gui fails to respond

3. Goodix/ft5x0x drivers missing or not working in ubuntu/android

4. h43 touchscreen raw values indicate that the screen orientation is wrong
, or rather that the axis are swapped, swapping the axis causes the y axis
to be inverted, so moving your finger from top to bottom would cause the
pointer to move from bottom to top.

It would appear that the H43 1wire driver actually exposes itself as an
event device, in /dev/input/eventX and it does actually spit out raw values
for X/Y, on investigation it appears to be roughly 188-3909 for the x axis
and 300-3730 for the y axis for the full range across the screen.  You can
test this for yourself by connect to the mini210S via serial console and
running the 'getevent or getevent -lp /dev/input/event1' command, you can
also see that the x/y axis events are swapped, the h43 screen is presented
to you in the OS as landscape, if you move your finger from left to right
you would expect to see the ABS_X values changing but it's the ABS_Y values
that actually change.

I had looked at the issue before in ubuntu and hacked up the driver to
report another input device that doesn't actually need calibration,
however, on revisiting the code I could see that there was a better way to
do it.

What I have managed to do is to swap the X/Y axis in code and to push my
min/max x/y values in to the input device setup as calibration parameters
and put in the correct width/height values to allow android to pick up the
correct touchscreen dimensions to be able to scale the values from
3909x3730 down to the actual screen resolution of 480x272.

On the android 2.3 image everything is working, tslib exists and
calibrating the screen is simple, the simple changes that I have made allow
the touchscreens to work in ubuntu/android 4.0.3 without having to compile
tslib.

I suspect that similar things are happening with the goodix ts and the
ft5x0x ts too but I don't own either so can't say for definite.

Is anyone interested in looking at the code changes that I have made?  At
the moment it is just rough working code, I'm sure there are some
refinements that can be done and I'd like to add code to be able to read
calibration info from the cmdline or text file similar to tslib.

As far as I can see, tslib isn't necessary for android (in fact, I can't
even see a /dev/fb0 to bind to, although this could be because of running
from sd and turning off initramfs/initrd/cpio stuff in the kernel).

R lederer
I would love to see your code changes.  I have been trying to get TSLIB to
work on an ARM android 4.0.3 build for a minute now. I can build it with my
OS and it works fine except that i cannot see the targets being output to
/dev/graphics/fb0.  i think i need a java app to display my crosshairs.

Reggie
Hi, I'm not entirely sure any of this is now necessary, there seems to be
confusion as to when to use the skipcali=yes function, android should bring
up a calibration screen on it's own.  I've just installed ubuntu on a
tiny6410 board and it also has the calibration routine built in.

It's been a while since I looked at the ubuntu properly for the mini210S,
I'll have another look at it and see what happens, I know more about the
device now so I may be able to get further with it.

Reggie
Attachment: mini210_1wire_host.c (18.41 KB)
In theory, you should be able to use the attached file on a H43 resistive
touchscreen (or any resistive touch that uses one wire) in ubuntu, it
should show up as an input device, it shouldn't need tslib at all.

Let me know how you get on.

I've got another file that also shouldn't need tslib but it does require
you to get the raw output from the touchscreen first, it works quite nicely
but I'm not sure if it's user friendly enough :D