Finger touch/mouse left click stopped working on LCD Touchscreen 4DCape-70T for BeagleBoneBlack

Hi,
we use many BeagleBoneBlack boards (kernel 3.8.13-bone50 (May 13 2014)) with LCD Touchscreen 4DCape-70T (http://www.4dsystems.com.au/product/4DCAPE_70T/) .
My java application is running after startup of OS Debian 7.5. I use GPIO library libbulldog in this java application for controlling UART ports (UART1_RXD == P9_26 and UART4_RXD == P9_11) and I2C BUS (I2C2_SCL == P9_19 and I2C2_SDA == P9_20) + I use pins for GND, 3,3V and 5V.
Our hardware control unit is connected to i2c bus via gpio pins. I had to decrease frequency on this I2C Bus from 100kHz to 25kHz (link: http://randymxj.com/?p=538). But I think this decreased frequency doesn’t affect frequency of the another I2C Bus which is used for LCD Touchscreen touch controlling.
Finally, here is our problem:
On one BeagleBoneBoard with LCD Touchscreen can our customer simulate problem with touchscreen, when touch stopped working (attachment: touchscreen_with_java_app.jpg). This happens 4-5 times every day to them. After remote connection(teamviewer) to BeagleBoneBlack screen via tightVNC I found out, that also left mouse click didn’t work, but I could move with cursor which was still visible despite of I use application unclutter which automatically hides cursor after 10 seconds of inactivity. On my java application was one of buttons still in pressed state. When I stopped my java application via putty (sudo pkill java), left mouse click still didn’t work BUT right mouse click was ok and also cursor moves were ok.
I still haven’t found any possible commands for restarting this behaviour via some linux commands, which I can eventually run in my java application, because I know that last action was MOUSE_PRESSED (finger touch) without MOUSE_RELEASED (finger out). So I would like to use timer for MOUSE_PRESSED action and then run command for restarting touch/mouse controller, if it is possible at all. Now our customer must restart this board with power cable unplugging and plugging every time.
Second better solution can be some linux editing without kernel update (I tried Debian 8.3 but I have problem with “jumping cursor” (discussion: https://groups.google.com/forum/#!msg/beagleboard/SGCdVCqdh00/5GbeINiiHMAJ) and problem is also not enough available disk space for my applications and we would have to test this solution for some month).
Or maybe this is hardware problem which I cannot repair in software. I still don’t know where is real problem.
Thanks in advance for your answers.
Sincerely
Radovan Chovan

touchscreen_with_java_app.jpg

I updated kernel from 3.8.13-bone50 to 3.8.13-bone79 but it didn’t help and problem with touch occured again.

used commands:

cd /opt/scripts/tools/
git pull
sudo ./update_kernel.sh

Note: I "catched" event MOUSE_PRESSED (stucked longer than 5 seconds) within my java application but commands "xinput -disable ti-tsc & xinput -enable ti-tsc" didn't help to recover touch/left click.

Hi,
we have finally replicated this issue by constant touching of touschsreen display using two hands.

debian@beaglebone:~$ xinput --list
\u23a1 Virtual core pointer id=2 [master pointer (3)]
\u239c \u21b3 Virtual core XTEST pointer id=4 [slave pointer (2)]
\u239c \u21b3 HID 1241:1177 id=8 [slave pointer (2)]
\u239c \u21b3 ti-tsc id=7 [slave pointer (2)]
\u23a3 Virtual core keyboard id=3 [master keyboard (2)]
\u21b3 Virtual core XTEST keyboard id=5 [slave keyboard (3)]
\u21b3 tps65217_pwr_but id=6 [slave keyboard (3)]
\u21b3 gpio_keys.13 id=10 [slave keyboard (3)]

note: HID 1241:1177 - connected mouse
ti-tsc - touschcreen (I think)

When I run command “xinput reattach 7 2” in lxterminal from tightVNC, mouse left-click started work again!
But I still don’t know command for touchscreen click recovery. :frowning:

evdev is an Xorg input driver for Linux’s generic event devices. It therefore supports all input devices that the kernel knows about, including most mice and keyboards.

usr/share/X11/xorg.conf.d/10-evdev.conf

Code:

Section "InputClass"
        Identifier "evdev touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

I run “sudo evtest”. Property ABS_PRESSURE has still value 338. note: when there is no touch, value is 0. I attach picture.

sudo_evtest_ABS_PRESSURE.jpg

cd /sys/devices/ocp.3/44e0d000.tscadc/tiadc/iio:device0
cat in_voltage*

  1. correct state:
    456
    2199
    3258
    3808

Ok, it has nothing with property ABS_PRESSURE. We can replicate issue even when there is no pressed action.
We try to manipulate with register CTRL of AM335X processor, but it didn’t help.
Could it be problem with EMI???
When I am electrically charged and sometimes when I touch the display, the touch function recovers and touch works.