CFW: Touchscreen kalibrieren

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

CFW: Touchscreen kalibrieren

Beitrag von richard.kunze » 19 Sep 2017, 23:15

Hallo zusammen,

nachdem auf der Maker-Faire in Bensheim auch der doch recht ungenaue Touchscreen des TXT Gesprächsthema war (und ich hier gerade eh auf einen CFW-Build warten muss), hab ich mich mal ein wenig in das Thema eingelesen und etwas rumgespielt. Ergebnis: Es gibt ein paar grafische Tools, mit denen man Touchscreens testen und neu kalibrieren kann - und die haben wir in der CFW sogar schon mit an Bord :-)

Und zumindest gefühlt ist der Touchscreen an meinem TXT nach einer Neukalibrierung auch deutlich besser benutzbar. Von daher hier eine kurze Anleitung zur Touchscreen-Neukalibrierung:
  • Als allerersten Schritt per SSH auf dem TXT einloggen, und den Launcher stoppen damit der bei den folgenden Schritten nicht auf dem Bildschirm rumschmiert (einfach den Prozess mit "kill" abschiessen)
  • Dann den Touchscreen mit

    Code: Alles auswählen

    sudo ts_test
    testen. Ergebnis bei mir war, dass die Berührung systematisch deutlich zu weit links erkannt wurden. Also weiter mit dem nächsten Schritt
  • Touchscreen neu kalibrieren mit

    Code: Alles auswählen

    sudo rm /etc/pointercal
    sudo ts_calibrate
    
    Der erste Befehl löscht die alten Kalibrierungsdaten (die sind fest in der CFW eingebaut, wenn man sie doch nochmal braucht kann man sie sich jederzeit aus /media/sdcard/root/etc/pointercal zurückholen), und der zweite malt ein Fadenkreuz auf den Touchscreen, fordert dazu auf, da draufzupatschen, berechnet aus dem Ergebnis neue Kalibrierungsdaten, und schreibt sie nach /etc/pointercal (aber nur, wenn es das noch nicht gibt - daher Schritt 1).
Und wenn der Build hier durch ist, dann verpacke ich das Ganze auch noch in eine nette kleine App (zusammen mit der Bildschirm-Dreh-Funktion für Torsten, wegen der hier grade der Build läuft - dann gibts da wenigstens noch mehr Knöppkes als nur "linksrum drehen" und "rechtsrum drehen" :-))

Benutzeravatar
PHabermehl
Beiträge: 2429
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: CFW: Touchscreen kalibrieren

Beitrag von PHabermehl » 22 Sep 2017, 10:59

Hallo Richard,

mit Launcher abschießen meinst Du den python3-Prozess?

So ging es bei mir:

Code: Alles auswählen

ssh ftc@<ip des txt>
[Einloggen auf dem Screen bestätigen]
sudo ps -A
[Sudo-Zugriff für Benutzer ftc auf dem Screen bestätigen]
[PID des Python3-Prozesses aus der Liste suchen]
kill <PID des Python3-Prozesses>
sudo ts_test
sudo rm /etc/pointercal
sudo ts_calibrate
Gruß
Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: CFW: Touchscreen kalibrieren

Beitrag von richard.kunze » 22 Sep 2017, 14:06

Hallo Peter,
PHabermehl hat geschrieben:mit Launcher abschießen meinst Du den python3-Prozess?
Genau. Prinzipiell ginge es auch mit laufendem Launcher, aber wenn man das einfach so ohne weitere Vorkehrungen macht, dann streiten sich der Launcher und ts_calibrate um den Bildschirm...

Und mit Commit b1fce706 (hat den Snapshot leider knapp verpasst) kann man das dann auch einfach mit

Code: Alles auswählen

sudo /etc/init.d/S90launcher stop
machen.

Und nächste Woche gibts dann auch noch eine GUI, mit der man dann direkt aus dem Launcher den Bildschirm rotieren und den Touchscreen kalibrieren kann.

Liebe Grüße,

Richard

PS: Das "sudo rm /etc/pointercal" ist so wie es aussieht doch nicht nötig, ts_calibrate überschreibt auch eine existierende Datei wenn es die passenden Rechte hat...

Benutzeravatar
PHabermehl
Beiträge: 2429
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: CFW: Touchscreen kalibrieren

Beitrag von PHabermehl » 25 Sep 2017, 14:26

Hallo Richard,
tolle Sache.
Ich würde in dem Zusammenhang vorschlagen, daß wir im Python-Tutorial ein Programmgerippe beistellen, daß die Screenorientierungs-Abfrage (Hoch/Quer) und etwaige Reaktionen darauf demonstriert...
Wenn Du zum Ende der Woche 'was committest, dann wird das ein fettes Weekly, denn von Raphael soll noch sein txrobopy kommen :D
Ich würde dann versuchen, am WE ne Beispiel-App mit Bildschirmlage-Abfrage (und meine Apps dann gleich umzustellen...) zu basteln.

Gruß
Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: CFW: Touchscreen kalibrieren

Beitrag von ski7777 » 25 Sep 2017, 17:06

Könnten wir nicht sogar machen, dass eine APP bei Bedarf die eingestellte Lage ändern kann und der Launcher dann beim schließen zurückdreht? Bei Android kann ich ja ein Autorennen auch nicht im Hochformat nutzen, genauso, wie verschiedene andere Apps Querformat erzwingen.

Raphael

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: CFW: Touchscreen kalibrieren

Beitrag von MasterOfGizmo » 25 Sep 2017, 17:23

Das könnte man über einen Eintrag im Manifest lösen, wo drinsteht, welche Orientierungen (und ggf. Auflösungen) unterstützt werden. Der Launcher selbst läuft ja auch im Querformat recht gut, wenn ich mich korrekt erinnere. Und er würde dann nur Programme starten, für die im Manifest steht, dass sie es können.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
PHabermehl
Beiträge: 2429
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: CFW: Touchscreen kalibrieren

Beitrag von PHabermehl » 25 Sep 2017, 17:37

Das ist eine hervorragende Lösung! Der Launcher könnte dann eben auch die entsprechende Meldung im Problemfall ausgeben; das wäre dann quasi auch über den Launcher standardisiert und internationalisiert, und als App-Schnitzer muß man sich nur einmal Gedanken dazu machen und Orientation=[Portrait|Landscape|System] ins Manifest schreiben...

Till, der Launcher ist Dein Baby und auch Part des TouchUI, machst Du oder ... ?

Nb, Gückwunsch zum 1000. Post!

Gruß
Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: CFW: Touchscreen kalibrieren

Beitrag von richard.kunze » 25 Sep 2017, 19:30

ski7777 hat geschrieben:Könnten wir nicht sogar machen, dass eine APP bei Bedarf die eingestellte Lage ändern kann und der Launcher dann beim schließen zurückdreht? Bei Android kann ich ja ein Autorennen auch nicht im Hochformat nutzen, genauso, wie verschiedene andere Apps Querformat erzwingen.
Nee, so einfach geht das leider nicht. Ich hatte erst sowas im Sinn gehabt, aber das wäre ein fürchterliches Gebastel geworden (komplett mit Aufruf von undokumentierten, Qt4-embedded-spezifischen c++-Funktionen über ctypes, die uns garantiert beim nächsten Minor-Update von Qt und/oder gcc krachend um die Ohren geflogen wären - und mit Qt5 sowieso nicht mehr existieren). Daher bleibt als einzig halbwegs sinnvolle Möglicvhkeit nur noch ein Launcher-Neustart nach jedem Wechsel der Orientierung - und das wiederum will man nicht jedesmal vor/nach einem App-Lauf haben.

PS: Für Diskussionen um die Screen-Rotation sollten wir denke ich einen neuen Thread aufmachen. Hier gehts schließlich (zumindest nominell) um die Touchscreen-Kalibrierung...

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: CFW: Touchscreen kalibrieren

Beitrag von MasterOfGizmo » 26 Sep 2017, 16:12

Ich würde es auch erstmal so lassen wie es ist. Bei den meisten Apps weiss der Autor vorher ja kaum ob es auch gedreht halbwegs benutzbar ist oder nicht. Und verlassen kann man die App ja auch bei total kaputter GUI immer mit dem Button, so dass man da kaum in unlösbare Situationen kommt.

Falls sich das später mal als Problem herausstellt kann man es immernoch beschränken. Aber stell Dir vor, dass Du mal eben die IP-Adresse korrigieren willst und Du kannst es nicht, weil irgendwer meinte, dass die gedrehte GUI der Netzwerk-App nicht toll genug aussieht.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
PHabermehl
Beiträge: 2429
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: CFW: Touchscreen kalibrieren

Beitrag von PHabermehl » 26 Sep 2017, 16:25

Bitte zur Screen-Rotation hier: viewtopic.php?f=33&t=4438
weitermachen!
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

chehr
Beiträge: 193
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Re: CFW: Touchscreen kalibrieren

Beitrag von chehr » 01 Okt 2017, 10:27

Kurzes Feedback,
bei mir hat die Kalibrierung nach der Anleitung oben gut funktioniert.
Der TXT lässt sich nun viel besser bedienen, also mit weniger Druck auf den Touchscreen - gefühlsmäßig.
Danke für das Feature

Benutzeravatar
PHabermehl
Beiträge: 2429
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: CFW: Touchscreen kalibrieren

Beitrag von PHabermehl » 05 Okt 2017, 13:37

Hallo Richard,
ich habe massive Probleme mit dem TS.

Während des Kalibrierens wird oft ein Druck als zwei Berührungen erkannt, so daß die Kalibrierung danach komplett unbrauchbar ist und man per ssh erst den Standard wieder herstellen muß. Das ist einmal sogar unmöglich gewesen, weil ich die ssh-Anfrage auf dem Touchscreen nicht quittieren konnte.

Nach der Kalibrierung sollte ein Test erfolgen - z.b. innerhab eines countdowns von 20 sec. Buttons in allen vier Ecken und der Mitte antippen, damit die Einstellung übernommen wird, ansonsten zurücksetzen auf die vorherigen Einstellungen...

Was meinst Du?

Gruß
Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: CFW: Touchscreen kalibrieren

Beitrag von richard.kunze » 05 Okt 2017, 15:02

Hallo Peter,
PHabermehl hat geschrieben: ich habe massive Probleme mit dem TS.

Während des Kalibrierens wird oft ein Druck als zwei Berührungen erkannt, so daß die Kalibrierung danach komplett unbrauchbar ist und man per ssh erst den Standard wieder herstellen muß. Das ist einmal sogar unmöglich gewesen, weil ich die ssh-Anfrage auf dem Touchscreen nicht quittieren konnte.
Hmm. Ist mir bisher nicht passiert - "kaputtkalibriert" hab ich mir den Touchscreen eigentlich nur absichtlich (zum Ausprobieren was passiert wenn man da Quark eingibt), und da hatte ich in weiser Voraussicht natürlich vorher eine Shell per SSH offen ;-)

Wie machst Du denn die Kalibirierung? Mit den Fingern? Ich hab dafür normalerweise einen Bleistift verwendet, weil ich damit die Kalibrierungs-Kreuzchen präziser treffen kann als mit meinen Wurstfingern...
PHabermehl hat geschrieben: Nach der Kalibrierung sollte ein Test erfolgen - z.b. innerhab eines countdowns von 20 sec. Buttons in allen vier Ecken und der Mitte antippen, damit die Einstellung übernommen wird, ansonsten zurücksetzen auf die vorherigen Einstellungen...
Wäre schön wenn das einfach ginge - ich hab aber leider außer einem Launcher-Neustart keinen Weg gefunden die neuen Kalibrierungseinstellungen in Qt zu verwenden (auch eine Qt-App in einem eigenen Python-Prozess reicht nicht, die kriegt die Touch-Daten ebenfalls vom Launcher geliefert).

Was eventuell möglich wäre: Es gibt neben ts_calibrate auch noch ein passendes Test-Programm (heißt glaube ich auch einfach "ts_test") - eventuell kann man das nach der Kalibrierung anwerfen, und die Daten nur übernehmen wenn man da dann auf dem Touchscreen bestätigt. Abbrechen könnte man das dann über den On/Off-Button, der tut auch wenn der Touchscreen komplett kaputtkalibriert ist.

Ich kann mir das mal anschauen, aber voraussichtlich nicht vor übernächster Woche. Oder mit anderen Worten: Wenn Du vorher Zeit hast da was zu bauen: Nur zu :-)

Benutzeravatar
PHabermehl
Beiträge: 2429
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: CFW: Touchscreen kalibrieren

Beitrag von PHabermehl » 05 Okt 2017, 17:48

richard.kunze hat geschrieben:Wie machst Du denn die Kalibirierung? Mit den Fingern? Ich hab dafür normalerweise einen Bleistift verwendet, weil ich damit die Kalibrierungs-Kreuzchen präziser treffen kann als mit meinen Wurstfingern...
Aufgrund physiognomischer Veranlagung verwende ich (seit damals, als resistive Touchscreens an sogenannten Personal Digital Assistants state-of-the-art waren und man Smartphone vielleicht als Gerät mit Drucktasten statt Wählscheibe und mehreren elektronischen Klingeltönen definiert hätte) einen speziell für die Bedienung solcher Screens produzierten Stylus. Präziser geht nicht ;-)
richard.kunze hat geschrieben: Was eventuell möglich wäre: Es gibt neben ts_calibrate auch noch ein passendes Test-Programm (heißt glaube ich auch einfach "ts_test") - eventuell kann man das nach der Kalibrierung anwerfen, und die Daten nur übernehmen wenn man da dann auf dem Touchscreen bestätigt. Abbrechen könnte man das dann über den On/Off-Button, der tut auch wenn der Touchscreen komplett kaputtkalibriert ist.

Ich kann mir das mal anschauen, aber voraussichtlich nicht vor übernächster Woche. Oder mit anderen Worten: Wenn Du vorher Zeit hast da was zu bauen: Nur zu :-)
Joah, wohl eher nicht, wir sind gerade auf dem Sprung in den Urlaub - wird wohl auch erst mal zwei Wochen Ruhe von meiner Seite sein.

Vorschlag zum Überprüfen: Du gibst dem Launcher beim restart einen Parameter mit, der dann das Screen-Test-Plugin mit den fünf Buttons startet ...

Gruß
Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

Antworten