2.2k views
in Getting started by
I am having an issue with the touchscreen on my Raspberry Pi, the touchscreen is recognized, calibrated,  and set to event0 but I am unable to get the touch input to work.

1 Answer

+1 vote
by

Hi!

Can you please let us know the output of executing this on your shell?

cat /proc/bus/input/devices

Thanks!

Best regards,
Manuel

by
this is some of what I got after running evtest

 

pi@raspberrypi:~ $ sudo evtest /dev/input/event0
Input driver version is 1.0.1
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0
Input device name: "ADS7846 Touchscreen"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value   1745
      Min        0
      Max     4095
    Event code 1 (ABS_Y)
      Value   1976
      Min        0
      Max     4095
    Event code 24 (ABS_PRESSURE)
      Value      0
      Min        0
      Max    65535
Properties:
Testing ... (interrupt to exit)
Event: time 1500014264.579501, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1500014264.579501, type 3 (EV_ABS), code 0 (ABS_X), value 2265
Event: time 1500014264.579501, type 3 (EV_ABS), code 1 (ABS_Y), value 1762
Event: time 1500014264.579501, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        405
Event: time 1500014264.579501, -------------- EV_SYN ------------
Event: time 1500014264.600179, type 3 (EV_ABS), code 0 (ABS_X), value 2278
Event: time 1500014264.600179, type 3 (EV_ABS), code 1 (ABS_Y), value 1716
Event: time 1500014264.600179, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        414
Event: time 1500014264.600179, -------------- EV_SYN ------------
Event: time 1500014264.616623, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1500014264.616623, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1500014264.616623, -------------- EV_SYN ------------
Event: time 1500014267.409513, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1500014267.409513, type 3 (EV_ABS), code 0 (ABS_X), value 1864
Event: time 1500014267.409513, type 3 (EV_ABS), code 1 (ABS_Y), value 2631
Event: time 1500014267.409513, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        410
Event: time 1500014267.409513, -------------- EV_SYN ------------
Event: time 1500014267.429820, type 3 (EV_ABS), code 0 (ABS_X), value 1866
Event: time 1500014267.429820, type 3 (EV_ABS), code 1 (ABS_Y), value 2625
Event: time 1500014267.429820, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        416
Event: time 1500014267.429820, -------------- EV_SYN ------------
Event: time 1500014267.449645, type 3 (EV_ABS), code 0 (ABS_X), value 1883
Event: time 1500014267.449645, type 3 (EV_ABS), code 1 (ABS_Y), value 2621
Event: time 1500014267.449645, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        418
Event: time 1500014267.449645, -------------- EV_SYN ------------
Event: time 1500014267.469539, type 3 (EV_ABS), code 0 (ABS_X), value 1881
Event: time 1500014267.469539, type 3 (EV_ABS), code 1 (ABS_Y), value 2623
Event: time 1500014267.469539, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        420
Event: time 1500014267.469539, -------------- EV_SYN ------------
Event: time 1500014267.489523, type 3 (EV_ABS), code 0 (ABS_X), value 1883
Event: time 1500014267.489523, type 3 (EV_ABS), code 1 (ABS_Y), value 2628
Event: time 1500014267.489523, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        414
Event: time 1500014267.489523, -------------- EV_SYN ------------
Event: time 1500014267.526417, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1500014267.526417, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1500014267.526417, -------------- EV_SYN ------------
Event: time 1500014276.329503, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1500014276.329503, type 3 (EV_ABS), code 0 (ABS_X), value 408
Event: time 1500014276.329503, type 3 (EV_ABS), code 1 (ABS_Y), value 761
Event: time 1500014276.329503, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        389
Event: time 1500014276.329503, -------------- EV_SYN ------------
Event: time 1500014276.349541, type 3 (EV_ABS), code 0 (ABS_X), value 410
Event: time 1500014276.349541, type 3 (EV_ABS), code 1 (ABS_Y), value 722
Event: time 1500014276.349541, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        398
Event: time 1500014276.349541, -------------- EV_SYN ------------
Event: time 1500014276.369563, type 3 (EV_ABS), code 0 (ABS_X), value 395
Event: time 1500014276.369563, type 3 (EV_ABS), code 1 (ABS_Y), value 671
Event: time 1500014276.369563, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        406
Event: time 1500014276.369563, -------------- EV_SYN ------------
Event: time 1500014276.389586, type 3 (EV_ABS), code 0 (ABS_X), value 361
Event: time 1500014276.389586, type 3 (EV_ABS), code 1 (ABS_Y), value 626
Event: time 1500014276.389586, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        380
Event: time 1500014276.389586, -------------- EV_SYN ------------
Event: time 1500014276.409536, type 3 (EV_ABS), code 0 (ABS_X), value 347
Event: time 1500014276.409536, type 3 (EV_ABS), code 1 (ABS_Y), value 599
Event: time 1500014276.409536, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        399
Event: time 1500014276.409536, -------------- EV_SYN ------------
Event: time 1500014276.429502, type 3 (EV_ABS), code 1 (ABS_Y), value 597
Event: time 1500014276.429502, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        400
Event: time 1500014276.429502, -------------- EV_SYN ------------
Event: time 1500014276.449517, type 3 (EV_ABS), code 0 (ABS_X), value 354
Event: time 1500014276.449517, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        379
Event: time 1500014276.449517, -------------- EV_SYN ------------
Event: time 1500014276.466444, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1500014276.466444, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1500014276.466444, -------------- EV_SYN ------------
Event: time 1500014278.219562, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1500014278.219562, type 3 (EV_ABS), code 0 (ABS_X), value 3676
Event: time 1500014278.219562, type 3 (EV_ABS), code 1 (ABS_Y), value 3755
Event: time 1500014278.219562, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        398
Event: time 1500014278.219562, -------------- EV_SYN ------------
Event: time 1500014278.239561, type 3 (EV_ABS), code 0 (ABS_X), value 3682
Event: time 1500014278.239561, type 3 (EV_ABS), code 1 (ABS_Y), value 3754
Event: time 1500014278.239561, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        411
Event: time 1500014278.239561, -------------- EV_SYN ------------
Event: time 1500014278.259559, type 3 (EV_ABS), code 0 (ABS_X), value 3678
Event: time 1500014278.259559, type 3 (EV_ABS), code 1 (ABS_Y), value 3762
Event: time 1500014278.259559, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        414
Event: time 1500014278.259559, -------------- EV_SYN ------------
Event: time 1500014278.279557, type 3 (EV_ABS), code 0 (ABS_X), value 3674
Event: time 1500014278.279557, type 3 (EV_ABS), code 1 (ABS_Y), value 3767
Event: time 1500014278.279557, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        415
Event: time 1500014278.279557, -------------- EV_SYN ------------
Event: time 1500014278.299529, type 3 (EV_ABS), code 0 (ABS_X), value 3679
Event: time 1500014278.299529, type 3 (EV_ABS), code 1 (ABS_Y), value 3769
Event: time 1500014278.299529, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65                                                                                        414
Event: time 1500014278.299529, -------------- EV_SYN ------------
Event: time 1500014278.316449, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1500014278.316449, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1500014278.316449, -------------- EV_SYN ------------
Event: time 1500014280.699512, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1500014280.699512, type 3 (EV_ABS), code 0 (ABS_X), value 3791
Event: time 1500014280.699512, type 3 (EV_ABS), code 1 (ABS_Y), value 1066
Event: time 1500014280.699512, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 65
by

It seems that your used touch driver is reporting values which correspond to the raw touchscreen resolution which is much higher than your used display, e.g.:

Event: time 1500014278.299529, type 3 (EV_ABS), code 0 (ABS_X), value 3679
Event: time 1500014278.299529, type 3 (EV_ABS), code 1 (ABS_Y), value 3769

There the x value is 3679 and y value is 3769 of your touch event. I think that these are the coordinates of your touch screen's bottom/right corner, correct?

Because Embedded Wizard requires that the touch values are mapped 1:1, you need to scale those values down according to your used display. Can you please confirm that you are able to build our examples which are deployed within our build environment?

by
yes, they build and display just fine. The brick game is my favorite so far... it'd be better with the touchscreen but it still functions without it
by

Ok, please use this adapted main.c found here: https://ask.embedded-wizard.de/?qa=blob&qa_blobid=2595273799886290585 instead of the deployed main.c from our build environment.

Please adapt the macros from lines 56-59 to match your touch screen and rebuild your GUI application. You'll get those values with evtest as mentioned above.

#define Y_MIN    0
#define Y_MAX 4096
#define X_MIN    0
#define X_MAX 4096

With the adapted main.c the touch coordinates are scaled linear before letting Embedded Wizard process them. The scaling is quite simple, but should do the work.

Please let me know if it works...

by
worked perfectly! thank you.

Embedded Wizard Website | Privacy Policy | Imprint

...