Touchscreen qui bouge mais qui ne clique pas

Bonjour,
J’ai décidé de fusionner deux projets pour récupérer un Raspberry et améliorer mes performances. Mais je rencontre une grosse difficulté avec mon écran 5". Mais avant de parler du problème, voici la configuration actuel, je vais être explicite, voulant donner l’image la plus claire de la situation.

J’ai fusionné;

  • Mon projet RPi-QL qui utilise une imprimante en USB et un affichage en OLED via le I2C, c’est un Waveshare OLED 0.93"
  • Mon projet piDeskboard qui utilise un écran LCD en HDMI avec Touch via le GPIO, c’est un Waveshare 5" LCD HDMI + Touchscreen avec un module de mesure de température simple avec un Keyes DS18B20 Sensor

Les deux projets était sur des Raspberry Pi Zero v1 et v2 (j’ai alterné entre les versions plusieurs fois pour des tests ou des besoins pour d’autres projets), et j’ai regroupé sur un Raspberry Pi 2B avec un chapeau de multiplicateur de GPIO (1 pour 3). Qui est paragé comme suit;

  1. Le LCD est relié par une extension par câble au premier partage, selon la documentation, les ports 1,2,4,17,19,21,22,23 et 26 sont utilisés,
  2. Le second partage à mon écran OLED utilisant les pins 1,3,5 et 9,
  3. Le dernier partage est utilisé pas le moniteur de température avec les pins 1,7 et 9 utilisés.

Si je me fit à la configuration des ports USB pour les manettes (pour les joueur 1 @ 4 ), mon imprimante Brother QL est en port 2 et mon dongle Wifi en port 4. J’utilise la sortie via la sortie 3.5mm. Je fournis ça, au cas ou.

J’utilise Raspbian OS Lite (x86) avec le bureau minimum « xorg-server », utilisé pour le mode « Kiosk » par exemple. Tout mes scripts ont repartie sans trop de problème, qui se rapportait plus à des packages manquants (car j’ai pas toutes mes lignes d’installation en note) et des différences de configurations du système de mes versions précédentes.

Tout marchait correctement, surtout le Touchscreen, car c’est par lui que j’ai du utiliser pour fermer le Raspberry pour le changement. Je suis habitué à installer le pilotes de mes écrans car j’utilise une librairie plus souvent mis à jour dans lequel j’ai jamais eu de problèmes; Le LCD-Show de GoodTFT.

J’ai pas d’informations sur les versions entre les installations originaux et fusionné, mais les systèmes était mis à jours souvent, tous provienne d’une création avec Pi Imager et sont fait voila maximum 1 an dans le cas de piDeskboard, tous basé sur Raspbian OS Lite 32-bit, le mode « Legacy » de la caméra est activé (car après je vais installer une caméra pour une autre ajout de projet), ainsi que le I2C, SPI et 1-Wire.

Pour l’utilisation de mon pilote pour l’écran LCD HDMI 5", je dois changer un fichier. Dans /usr/share/X11/xorg.conf.d/ je dois changer le nom de « 99-fbturbo.conf » en « 99-fbdev.conf » et l’éditer pour faire le changement de « fbturbo » en « fbdev ». Je dois appliquer ce correctif vu que je suis avec la version Lite (CLI) de Raspbian. Car j’ai une erreur sans ça qui empêche le chargement de « startx ». Mais j’ai toujours eux à appliquer ça avec mes autres projets et écrans, deux autres 3.5" sans HDMI, alors pour moi c’est normal.


Le problème est étrange car je ne comprend pas pourquoi il réagit de la sorte. J’ai activé pour vérifier l’affichage du curseur, alors je sais que le déplacement du curseur marche, mais impossible de cliquer, comme le titre l’indique. Après l’un de mes redémarrages, j’ai été en mesure de partiellement sélectionner un bouton de mon affichage, mais sans plus et je n’arrive plus après le faire disparaitre (un-focus), ni le faire sur un autre bouton. Bref, il a détecté le survol.

C’est comme si de quoi bloque le « chemin » entre le curseur et mon application. J’ai tenté de vérifier mes exécutions du « startx » et de mon application (qui est dans le autostart de xorg vers un script bash) pour mettre ou non en « sudo », sans plus d’effets.

Alors je me pose les questions suivantes;

  • Est-ce que j’ai un conflit ? Théoriquement non vu que tout marche, sauf le clique et que selon les GPIO, j’ai aucun port partagé, sauf le voltage et le ground.
  • Est-ce qu’une mise à jours du OS récente peux causer ce problème ? Et est-ce qu’il y a un moyen de corriger ?
  • Est-ce que l’utilisation d’un Ground plutot qu’un autre peut causer un soucis en générale et si ça peut être une cause possible, car je sais que si je me fit a des guide, par exemple pour le moniteur de température, au lieu d’utiliser le Ground 9 comme je fais, il indique le 6 comme lien.
  • Il a t-il un moyen de voir si le périphérique du Touch est bien chargé et sans erreur ? Ou peut-être un moyen de surveiller les activités dans /dev/input/event0 ?

Le « xinput-calibration » ne répond pas non plus aux cliques, alors c’est un problème généralisé et non que pour mon application.

Entre temps je vais quand même faire d’autres recherches et tests, et sinon je vais tenter de plutot refaire la fusion sur la carte SD avec la version sans ce problème. Même en faisant une sauvegarde, j’aime pas joueur dans de vieux projets et changer une config fonctionnel d’un projet.

Note: J’ai eu des problèmes de voltage (la petite éclaire) non constant, j’ai résolu ce problème et je n’ai plus aucun avertissement, alors le système du point de vue électrique est fiable. (C’était mon interrupteur USB on/off qui était le problème, surement un faible ampérage supporté)

Merci d’avance!

Après un travail de debug avec ChatGPT, j’en conclus que le problème ce trouve au niveau du OS. Mon Installation de Raspbian doi être sur Buster (ancien) et le nouveau est sur Bulleyes, et il doit y avoir un changement dans le pilote qui n’a pas été encore fait.

Je vous posterais pas la conversation avec ChatGPT, mais en gros j’ai testé les entré via « evtest » et « xinput » et la pression est détecté, le XOrg est correctement configuré et les pilotes pour Xorg semble correctement ce charger. Sur le boot j’ai 4 erreur au SPI qui ne peut pas définir pour le touchscreen, alors est-ce ça le problème ? ChatGPT ne semble pas en mesure de confirmer, moi non plus.

En branchant une souris en USB, j’ai accès normalement, alors ce n’est pas de quoi qui logiciellement ce place entre le curseur et l’application. Et les privilèges semble correct.
Alors au lieu d’utiliser mon ancienne config, j’ai décidé de refaire avec la version Buster, ou j’ai plus de chance d’être identique à l’ancienne config et m’assurer de la prise en charge du Touch correctement par le pilote et le OS.

Je vous tiens informé si j’ai des résulttats, car je suis à finir l’installation des scripts et packages.

Bon, ça ne règle pas mon problème et j’ai un nouveau problème. Je crois qu’a force de manipuler l’écran j’ai du briser de quoi. La le curseur pointe le bas de l’écran en permanence et bouge frénétiquement, avec le moniteur des entrées, ile reçoit constamment des donnés de position aléatoire. Je vais devoir analyser ça et remettre en config précédente voir sir c’est quelque chose du à la config actuel ou au hardware.

Clairement, buster n’est pas la solution. Après un retour sous mon ancienne config, je me rend compte qui est sur bulleyes, alors la première tentative était en fait plus proche. Mais reste que je ne comprend pas ce qui ce passe, car selon les fichiers de configuration, tout est identique.


Arg!!! Que je suis déçu la. Le problème est l’écran OLED qui rentre en conflit. Je ne sais pas pourquoi, surement du au BCM2835 installé, mais tout marche jusqu’au lancement de mon script qui actualise l’affichage sur le OLED. La il mélange le click et le rend inutilisable le restant de la session. Alors c’est le module Python, dans la communication, qui change le tout. Mais ce que je trouve étrange quand même est que le xinput et le evtest ne sont pas nécessairement impacté par ce problème, comme si la position et le click ne serai pas vu par eux. Pourtant les fichiers de configuration font référence au /dev/input/event0 que evtest écoute et tout est « propre ».

Étrange… mais l’écran OLED étant pas totalement nécessaire, je vais pour le moment ignorer ce problème, mais j’aimerais un jour avoir la solution.