This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi all,
We are trying to integrate Penmount 120x USB capacitive touchscreen to our DM3730 based Embest Devkit 8500 board.
We are running Arago Linux based on kernel version 2.6.32. The vendor supplied kernel already contains support for
ADS7846 touchscreen controller. We are trying to replace this with Penmount USB touchscreen. We cross-compiled the
penmount USB touchscreen source code and integrated with the Linux kernel and disabled the support for the earlier
touchscreen.
The output of certain commands are attached below:-
cat /proc/bus/input/devices
I: Bus=0003 Vendor=14e1 Product=3500 Version=0180
N: Name="PenMount PCI TouchScreen"
P: Phys=usb-ehci-omap.0-1.4/input0
S: Sysfs=/devices/platform/ehci-omap.0/usb1/1-1/1-1.4/1-1.4:1.0/input/input2
U: Uniq=
H: Handlers=mouse0 event2
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=610000 3
./evtest /dev/input/event2
Input driver version is 1.0.0
Input device ID: bus 0x3 vendor 0x14e1 product 0x3500 version 0x180
Input device name: "PenMount PCI TouchScreen"
Supported events:
Event type 0 (Sync)
Event type 1 (Key)
Event code 330 (Touch)
Event type 3 (Absolute)
Event code 0 (X)
Value 0
Min 0
Max 2047
Event code 1 (Y)
Value 0
Min 0
Max 2047
Event code 48 (?)
Value 0
Min 0
Max 5
Event code 53 (?)
Value 0
Min 0
Max 2047
Event code 54 (?)
Value 0
Min 0
Max 2047
Testing ... (interrupt to exit)
Event: time 122.786500, type 3 (Absolute), code 48 (?), value 2
Event: time 122.786500, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.786500, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.786500, -------------- Config Sync ------------
Event: time 122.786500, type 1 (Key), code 330 (Touch), value 1
Event: time 122.786530, type 3 (Absolute), code 0 (X), value 1790
Event: time 122.786530, type 3 (Absolute), code 1 (Y), value 1648
Event: time 122.786530, -------------- Report Sync ------------
Event: time 122.792481, type 3 (Absolute), code 48 (?), value 2
Event: time 122.792481, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.792481, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.792481, -------------- Config Sync ------------
Event: time 122.792511, -------------- Report Sync ------------
Event: time 122.800476, type 3 (Absolute), code 48 (?), value 2
Event: time 122.800476, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.800476, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.800476, -------------- Config Sync ------------
Event: time 122.800476, -------------- Report Sync ------------
Event: time 122.806488, type 3 (Absolute), code 48 (?), value 2
Event: time 122.806488, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.806488, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.806488, -------------- Config Sync ------------
Event: time 122.806488, -------------- Report Sync ------------
Event: time 122.814484, type 3 (Absolute), code 48 (?), value 2
Event: time 122.814484, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.814484, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.814484, -------------- Config Sync ------------
Event: time 122.814484, -------------- Report Sync ------------
Event: time 122.822479, type 3 (Absolute), code 48 (?), value 2
Event: time 122.822479, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.822479, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.822479, -------------- Config Sync ------------
Event: time 122.822479, -------------- Report Sync ------------
Event: time 122.832459, type 3 (Absolute), code 48 (?), value 2
Event: time 122.832489, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.832489, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.832489, -------------- Config Sync ------------
Event: time 122.832489, -------------- Report Sync ------------
Event: time 122.842468, type 3 (Absolute), code 48 (?), value 2
Event: time 122.842468, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.842468, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.842468, -------------- Config Sync ------------
Event: time 122.842499, -------------- Report Sync ------------
Event: time 122.852478, type 3 (Absolute), code 48 (?), value 2
Event: time 122.852478, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.852478, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.852478, -------------- Config Sync ------------
Event: time 122.852478, -------------- Report Sync ------------
Event: time 122.858460, type 3 (Absolute), code 48 (?), value 2
Event: time 122.858490, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.858490, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.858490, -------------- Config Sync ------------
Event: time 122.858490, -------------- Report Sync ------------
Event: time 122.866455, type 3 (Absolute), code 48 (?), value 2
Event: time 122.866486, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.866486, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.866486, -------------- Config Sync ------------
Event: time 122.866486, -------------- Report Sync ------------
Event: time 122.874481, type 3 (Absolute), code 48 (?), value 2
Event: time 122.874481, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.874481, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.874481, -------------- Config Sync ------------
Event: time 122.874481, -------------- Report Sync ------------
Event: time 122.884460, type 3 (Absolute), code 48 (?), value 2
Event: time 122.884491, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.884491, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.884491, -------------- Config Sync ------------
Event: time 122.884491, -------------- Report Sync ------------
Event: time 122.892487, type 3 (Absolute), code 48 (?), value 2
Event: time 122.892487, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.892487, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.892487, -------------- Config Sync ------------
Event: time 122.892487, -------------- Report Sync ------------
Event: time 122.900482, type 3 (Absolute), code 48 (?), value 2
Event: time 122.900482, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.900482, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.900482, -------------- Config Sync ------------
Event: time 122.900482, -------------- Report Sync ------------
Event: time 122.908478, type 3 (Absolute), code 48 (?), value 2
Event: time 122.908478, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.908478, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.908478, -------------- Config Sync ------------
Event: time 122.908478, -------------- Report Sync ------------
Event: time 122.916473, type 3 (Absolute), code 48 (?), value 2
Event: time 122.916473, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.916473, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.916473, -------------- Config Sync ------------
Event: time 122.916504, -------------- Report Sync ------------
Event: time 122.930481, type 3 (Absolute), code 48 (?), value 2
Event: time 122.930481, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.930481, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.930481, -------------- Config Sync ------------
Event: time 122.930481, -------------- Report Sync ------------
Event: time 122.936462, type 3 (Absolute), code 48 (?), value 2
Event: time 122.936462, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.936462, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.936462, -------------- Config Sync ------------
Event: time 122.936493, -------------- Report Sync ------------
Event: time 122.944458, type 3 (Absolute), code 48 (?), value 2
Event: time 122.944458, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.944458, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.944489, -------------- Config Sync ------------
Event: time 122.944489, -------------- Report Sync ------------
Event: time 122.950470, type 3 (Absolute), code 48 (?), value 2
Event: time 122.950470, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.950470, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.950470, -------------- Config Sync ------------
Event: time 122.950470, -------------- Report Sync ------------
Event: time 122.958466, type 3 (Absolute), code 48 (?), value 2
Event: time 122.958466, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.958466, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.958466, -------------- Config Sync ------------
Event: time 122.958496, -------------- Report Sync ------------
Event: time 122.964478, type 3 (Absolute), code 48 (?), value 2
Event: time 122.964478, type 3 (Absolute), code 53 (?), value 1790
Event: time 122.964478, type 3 (Absolute), code 54 (?), value 1648
Event: time 122.964478, -------------- Config Sync ------------
Event: time 122.964478, -------------- Report Sync ------------
Event: time 122.970459, -------------- Config Sync ------------
Event: time 122.970459, type 1 (Key), code 330 (Touch), value 0
Event: time 122.970459, -------------- Report Sync ------------
Event: time 124.944494, type 3 (Absolute), code 48 (?), value 2
Event: time 124.944525, type 3 (Absolute), code 53 (?), value 1659
Event: time 124.944525, type 3 (Absolute), code 54 (?), value 645
Event: time 124.944525, -------------- Config Sync ------------
Event: time 124.944525, type 1 (Key), code 330 (Touch), value 1
Event: time 124.944525, type 3 (Absolute), code 0 (X), value 1659
Event: time 124.944525, type 3 (Absolute), code 1 (Y), value 645
Event: time 124.944525, -------------- Report Sync ------------
Event: time 124.952489, type 3 (Absolute), code 48 (?), value 2
Event: time 124.952489, type 3 (Absolute), code 53 (?), value 1659
Event: time 124.952519, type 3 (Absolute), code 54 (?), value 645
Event: time 124.952519, -------------- Config Sync ------------
Event: time 124.952519, -------------- Report Sync ------------
Event: time 124.962498, type 3 (Absolute), code 48 (?), value 2
Event: time 124.962498, type 3 (Absolute), code 53 (?), value 1659
Event: time 124.962498, type 3 (Absolute), code 54 (?), value 645
Event: time 124.962498, -------------- Config Sync ------------
Event: time 124.962528, -------------- Report Sync ------------
Event: time 124.970493, type 3 (Absolute), code 48 (?), value 2
Event: time 124.970493, type 3 (Absolute), code 53 (?), value 1659
Event: time 124.970493, type 3 (Absolute), code 54 (?), value 645
Event: time 124.970493, -------------- Config Sync ------------
Event: time 124.970523, -------------- Report Sync ------------
Event: time 124.978488, type 3 (Absolute), code 48 (?), value 2
Event: time 124.978488, type 3 (Absolute), code 53 (?), value 1659
Event: time 124.978488, type 3 (Absolute), code 54 (?), value 645
Event: time 124.978518, -------------- Config Sync ------------
Event: time 124.978518, -------------- Report Sync ------------
Event: time 124.986483, type 3 (Absolute), code 48 (?), value 2
Event: time 124.986513, type 3 (Absolute), code 53 (?), value 1659
Event: time 124.986513, type 3 (Absolute), code 54 (?), value 645
Event: time 124.986513, -------------- Config Sync ------------
Event: time 124.986513, -------------- Report Sync ------------
Event: time 124.994478, type 3 (Absolute), code 48 (?), value 2
Event: time 124.994508, type 3 (Absolute), code 53 (?), value 1659
Event: time 124.994508, type 3 (Absolute), code 54 (?), value 645
Event: time 124.994508, -------------- Config Sync ------------
Event: time 124.994508, -------------- Report Sync ------------
Event: time 125.002503, type 3 (Absolute), code 48 (?), value 2
Event: time 125.002503, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.002503, type 3 (Absolute), code 54 (?), value 645
Event: time 125.002503, -------------- Config Sync ------------
Event: time 125.002503, -------------- Report Sync ------------
Event: time 125.010498, type 3 (Absolute), code 48 (?), value 2
Event: time 125.010498, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.010498, type 3 (Absolute), code 54 (?), value 645
Event: time 125.010498, -------------- Config Sync ------------
Event: time 125.010498, -------------- Report Sync ------------
Event: time 125.018493, type 3 (Absolute), code 48 (?), value 2
Event: time 125.018493, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.018493, type 3 (Absolute), code 54 (?), value 645
Event: time 125.018493, -------------- Config Sync ------------
Event: time 125.018493, -------------- Report Sync ------------
Event: time 125.026489, type 3 (Absolute), code 48 (?), value 2
Event: time 125.026489, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.026489, type 3 (Absolute), code 54 (?), value 645
Event: time 125.026489, -------------- Config Sync ------------
Event: time 125.026520, -------------- Report Sync ------------
Event: time 125.034485, type 3 (Absolute), code 48 (?), value 2
Event: time 125.034485, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.034485, type 3 (Absolute), code 54 (?), value 645
Event: time 125.034515, -------------- Config Sync ------------
Event: time 125.034515, -------------- Report Sync ------------
Event: time 125.042481, type 3 (Absolute), code 48 (?), value 2
Event: time 125.042481, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.042511, type 3 (Absolute), code 54 (?), value 645
Event: time 125.042511, -------------- Config Sync ------------
Event: time 125.042511, -------------- Report Sync ------------
Event: time 125.050476, type 3 (Absolute), code 48 (?), value 2
Event: time 125.050507, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.050507, type 3 (Absolute), code 54 (?), value 645
Event: time 125.050507, -------------- Config Sync ------------
Event: time 125.050507, -------------- Report Sync ------------
Event: time 125.058502, type 3 (Absolute), code 48 (?), value 2
Event: time 125.058502, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.058502, type 3 (Absolute), code 54 (?), value 645
Event: time 125.058502, -------------- Config Sync ------------
Event: time 125.058502, -------------- Report Sync ------------
Event: time 125.066498, type 3 (Absolute), code 48 (?), value 2
Event: time 125.066498, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.066498, type 3 (Absolute), code 54 (?), value 645
Event: time 125.066498, -------------- Config Sync ------------
Event: time 125.066498, -------------- Report Sync ------------
Event: time 125.074493, type 3 (Absolute), code 48 (?), value 2
Event: time 125.074493, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.074493, type 3 (Absolute), code 54 (?), value 645
Event: time 125.074493, -------------- Config Sync ------------
Event: time 125.074493, -------------- Report Sync ------------
Event: time 125.084503, type 3 (Absolute), code 48 (?), value 2
Event: time 125.084503, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.084503, type 3 (Absolute), code 54 (?), value 645
Event: time 125.084503, -------------- Config Sync ------------
Event: time 125.084503, -------------- Report Sync ------------
Event: time 125.090485, type 3 (Absolute), code 48 (?), value 2
Event: time 125.090485, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.090485, type 3 (Absolute), code 54 (?), value 645
Event: time 125.090485, -------------- Config Sync ------------
Event: time 125.090515, -------------- Report Sync ------------
Event: time 125.100494, type 3 (Absolute), code 48 (?), value 2
Event: time 125.100494, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.100494, type 3 (Absolute), code 54 (?), value 645
Event: time 125.100494, -------------- Config Sync ------------
Event: time 125.100494, -------------- Report Sync ------------
Event: time 125.112488, type 3 (Absolute), code 48 (?), value 2
Event: time 125.112488, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.112488, type 3 (Absolute), code 54 (?), value 645
Event: time 125.112488, -------------- Config Sync ------------
Event: time 125.112488, -------------- Report Sync ------------
Event: time 125.120483, type 3 (Absolute), code 48 (?), value 2
Event: time 125.120483, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.120483, type 3 (Absolute), code 54 (?), value 645
Event: time 125.120483, -------------- Config Sync ------------
Event: time 125.120514, -------------- Report Sync ------------
Event: time 125.126495, type 3 (Absolute), code 48 (?), value 2
Event: time 125.126495, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.126495, type 3 (Absolute), code 54 (?), value 645
Event: time 125.126495, -------------- Config Sync ------------
Event: time 125.126495, -------------- Report Sync ------------
Event: time 125.132477, type 3 (Absolute), code 48 (?), value 2
Event: time 125.132477, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.132477, type 3 (Absolute), code 54 (?), value 645
Event: time 125.132507, -------------- Config Sync ------------
Event: time 125.132507, -------------- Report Sync ------------
Event: time 125.138489, type 3 (Absolute), code 48 (?), value 2
Event: time 125.138489, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.138489, type 3 (Absolute), code 54 (?), value 645
Event: time 125.138489, -------------- Config Sync ------------
Event: time 125.138489, -------------- Report Sync ------------
Event: time 125.144501, type 3 (Absolute), code 48 (?), value 2
Event: time 125.144501, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.144501, type 3 (Absolute), code 54 (?), value 645
Event: time 125.144501, -------------- Config Sync ------------
Event: time 125.144501, -------------- Report Sync ------------
Event: time 125.150482, type 3 (Absolute), code 48 (?), value 2
Event: time 125.150482, type 3 (Absolute), code 53 (?), value 1659
Event: time 125.150482, type 3 (Absolute), code 54 (?), value 645
Event: time 125.150482, -------------- Config Sync ------------
Event: time 125.150513, -------------- Report Sync ------------
Event: time 125.154480, -------------- Config Sync ------------
Event: time 125.154480, type 1 (Key), code 330 (Touch), value 0
Event: time 125.154480, -------------- Report Sync ------------
Tslib library is already cross compiled and added in the board's root file system(vendor supplied filesystem).
So we have only edited the environment variables like:-
Hi Honey,
As I can see from the posted logs the touch screen is initialized and working properly but the problem see due to ts_calibrate application configuration. Could you try to make the following changes:
It could be to have some problem with symbolic link.
Some other possible reason to the issue should be the absence of following line in the your touchscreen driver:
set_bit(EV_SYN, aura.input_dev->evbit);
set_bit(EV_ABS, aura.input_dev->evbit);
set_bit(EV_KEY, aura.input_dev->evbit);
Could you check whether present?
If the issue still exists could you post the output of the command cat /etc/ts.conf and output of the ts_calibrate.
BR
Tsvetolin Shulev
Hi Tsvetolin Shulev,
Thank you for your response.
I have applied the following commands and checked the result.
Still the ts_calibrate didn't work. :(
I mean the calibration is automatically done with some negative values as shown below.
Also the "TSLIB calibration utility. Touch crosshair to calibrate." screen disappears immediately.
root@dm37x-evm:~# ts_calibrate
xres = 800, yres = 480
selected device is not a touchscreen I understand
Took 2 samples...
Top left : X = -546512804 Y = -546512681
Took 2 samples...
Top right : X = -546512804 Y = -546512681
Took 2 samples...
Bot right : X = -546512804 Y = -546512681
Took 2 samples...
Bot left : X = -546512804 Y = -546512681
Took 2 samples...
Center : X = -546512804 Y = -546512681
2.341655 -0.000012 0.000011
-0.481133 -0.000007 0.000007
Calibration constants: 153462 0 0 -31531 0 0 65536
I have also applied the changes with the touchscreen driver. But no change in ts_calibrate output.
My /etc/ts.conf is as below:-
# Uncomment if you wish to use the linux input layer event interface
module_raw input
# Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
# module_raw collie
# Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860
# module_raw corgi
# Uncomment if you're using a device with a UCB1200/1300/1400 TS interface
# module_raw ucb1x00
# Uncomment if you're using an HP iPaq h3600 or similar
# module_raw h3600
# Uncomment if you're using a Hitachi Webpad
# module_raw mk712
# Uncomment if you're using an IBM Arctic II
# module_raw arctic2
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
Please suggest any solution to use the touchscreen.
Thanks,
Honey S
"I mean the calibration is automatically done with some negative values as shown below."
You can try to change the value of the calibration data variable - TSLIB_CALIBFILE.
BR
Tsvetolin Shulev
Hi,
I have changed the value of TSLIB_CALIBFILE. But there is no change in the output.
Still showing "Selected device is not a touchscreen i understand". Also calibration done with some negative values.
Even I have edited the source code of tslib and commented the check_fd() function's condition check which provides the error code
"Selected device is not a touchscreen i understand" and cross-compiled, installed tslib in my rootfs. Tried with that build.
Now there is a little change in output. ts_calibrate screen also shows the first crosshair to touch. Calibration is not automatically done.
It seems that it is waiting for user touch. But my touch events are not detecting. So can't continue.
Please share your thoughts on how to resolve this issue.
Thanks,
Honey S
Hi all,
Anyone faced the above issue while trying to bring up usb touch screen with Arago Linux?
"Selected device is not a touchscreen I understand". Please share your thoughts.. please...
We are still stuck with this problem.
Thanks,
Honey S
Hi Honey,
It seems that it is waiting for user touch. But my touch events are not detecting. So can't continue.
I recommend you to compare the data format coming from touch screen and expected data format by ts_calibrate. I guess that it is possible to has some difference and therefore the touchscreen events could not be recognized. Check the source code and if is necessary make changes.
BR
Tsvetolin Shulev
Hi all,
I have solved the problem by upgrading the tslib library used.
https://github.com/kergoth/tslib
Thanks,
Honey S
Hi Honey,
I am trying to integrate a Penmount PM1401 USB capacitive touchscreen (14e1:3500) into a 3.0.35 Linux and I have got 2 questions:
a.) You wrote: "We cross-compiled the penmount USB touchscreen source code". Where did you get the source code?
b.) I find some "occurrence" of PenMount in source of the used kernel in /drivers/input/touchscreen/penmount.c - but I think this it is only for rs232. What files are needed for getting PenMount touch to work with USB?
already solved:
source for usb is in https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/plain/drivers/hid/hid-multitouch.c?id=refs/tags/v3.0.35