China-LCD in Betrieb nehmen

  1. Mittels sudo raspi-config das SPI-Interface aktivieren
  2. sudo nano /boot/config.txt ausführen und um
    dtoverlay=ads7846,speed=1000000,penirq=17,swapxy=1 (Das aktiviert das Touchpanel.)
    dtoverlay=piscreen,rotate=90 1 (Das aktiviert das Display)
    ergänzen.
  3. Bei mir ist die X-Achse des Touchpanels gespiegelt. Mit einer geeigneten Transformation 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 Zeile
    Option "TransformationMatrix" "0 1 0 -1 0 1 0 0 1" 2
    einfügen.
  4. sudo nano /boot/cmdline.txt und am Ende
    fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo
    eintragen
  5. abschließend in /usr/share/X11/xorg.conf.d/99-fbturbo.conf das fb0 gegen fb1 tauschen

Bleibt abschließend noch das Problem, dass der Touchbereich kleiner zu sein scheint als das Display: mittig des Bildschirms stimmen Touchstelle und Zeigerposition überein, weiter am Rand driften sie aber auseinander.

Ersten Indizien nach kann man das mit einer weiteren Matrix in der 40-libinput.conf händeln, und zwar
Option "CalibrationMatrix" "string". 3
Der entsprechende String basiert auch auf einer Matrix wie oben: 4
[ c0 0 c1 ]
[ 0 c2 c3 ]
[ 0 0 1 ]

und wird entsprechend mit c0 0 c1 0 c2 c3 0 0 1 eingetragen. Hierbei ist zu beachten, dass es sich nicht um absolute Beträge handelt, sondern um Verhältnisse 5, die sich wie folgt berechnen:

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

Die heute [2017-07-04] noch offene Frage lautet: wo bekomme ich die entsprechenden Zahlen her? Oder ist es doch ausreichend, die Integer-Werte der TransformationMatrix in floats o.ä. umzuwandeln? 6

Sonst nochmal bei notro nachsehen

Quelle(n):
Raspberry-Forum [abgerufen 2017-05-10]
[1] Laut https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README kann das dtoverlay piscreen noch mit Parametern versehen werden. [abgerufen 2017-07-04]
[2] Exemplarisch https://raspberrypi.stackexchange.com/a/61060 Stichwort “Input Coordinate Transformation Matrix” [abgerufen 2017-07-04]
[3] https://www.systutorials.com/docs/linux/man/4-libinput/ [abgerufen 2017-07-04]
[4] https://wiki.archlinux.org/index.php/Calibrating_Touchscreen [abgerufen 2017-07-04]
[5] https://wayland.freedesktop.org/libinput/doc/latest/absolute_axes.html [abgerufen 2017-07-04]
[6] https://wiki.ubuntu.com/X/InputCoordinateTransformation [abgerufen 2017-07-04]

Gib auch Du Deinen Senf dazu