Faire fonctionner le touchpanel ADS7846 sous Debian Jessie

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

About Captain Stouf

Spécialiste en systèmes informatiques, Développeur matériel et logiciel, Inventeur, Maker : électronique, Systems on Chip, micro-controlleurs, Internet of Things, Modélisation / Scan / Impression 3D, Imagerie...

Laisser un commentaire