China-LCD in Betrieb nehmen

  1. Mit­tels sudo raspi-config das SPI-Inter­face akti­vie­ren
  2. sudo nano /boot/config.txt aus­füh­ren und um
    dtoverlay=ads7846,speed=1000000,penirq=17,swapxy=1 (Das akti­viert das Touch­pa­nel.)
    dtoverlay=piscreen,rotate=90 1 (Das akti­viert das Dis­play)
    ergän­zen.
  3. Bei mir ist die X-Ach­se des Touch­pa­nels gespie­gelt. Mit einer geeig­ne­ten Trans­for­ma­ti­on bekommt man auch das in den Griff:
    sudo nano /usr/share/X11/xorg.conf.d/40-libinput.conf
    Dort in der Section InputClass mit dem Identifier libinput... die Zei­le
    Option "TransformationMatrix" "0 1 0 -1 0 1 0 0 1" 2
    ein­fü­gen.
  4. sudo nano /boot/cmdline.txt und am Ende
    fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo
    ein­tra­gen
  5. abschlie­ßend in /usr/share/X11/xorg.conf.d/99-fbturbo.conf das fb0 gegen fb1 tau­schen

Bleibt abschlie­ßend noch das Pro­blem, dass der Touch­be­reich klei­ner zu sein scheint als das Dis­play: mit­tig des Bild­schirms stim­men Touch­stel­le und Zei­ger­po­si­ti­on über­ein, wei­ter am Rand drif­ten sie aber aus­ein­an­der.

Ers­ten Indi­zi­en nach kann man das mit einer wei­te­ren Matrix in der 40-libinput.conf hän­deln, und zwar
Option "CalibrationMatrix" "string". 3
Der ent­spre­chen­de String basiert auch auf einer Matrix wie oben: 4
[ c0 0 c1 ]
[ 0 c2 c3 ]
[ 0 0 1 ]

und wird ent­spre­chend mit c0 0 c1 0 c2 c3 0 0 1 ein­ge­tra­gen. Hier­bei ist zu beach­ten, dass es sich nicht um abso­lu­te Beträ­ge han­delt, son­dern um Ver­hält­nis­se 5, die sich wie folgt berech­nen:

  • c0 = touch_area_width / total_width
  • c2 = touch_area_height / total_height
  • c1 = touch_area_x_offset / total_width [Ver­such: 20px / 480px = 0.041666]
  • c3 = touch_area_y_offset / total_height [Ver­such: 20px / 320px = 0.0625] 4

Die heu­te [2017–07-04] noch offe­ne Fra­ge lau­tet: wo bekom­me ich die ent­spre­chen­den Zah­len her? Oder ist es doch aus­rei­chend, die Inte­ger-Wer­te der Trans­for­ma­ti­onMa­trix in floats o.ä. umzu­wan­deln? 6

Sonst noch­mal bei notro nach­se­hen

Quelle(n):
Raspber­ry-Forum [abge­ru­fen 2017-05-10]
[1] Laut https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README kann das dtover­lay piscreen noch mit Para­me­tern ver­se­hen wer­den. [abge­ru­fen 2017-07-04]
[2] Exem­pla­risch https://raspberrypi.stackexchange.com/a/61060 Stich­wort “Input Coor­di­na­te Trans­for­ma­ti­on Matrix” [abge­ru­fen 2017-07-04]
[3] https://www.systutorials.com/docs/linux/man/4-libinput/ [abge­ru­fen 2017-07-04]
[4] https://wiki.archlinux.org/index.php/Calibrating_Touchscreen [abge­ru­fen 2017-07-04]
[5] https://wayland.freedesktop.org/libinput/doc/latest/absolute_axes.html [abge­ru­fen 2017-07-04]
[6] https://wiki.ubuntu.com/X/InputCoordinateTransformation [abge­ru­fen 2017-07-04]

Gib auch Du Deinen Senf dazu