A la suite de la réinstallation complète d’un de mes Raspberry Pi sous la dernière version de Debian (version 8 « Jessie »), je me suis très vite rendu compte que le touchpanel de mon écran TFT, basé sur une puce ADS7846, ne fonctionnait plus correctement dans Pygame, en ligne de commande. Bizarrement, le logiciel de calibration et de test (TSLIB) fonctionne très bien, et le touchpanel fonctionne également très bien dans un script Pygame lancé depuis X.
Mais je ne veux pas installer un environnement de bureau complet, simplement pour ce léger souci…
Pour info, la puce ADS7846 se trouve dans la plupart des écrans TFT tactiles utilisés avec le Raspberry Pi : Texy 2.8″, WaveShare32/35, Sainsmart32/35, et j’en passe…
J’ai donc cherché longtemps, et finalement trouvé la solution. Pour faire simple, la librairie SDL version 1.2.15-10, utilisée par Pygame en mode ligne de commande, et livrée avec Debian Jessie, présente un bug non résolu (Bug officiel #798160).
Il suffit « simplement » d’installer la librairie SDL de Debian 7 « Wheezy » (version 1.2.15-5) pour résoudre le problème… « Simplement », car la solution est simple, après avoir passé plusieurs jours à la trouver…
Voici la procédure à suivre :
sudo -s #enable wheezy package sources echo "deb http://archive.raspbian.org/raspbian wheezy main" > /etc/apt/sources.list.d/wheezy.list #set stable as default package source (currently jessie) echo "APT::Default-release \"stable\";" > /etc/apt/apt.conf.d/10defaultRelease #set the priority for libsdl from wheezy higher then the jessie package echo "Package: libsdl1.2debian Pin: release n=jessie Pin-Priority: -10 Package: libsdl1.2debian Pin: release n=wheezy Pin-Priority: 900" > /etc/apt/preferences.d/libsdl #install apt-get update apt-get -y --force-yes install libsdl1.2debian/wheezy
Script trouvé ici
Vous pouvez ensuite installer le pilote ADS7846 en utilisant le device tree :
nano /boot/config.txt
Ajouter à la fin du fichier :
dtoverlay=ads7846-overlay pressure_max=255 y_min=190 y_max=3850 gpio_pendown=17 x_max=3850 x_min=230 x_plate_ohms=60 swap_xy=1
Adaptez la configuration à votre cas…
Vous pouvez ensuite continuer l’installation normalement, à partir du point « 5- Console touch calibration » de ce précédent tutoriel