Skip to content

touchscreen

kotc edited this page Jun 12, 2019 · 10 revisions

how to enable touchscreen on your h3droid

1/ first determine kind of device you have (usb or i2c/spi)
2/ if it's usb, check lists below to determine driver
3/ add following line to /data/rc.local to be executed on every boot: modprobe yourdriver, for example: modprobe usbtouchscreen or modprobe hid-multitouch
4/ if you device is of resistive type it might require calibration and additional parameters to above command. instructions are further down this page
5/ i2c/spi touch is for advanced users. choose usb one if you can
6/ if you have any troubles, feel free to join us on irc and we will try helping you
7/ send beer

module name "usbtouchscreen"

works with usb device ids:

0123:0001
0403:F9E9
04E7:0020
0596:0001
0637:0001
0664:0306
0664:0309
08F2:007F
08F2:00CE
08F2:00F4
0AFA:03E8
0DFC:0001
0EEF:0001
0EEF:0002
0EEF:0005
0F92:0001
10F0:2002
1234:0001
1234:0002
1234:5678
134C:0001
134C:0002
134C:0003
134C:0004
1391:1000
14C8:0003
16E3:F9E9
1870:0001
1AC7:0001
3823:0001
3823:0002
595A:0001
6615:0001
7374:0001

available parameters:

swap_xy : If set X and Y axes are swapped. (bool)
reverse_y : If set Y axe is reversed. (bool)
reverse_x : If set X axe is reversed. (bool)
hwcalib_xy : If set hw-calibrated X/Y are used if available (bool)
debug : set to 1 to enable debug (bool)
xoffs : x offset, def:0 (x+xoffs) (int)
yoffs : y offset, def:0 (y+yoffs) (int)
xscale : x scale %, def:100 (xscale/100) (int)
yscale : y scale %, def:100 (y
scale/100) (int)
egalax_mt_pkt_len : def: 25, might be 23 or 22 too (int)

module name "hid-multitouch"

works with usb device ids:

03EB:2118
03EB:211C
0408:3000
0408:3001
0408:3008
0483:3261
0486:0185
0486:0186
04B4:C001
04DA:1044
04DA:104D
04E7:0022
0596:0500
0596:0502
0596:0506
0603:0600
062A:7100
093A:8001
093A:8002
093A:8003
0DFC:0003
0EEF:0005 <-- doesnt work with "hid-multitouch", use "usbtouchscreen"
0EEF:480D
0EEF:480E
0EEF:7207
0EEF:720C
0EEF:7224
0EEF:722A
0EEF:725E
0EEF:7262
0EEF:726B
0EEF:72A1
0EEF:72AA
0EEF:72FA
0EEF:7302
0EEF:7349
0EEF:A001
1403:5001
1477:1006
1477:1007
1477:100E
1477:1021
1477:1022
1477:1023
1477:1024
1477:1025
1477:1026
14E1:3500
1784:0016
1AAD:000F
1CB6:6650
1CB6:6651
1E5E:0313
1F87:0002
1FD2:0064
1FF7:0013
202E:0006
202E:0007
2087:0703
2087:0A01
2087:0A02
2087:0B03
2087:0F01
20B3:0A18
2101:1011
222A:0001
2247:0001
227D:0709
227D:0A19
22ED:1010
2453:0100
2505:0220
6615:0070

usbtouchscreen.ko module

It drives many popular TS and accepts few calibration parameters. Procedure requires root shell (either ssh/adb/uart) so you will be able to: rmmod usbtouchscreen; modprobe usbtouchscreen params..
To get a full list of available params do: modinfo usbtouchscreen.ko

If you need to calibrate it, you can try following procedure:
1/ install some "screen test" app that allows you to see the touches
2/ start with reverse_x (or y)
3/ then adjust xscale param (default is 100) until pointer on the screen moves the same speed as your finger
4/ ..then yscale
5/ adjust xoffset and yoffset (default is 0)
6/ add final line to /data/rc.local (modprobe usbtouchscreen xscale=... etc) to enable TS on every boot
7/ report your failure/success to #h3droid on irc.freenode.com and optionally send us some beer!

You can’t perform that action at this time.