Touch screen calibration

  • Also wenn ich jetzt nicht völlig blind bin tauchen die beiden Sachen nicht auf

    Udevadm info starts with the device specified by the devpath and then
    walks up the chain of parent devices. It prints for every device
    found, all possible attributes in the udev rules key format.
    A rule to match, can be composed by the attributes of the device
    and the attributes from one single parent device.

    looking at device '/devices/LNXSYSTM:00/LNXPWRBN:00/input/input3/event3':
    KERNEL=="event3"
    SUBSYSTEM=="input"
    DRIVER==""

    looking at parent device '/devices/LNXSYSTM:00/LNXPWRBN:00/input/input3':
    KERNELS=="input3"
    SUBSYSTEMS=="input"
    DRIVERS==""
    ATTRS{name}=="Power Button"
    ATTRS{phys}=="LNXPWRBN/button/input0"
    ATTRS{uniq}==""
    ATTRS{properties}=="0"

    looking at parent device '/devices/LNXSYSTM:00/LNXPWRBN:00':
    KERNELS=="LNXPWRBN:00"
    SUBSYSTEMS=="acpi"
    DRIVERS=="button"
    ATTRS{hid}=="LNXPWRBN"

    looking at parent device '/devices/LNXSYSTM:00':
    KERNELS=="LNXSYSTM:00"
    SUBSYSTEMS=="acpi"
    DRIVERS==""
    ATTRS{hid}=="LNXSYSTM"
    ATTRS{path}=="\"

  • Hast du es denn aufs richtige event angewendet?


    Gestern ist mir noch eingefallen hast du bevor du damit angefangen hast eigentlich mal

    sudo apt-get update

    &

    sudo apt-get upgrade

    gemacht? bei mir hat nämlich bei einem raspi ne datei gefehlt....

    Hab aber jetz eh das ganze nochmal geforked und ne version ohne die udev rule erstellt.


    https://github.com/Schlump/raspbmc-alltouch


    Kanns selber leider nicht am touchscreen ausprobieren da meiner mittlerweile bei meiner freundin im einsatz ist ;)

    aber das sollte diesmal hoffentlich bei dir klappen:

    musst nur zuerst die bereits erstellten dateien entfernen


    sudo rm /etc/udev/rules.d/95egalax.rules
    sudo rm /home/pi/raspbmc-touch.sh
    sudo rm /etc/init/uimapper.conf

    Hoffe dass es diesmal funktioniert... war eigentlich schwer begeistert von meinem script nachdems bei mir so toll funktioniert hatte ;(

  • Geklappt hat es leider nicht. ich versuche es per ssh. Irgendwann steht da ich solle den Anweisungen auf dem Bildschrim folgen, aber da kommt nichts....

    Wenn ich in Evtest mal nachsehen will, bei welchem Event was passiert kommt

    This device is grabbed by another process.
    No events are available to evtest while the
    other grab is active.
    In most cases, this is caused by an X driver,
    try VT-switching and re-run evtest again.

    Muss der Pi eigentlich neu starten beim prozesse?

    Edited once, last by kugelkreuz (August 24, 2014 at 8:29 PM).

  • Hast du bevor du das alles gemacht hast

    sudo apt-get update
    sudo apt-get upgrade

    gemacht?


    bei dir sollte nach deinem erklärungen mittem im text die fehlermeldung

    cannot start "ts_calibrate" (oder so ähnlich) stehen
    das kann eigentlich nur sein wenn er den input nicht findet
    oder wenn die datei nicht vorhanden ist

    bzgl evtest

    ja das liegt daran dass der uimapper läuft:


    sudo stop uimapper

    Edited once, last by Schlupp (August 24, 2014 at 8:52 PM).

  • Hallo,
    als erstes :danke_ATDE: an alle Aktiven hier.

    Ich erkläre hier nun, eine Lösung für meinen 7"-Touchscreen unter raspbmc :

    Ich habe diesen gekauft :
    "http://www.pollin.de/shop/dt/NTMwOT…I_VGA_CVBS.html"

    7" (17,78 cm) Display-Set mit Touchscreen LS-7T für 50 EUR
    Auflösung: 1024x600 pixel
    Eingänge: HDMI / DVI / VGA / CVBS
    hat einen eGalax touchscreen

    Starte mit der Installation des neuesten raspbmc z.B. wie hier :
    "http://jankarres.de/2014/06/raspbe…er-installieren".

    nach den Einstellungen für den Raspberry Pi, neustarten und wie z.B. hier erklärt :
    "http://jankarres.de/2014/02/raspbe…d-ssh-verwenden"
    folgendes ausführen :
    pi@raspbmc:~$ sudo apt-get update
    pi@raspbmc:~$ sudo apt-get upgrade

    dann einstellen der Raspi-Auflösung in:
    pi@raspbmc:~$ sudo nano -Bw /boot/config.txt

    ersetzen oder einfügen :
    framebuffer_width=1024
    framebuffer_height=600
    hdmi_force_hotplug=1
    hdmi_cvt=1024 600 60 3 0 0 0
    hdmi_group=2
    hdmi_mode=87

    dann :
    pi@raspbmc:~$ sudo shutdown -r now

    und dann die Auflösung in XBMC/System/Settings einstellen:
    1024x600p @ 60Hz

    und aus XBMC Neustart ausführen

    und über ssh testen ob der Touchscreen erkannt wird :
    pi@raspbmc:~$ ls -l /dev/input/by-id | grep event

    so sieht es bei mir aus :
    lrwxrwxrwx 1 root root 9 Nov 5 01:23 usb-TESTQUEST_USB_Multimedia_Keyboard-event-kbd -> ../event2
    lrwxrwxrwx 1 root root 9 Nov 5 01:23 usb-eGalax_Inc._Touch-event-mouse -> ../event1
    pi@raspbmc:~$

    nun dieses Skript von
    "https://github.com/Schlump/raspbmc-alltouch"
    laden :
    wget --no-check-certificate https://github.com/Schlump/raspbm…bmc-alltouch.sh
    und ausführen :
    pi@raspbmc:~$ sudo sh raspbmc-alltouch.sh

    so sieht es bei mir aus :
    Please follow the instructions on the display...
    xres = 1024, yres = 600 ... (make the calibration)
    Took 20 samples...
    Top left : X = 134 Y = 263
    Took 31 samples...
    Top right : X = 1899 Y = 257
    Took 22 samples...
    Bot right : X = 1906 Y = 1816
    Took 20 samples...
    Bot left : X = 134 Y = 1819
    Took 33 samples...
    Center : X = 1013 Y = 1038
    -18.233276 0.522468 -0.001176
    -34.246704 0.000816 0.321025
    Calibration constants: -1194936 34240 -77 -2244392 53 21038 65536

    Aufgrund eines Fehlers vermutlich im Touch-Treiber war bei mir nun folgende Korrektur erforderlich :
    pi@raspbmc:~$ sudo nano /etc/pointercal
    34240 -77 -1194936 53 21038 -2244392 65536 1024 600 0
    ändern in :
    34240 -77 -1194936 53 21038 -2244392 65536 715 565 0
    (.....................................................................^- x-res...)
    (ändern der x-Auflösung passt die Breite der Touch-Bedienung an.)

    nun noch Neustart :
    pi@raspbmc:~$ sudo shutdown -r now

    und es funktionierte bei mir sehr gut - :)

    hoffentlich geht's bei euch auch ähnlich,

    mfg norschulz

    Edited once, last by norschulz (November 7, 2014 at 11:06 AM).

  • Hallo Leute,

    habe heute den Raspi B+ bekommen und das neueste Raspbmc Image installiert. Ich habe nur mal grundsätzliche Fragen zur Installation des LS7T Touch-Display von Pollin! Wie komme ich z.B. in die System-Einstellungen des BS um z.B. das Touchfeld einzustellen? Gibt es dazu vielleicht irgendwo versteckt einen Eingabe-Bildschirm (Terminal)? Wenn nicht, wie funktioniert das mit diesem Putty, wie kann ich damit die Verbindung zum Raspi herstellen? Was Linux und dessen Anweisungen anbelangt bin ich ein absoluter Neuling, wenn auch ein Raspi B mit OPENELEC schon seit längerem bei mir als Media PC im Wohnzimmer läuft. Die Installation bei OPENELEC war absolut problemlos (allerdings ohne Touch-Display sondern mit einem 10" HDMI DVB-T Display und 40" LCD-LED Bildschirm).

    Ich habe hier ein Windoofs 8.1 Notebook mit Wlan Netzwerk Anbindung und kann im Explorer den Raspi sehen, komme aber nicht an die Daten heran, weil ich irgendwelche Kenwörter und Passwörter dazu brauche! Kann mir dazu vielleicht jemand auf die Sprünge helfen?

    Gruß
    veryoldman / Klaus

  • Hallo Marc,

    danke! Ich hab zwar schon recht viel hier im Forum gelesen und irgendwie kam mir das bekannt vor. Meine Vergesslichkeit! Stehst vorm Berg und weist nicht wie Du hochkommen sollst. Muss das Alter sein.:)
    Werd das dann morgen mal ausprobieren und schauen!

    Gruß
    Klaus

  • Danke, dass du die ganze Installation so genau beschreibst.
    Ich versuche seit Tagen verzweifelt meinen Touchscreen von Pollin unter RaspBMC zum Laufen zu bekommen.
    Ich habe wie gesagt denselben Bildschirm, vermutlich den selben Raspberry (Model B), ein neues RaspBMC Image geholt und die beschriebenen Anweisungen Schritt für Schritt befolgt. Nachdem dein Post auch erst ein Monat alt ist, nehme ich an, wir verwenden dasselbe RaspBMC-Image.

    Bis jetzt hab ich den Touchscreen nur mit dem Script von Brantje auf Xbian zum Laufen gebracht, ich hätte aber gerne RaspBMC wegen den DAC Möglichkeiten.

    Um nochmal auf mein Anliegen zurückzukommen: Also, ich führe genau dieselben Schritte aus wie du, das shellscript mit der Kalibrierung wird aufgerufen, über SSH bekomme ich auch die Toucheingaben, die aus einem seltsamen Grund sehr weit von deinen abweichen.

    Nachdem ich alle Schritte durchgegangen bin, ist der Touchscreen noch schlechter kalibriert als vorher (ich sehe den Cursor nur, wenn ich ganz links oben tippe ganz rechts unten erscheinen)

    Ich wollte in erster Linie fragen wie du auf die zwei letzten Werte in /etc/pointercal kommst und auch, ob du vielleicht irgendwas in deiner Anleitung vergessen hast (wovon ich aber nicht ausgehe).

    DANKE!

  • Hallo Luberg,

    ich bekomme meinen Monitor morgen, bin schon sehr gespannt (ist der LS7T von Pollin, nur nochmal zur Errinnerung!). Du hast aber schon gelesen, dass Schlupp von einem 10,1" Monitor spricht oder? Dann kann das mit dem Cursor nämlich hinkommen, wenn Du einen 7" Monitor hast!!!!!!!!!!!!!:huh::huh:

    Gruß
    Klaus

  • luberg #29,

    ich habe die Werte in meinem Beitrag #25 durch ausprobieren und schrittweises anpassen ermittelt.

    Hast du die Einstellungen zur Bildschirmauflösung korrekt vorgenommen?

    Schlump hat sein Skript überarbeitet, ist vielleicht daheraus ein Problem entstanden?

    Hier das Skript, das ich verwendet habe:
    ########################################################
    #!/bin/bash
    if [ ! -f /etc/pointercal ];
    then
    echo "Listing event devices"
    ls -l /dev/input/by-id | grep event
    echo "What is the event number of the touchscreen? eg: event0 then you type 0, followed by [ENTER]"
    read inputnumber
    sudo stop xbmc
    echo "Getting tslib"
    wget --no-check -O tslib_1-1_armhf.deb "https://github.com/Schlump/raspbm…b_1-1_armhf.deb"
    echo "Installing tslib"
    dpkg -i tslib_1-1_armhf.deb
    export LD_LIBRARY_PATH=/usr/local/lib
    export TSLIB_CONSOLEDEVICE=none
    export TSLIB_FBDEVICE=/dev/fb0
    export TSLIB_TSDEVICE=/dev/input/event$inputnumber
    export TSLIB_CALIBFILE=/etc/pointercal
    export TSLIB_CONFFILE=/usr/local/etc/ts.conf
    export TSLIB_PLUGINDIR=/usr/local/lib/ts

    echo "Please follow the instructions on the display..."
    ts_calibrate

    echo "Getting uimapper..."
    wget --no-check -O uimapper.tar.gz "https://github.com/Schlump/raspbm…t-mapper.tar.gz"
    echo "Installing uimapper..."
    sudo mkdir -p /scripts && sudo tar -zxf uimapper.tar.gz -C /scripts
    echo "Generating config file"
    echo "#!upstart
    description \"uimapper\"
    env UIMAPPER_DEV=\"/dev/input/event$inputnumber\"
    env UIMAPPER_CONF=\"configs/touchscreen.py\"
    env UIMAPPER_DIR=\"/scripts/uinput-mapper\"
    start on startup or virtual-filesystems or (input-device-added SUBSYSTEM=input)
    stop on input-device-removed
    nice -10
    kill timeout 1
    expect fork
    script
    chdir \$UIMAPPER_DIR
    exec ./input-read.py \$UIMAPPER_DEV -D | ./input-create.py \$UIMAPPER_CONF &
    end script
    respawn" >> uimapper.conf
    echo "Moving config..."
    sudo mv uimapper.conf /etc/init
    sudo chmod +x /scripts/uinput-mapper/input-create.py
    sudo chmod +x /scripts/uinput-mapper/input-read.py
    echo "Cleaning up..."
    rm uimapper.tar.gz
    rm tslib_1-1_armhf.deb > /dev/null #Silent error
    sudo start uimapper
    sudo start xbmc
    echo "Installation done!"


    else
    echo "Already installed... Recalibrating"
    sudo stop xbmc
    sudo stop uimapper

    echo "Listing event devices"
    ls -l /dev/input/by-id | grep event
    echo "What is the event number of the touchscreen? eg: event0 then you type 0, followed by [ENTER]"
    read inputnumber

    export LD_LIBRARY_PATH=/usr/local/lib
    export TSLIB_CONSOLEDEVICE=none
    export TSLIB_FBDEVICE=/dev/fb0
    export TSLIB_TSDEVICE=/dev/input/event$inputnumber
    export TSLIB_CALIBFILE=/etc/pointercal
    export TSLIB_CONFFILE=/usr/local/etc/ts.conf
    export TSLIB_PLUGINDIR=/usr/local/lib/ts
    sleep 3

    echo "Please follow the instructions on the display..."
    ts_calibrate

    sudo start uimapper
    sudo start xbmc


    fi
    ########################################################
    (ohne die ######################################################## - Zeilen)

    Alles Gute, norschulz

    Edited once, last by norschulz (December 22, 2014 at 11:42 AM).

  • Hallo Norschulz!

    Die Auflösungseinstellungen passen denke ich jedenfalls.
    Ich werd das Script heute Abend noch ausprobieren, ich hoffe, ich komme dann auch soweit, dass ich das mit den Werten, die du herausgefunden hast, ausprobieren kann.

    An dieser Stelle mal 1000x :danke_ATDE: für die ausführlichen Anleitungen und auch an Schlump für das Schreiben des Skripts

  • Hi zusammen,
    ich kämpfe auch mit der Einstellung des Touch´s
    Nach dem ich es endlich einmal geschafft habe den Kalibrierdurchlauf beim ersten Aufruf von dem "raspbmc-alltouch.sh" zu durchlaufen habe ich den Effekt dass der Touch-Zeiger nur sichtbar ist, wenn mein finger in dem linken oberen viertel des Bildschirms ist.
    Dann kann ich den Zeiger auch verschieben
    Ein verändern der Auflösung in der /etc/pointercal hat auch nix bewirkt.
    (jedes mal einen reboot - muss man zum Übernehmen mehr ausführen ?)

    da kann ich an der Auflösung rumspielen hat aber habe keinen Effekt gezeigt
    34076 -198 -1039840 41 21133 -2212072 65536 2048 1200 0
    org. Eintrag:
    34076 -198 -1039840 41 21133 -2212072 65536 1024 600 0

    Einen Dank an Norschulz und Schlump, super Beschreibung :danke_ATDE:

    bei dem skript kommt bei mir immer die Fehlermeldung

    Syntax error: "fi" unexpected (expecting "then")

    Wenn ich das raspbmc-alltouch.sh aus der Beschreibung ein 2tes mal aufrufe, wird XBMC beendet, einen Moment ist dunkel und dann startet XBMC wieder ganz normal.

    Hat jemand eine Idee :helpnew:


    Für alle anderen Kämpfer als info:
    Bei mir ist am Anfang das "raspbmc-alltouch.sh" nur gelaufen wenn ich die Dateien ein 2tes mal geladen hatte. Also 2x
    wget --no-check-certificate https://raw.githubusercontent.com/Schlump/raspbm…bmc-alltouch.sh
    ausgeführt und dann die
    sudo sh raspbmc-alltouch.sh.1 gestarte habt,
    - das Problem hatte nur ich mit der installation über raspbmc-win32 installer. (mehrfach ausprobiert)
    Die aktuell Installation ist jetzt bei mir das raspbmc-2014-11-24.img über den Win32DiskImager


    Grüße BBfish

  • scheint so, als wenn die if-Zeile vor dem then im Skript fehlt.

    XBMC kann nicht beendet werden, es startet sich selbst immer wieder neu - dieser Fehler tritt bei mir auch auf.

    Ich schalte also immer am Netzteil aus und hatte bisher keine Probleme damit. (aber ich beende immer alle Aktionen vorher um Dateisystemfehler zu vermeiden.).

    Alles Gute, norschulz

  • Hi,
    ich hab wieder weiter getestet
    Das Verhalten bei den verschiedenen Images konnte ich nicht mehr reproduzieren :blush:
    Hatte evlt. schon nen kaffee zu viel ;)

    Warum das raspbmc-alltouch.sh bei mir nicht funktioniert liegt daran dass die Eventnummer nicht richtig gespeichert wird. Ich habe die Variable im Script durch meine Eventnummer ersetzt und jetzt komme ich auch bei der re-kalibrierung wieder zu dem Kalibrier-Bildschirm des Touchpanels.

    An der Tatsache dass ich auch nach der Kalibrierung immer nur den Zeiger unten rechts sehe wenn ich den Touch links oben betätige ist geblieben.
    Ich habe mit Evtest beim unimapper die Positionen des Touch mal ausgelesen.

    bei mir ist links oben X900 / Y 500 rechts oben x1900 / y 500
    rechts unten X900 / Y 1060 rechts oben x1900 / y 1060

    Das kann ich auslesen, aber das passt net zu der Anzeige die ich beim raspbmc-alltouch angezeigt bekomme.

    Top left : X = 150 Y = 246
    Took 3 samples...
    Top right : X = 1903 Y = 251
    Took 2 samples...
    Bot right : X = 1913 Y = 1804
    Took 2 samples...
    Bot left : X = 141 Y = 1820
    Took 4 samples...
    Center : X = 1022 Y = 1032
    -25.612671 0.524236 -0.000145
    -30.600403 0.001009 0.319780
    Calibration constants: -1678552 34356 -9 -2005428 66 20957 65536

    Die Werte im etc/pointercal schauen so aus :
    34356 -9 -1678552 66 20957 -2005428 65536 1024 600 0

    Das ist noch die Augabe von EVtest für den unimapper
    Input device name: "uimapper - touchscreen"
    Supported events:
    Event type 0 (EV_SYN)
    Event type 1 (EV_KEY)
    Event code 106 (KEY_RIGHT)
    Event code 273 (BTN_RIGHT)
    Event code 320 (BTN_TOOL_PEN)
    Event code 330 (BTN_TOUCH)
    Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
    Value 950
    Min 0
    Max 2047
    Event code 1 (ABS_Y)
    Value 529
    Min 0
    Max 2047
    Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)


    :s:s:s:s
    Grüße,
    BBfish

  • whups da geht ja noch was


    Was fürn Problem haste denn konkret?
    Mein PI is nach dem Kodi update zerschossen gewesen und musste alles neuaufsetzen
    daher auch die touchscreen kalibrierung... hat mich wieder mal nen paar nerven gekostet...

    Ein problem ist dass sich Kodi nichtmehr mit initctl beenden lässt weshalb die touchscreen kalibrierung nach dem update nicht automatisch geladen wird sondern Kodi erst manuell beendet werden muss (FB oder via yatse)
    danach läuft die kalibrierung... hatte aber probleme damit weil Kodi die Resolution einfach immer wieder umgestellt hatte...

    Bei mir hats dann so funktioniert

    1. Resolution in Kodi auf 1280 x 720 stellen
    2. Kodi neustarten und checken obs auch darauf steht
    3. Touchscreen kalibrierung durchführen

  • Morgän!

    Ich habe mir jetzt auch einen Raspi zugelegt und mein TouchScreen mit dieser Anleitung calibriert:
    http://markamc.traki-iski.co.uk/?p=50#comment-11851

    Nur leider sind die X- und Y-Achsen invertiert. Drücke ich oben links, ist der Cursor unten rechts und andersrum.

    Vom Verhältnis und Abstand her müsste das Display jetzt (bis auf die invertierten Achsen) einigermaßen kalibriert sein, da wenn ich ganz rechts drücke, der cursur ganz links ist, in der Mitte treffen sich dann Finger und Cursor und wenn ich ganz links drücke ist der Cursor auch wieder ganz rechts.

    Habt ihr eine Idee an welcher Schraube ich da drehen kann?

    Danke und lg

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!