Chalk Elec touchscreen on Jetson TK1

Hi guys, I’m new here,

I’m having a very strange problem with Chalk Elec 10" LCD touchscreen (http://www.chalk-elec.com/?page_id=1280#!/10-universal-LCD-with-HDMI-interface-and-capacitive-multi-touch/p/42545413/category=3094861) and Jetson TK1.

When I plug the touchscreen USB, the touch only works for a few seconds and then it stops!

If I plug the USB and as soon as possible touch the screen, it works if I CONTINUALLY touch the screen. If I stop touching the screen (for only ~2 seconds) and start touching the screen again, it doens’t work anymore (until I unplug and plug USB).

The display worked fine with other devices (x86 computer with ubuntu and beagleboard with angstrom linux).

I checked the dmesg and it doesn’t show nothing unusual.

I also checked the input events of the touchscreen and the only thing that I notice is that the events of touchscreen stop to happen too.

Do someone have any idea of what is happening and if possible how I can fix this?

If is usefull:

The kernel messages of Jetson TK1 regarding Chalkboard touchscreen:

[  322.795860] usb 3-1: new full-speed USB device number 5 using tegra-ehci
[  322.844540] usb 3-1: New USB device found, idVendor=04d8, idProduct=f723
[  322.851254] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  322.851440] usb 3-1: Product: HID Touchscreen
[  322.857320] usb 3-1: Manufacturer: Chalkboard Electronics
[  322.890872] input: Chalkboard Electronics HID Touchscreen as /devices/platform/tegra-ehci.0/usb3/3-1/3-1:1.0/input/input5
[  322.892712] hid-generic 0003:04D8:F723.0004: input: USB HID v1.11 Device [Chalkboard Electronics HID Touchscreen] on usb-tegra-ehci.0-1/input0

Last messages of run of evtest on /dev/input5:

........

Event: time 946685752.952892, type 4 (EV_MSC), code 4 (MSC_SCAN), value d0042
Event: time 946685752.952892, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 946685752.952892, type 1 (EV_KEY), code 320 (BTN_TOOL_PEN), value 1
Event: time 946685752.952892, type 3 (EV_ABS), code 0 (ABS_X), value 1096
Event: time 946685752.952892, type 3 (EV_ABS), code 1 (ABS_Y), value 679
Event: time 946685752.952892, -------------- SYN_REPORT ------------
Event: time 946685752.984503, type 4 (EV_MSC), code 4 (MSC_SCAN), value d0042
Event: time 946685752.984503, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 946685752.984503, type 1 (EV_KEY), code 320 (BTN_TOOL_PEN), value 0
Event: time 946685752.984503, -------------- SYN_REPORT ------------

Regards,

Just to verify that the touch screen itself and the USB side of things have not gone to sleep, compare evtest when it works to evtest after it fails. The above output is useful, but it needs clarification…obviously evtest works while the touch screen works, but once the touch screen fails, is there still successful evtest output?

In part I’m wondering if USB sleep is hitting. Check this URL and set USB sleep to automatically stay disabled:
http://elinux.org/Jetson/Performance#Controlling_the_CPU_performance

echo -1 > /sys/module/usbcore/parameters/autosuspend

Hi linuxdev!

Sorry for the lack of clarification.

The evtest stop to output data when the touchscreen fails.

The problem really was the autosuspend parameter! But changing it in rc.local doesn’t work as expected.

When I changed the parameter via rc.local, If I boot the Jetson TK1 with touchscreen it doesn’t work. If I unplug and plug the USB again it begin to work indefinitely!

My guess was that the issue is that rc.local change the usbcore parameter too late on driver. I then changed the parameter on the boot kernel line via /boot/extlinux/extlinux.conf (adding usbcore.autosuspend=-1 on boot command line) and the touch worked perfectly!

Thank you very much!

This sounds like a valid bug report, although I’m not sure how it would be reported if only this model touch screen has the issue. Even if not a repeatable bug for other people without the screen, it still provides data on USB autosuspend behavior during startup.

Just to summarize, this is the model:
http://www.chalk-elec.com/?page_id=1280#!/10-universal-LCD-with-HDMI-interface-and-capacitive-multi-touch/p/42545413/category=3094861

What is the L4T version? It’s quite possible if this is an older release the issue has already been resolved.

Yes, this is the model.

Sorry for my ignorance, but how can I discover the L4T version in the Jetson?

Anyway, here lsb_release and uname commands outputs:

ubuntu@tegra-ubuntu:/boot$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:        14.04
Codename:       trusty
ubuntu@tegra-ubuntu:/boot$ uname -a
Linux tegra-ubuntu 3.10.40-g8c4516e #1 SMP PREEMPT Thu Jan 29 14:45:52 UTC 2015 armv7l armv7l armv7l GNU/Linux
ubuntu@tegra-ubuntu:/boot$

I also tried with a “virgin” Jetson TK1 with fabric configuration (even the graphics driver wasn’t installed) with no success. Here the lsb_release and kernel version:

ubuntu@tegra-ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04 LTS
Release:        14.04
Codename:       trusty
ubuntu@tegra-ubuntu:~$ uname -a
Linux tegra-ubuntu 3.10.24-g6a2d13a #1 SMP PREEMPT Fri Apr 18 15:56:45 PDT 2014 armv7l armv7l armv7l GNU/Linux

Finally, FYI, the display worked at my x86 desktop with Ubuntu 12.04.5 LTS with 3.5.0-61-generic kernel. Unfortunately, I don’t have a desktop with Ubuntu 14.04 to test. :(

head -n 1 /etc/nv_tegra_release

As linuxdev suggested, this is because the connected device through USB has auto-suspended.
Power bus of devices are put to suspend so as to save power,
https://www.kernel.org/doc/Documentation/usb/power-management.txt

User can always disable it for specific devices using sysfs nodes or globally using usbcore.autosuspend flag as you already did.

Mohit Sharma

Here the output:

ubuntu@tegra-ubuntu:~$ head -n 1 /etc/nv_tegra_release 
# R21 (release), REVISION: 1.0, GCID: 4584307, BOARD: ardbeg, EABI: hard, DATE: Wed Oct  8 02:31:33 UTC 2014

Good to know. Thank you!