RaspberryPi ecran tactile

De Centre de Ressources Numériques - Labomedia
Aller à : navigation, rechercher

Ecran tactile 480x320 4" TFT Waveshare SpotPear

Waveshare 4inch RPi LCD , une image est fournie pour faire fonctionner l'écran sur pi2 basé sur wheezy et tout fonctionne bien.

Installation : Pour le moment ça NE MARCHE PAS !!!!!!!

Pour raspberry-pi 2 avec raspbian-jessie-2015-09-24


Mettre à jour le système

sudo apt-get update
sudo apt-get upgrade

Installer les drivers FBTFT avec support spi et dma

sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-update
sudo reboot

tester les drivers

sudo modprobe flexfb  width=320  height=480  regwidth=16 init=-1,0xb0,0x0,-1,0x11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0x36,0x28,-1,0x11,-1,0x29,-3
sudo modprobe fbtft_device name=flexfb speed=16000000 gpios=reset:25,dc:24 debug=3 rotate=90
sudo modprobe ads7846_device model=7846 cs=1 gpio_pendown=17  keep_vref_on=1 swap_xy=0 pressure_max=255 x_plate_ohms=60 x_min=200 x_max=3900 y_min=200 y_max=3900

Pour le moment impossible de charger ce driver, car il n'est plus inclus dans le kernel mais utilise les overlay

Charger les drivers au démarrage

sudo nano /etc/modules

Ajouter les 2 lignes suivantes

flexfb  width=320  height=480  regwidth=16 init=-1,0xb0,0x0,-1,0x11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0x36,0x28,-1,0x11,-1,0x29,-3
fbtft_device debug=3 rotate=90 name=flexfb speed=16000000 gpios=reset:25,dc:24

Au démarrage les modules ne sont pas chargés, voilà un test à effectuer après reboot :

  • Voir qu'elles modules sont chargés
pi@looper ~ $ lsmod
Module                  Size  Used by
cfg80211              417277  0 
rfkill                 16655  1 cfg80211
evdev                  10296  1 
spi_bcm2708             7670  0 
uio_pdrv_genirq         2958  0 
uio                     8215  1 uio_pdrv_genirq
i2c_dev                 6059  0 
i2c_bcm2708             5006  0 
snd_bcm2835            19761  0 
snd_pcm                74449  1 snd_bcm2835
snd_timer              18197  1 snd_pcm
snd                    51646  3 snd_bcm2835,snd_timer,snd_pcm
fuse                   82197  1 
ipv6                  335227  30 
  • Connaitre les erreurs pendant le chargement
pi@looper ~ $ systemctl status systemd-modules-load.service
● systemd-modules-load.service - Load Kernel Modules
   Loaded: loaded (/lib/systemd/system/systemd-modules-load.service; static)
   Active: failed (Result: exit-code) since mar. 2016-01-19 09:55:11 CET; 7min ago
     Docs: man:systemd-modules-load.service(8)
           man:modules-load.d(5)
  Process: 822 ExecStart=/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)
 Main PID: 822 (code=exited, status=1/FAILURE)
  • Connaitre qu'elles modules sont en défauts (reprendre le PID donner à la commande du dessus)
pi@looper ~ $ sudo journalctl -b _PID=822
-- Logs begin at lun. 2016-01-18 20:54:14 CET, end at mar. 2016-01-19 10:04:02 CET. --
janv. 19 09:55:11 looper systemd-modules-load[822]: Failed to find module 'flexfb  width=320  height=480  regwidth=16 init=-1,0xb0,0x0,-1,0x11
janv. 19 09:55:11 looper systemd-modules-load[822]: Failed to find module 'fbtft_device debug=3 rotate=90 name=flexfb speed=16000000 gpios=res
janv. 19 09:55:11 looper systemd-modules-load[822]: Failed to find module 'ads7846_device model=7846 cs=1 gpio_pendown=17  speed=1000000 keep_
lines 1-4/4 (END)
  • Connaitre les kernel installés
ls /lib/modules
  • Connaitre la version du kernel utilisé
cat /proc/version

Integrer le shell sur l'écran

sudo nano /boot/cmdline.txt

puis ajouter en fin de ligne :

fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo

Intégrer le bureau sur l'écran

sudo nano /usr/share/X11/xorg.conf.d/99-fbturbo.co­nf

remplacer /dev/fb0 par /dev/fb1

Reconnaissance de l'écran au démarrage

sudo nano /boot/config.txt

Ajouter la ligne suivante

dtoverlay=ads7846,cs=1,penirq=17,swapxy=­1,xmin=200,xmax=3900,ymin=200,ymax=3900,­pmax=255,xohms=60

Test

FRAMEBUFFER=/dev/fb1 startx

à voir:

  • test touchscreen evtest
  • dtoverlay pour lancer dtoverlay=ads7846-overlay.dtb,cs=1,penirq=17,swapxy=­1,xmin=200,xmax=3900,ymin=200,ymax=3900,­pmax=255,xohms=60

https://github.com/notro/fbtft/issues/260

https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README

https://github.com/notro/rpi-firmware/issues/21

https://github.com/notro/fbtft/wiki/Touchpanel

Calibration de l'écran

sudo nano /usr/share/X11/xorg.conf.d/99-calibration.conf

y copier :

Section "InputClass"
       Identifier      "calibration"
       MatchProduct    "ADS7846 Touchscreen"
       Option  "Calibration"   "3900 240 240 3900"
EndSection

reboot now to see if it worked!!!

  1. use caution with apt-get upgrade!
  2. if the bootloader get updated the drivers no longer work!!!
  3. update all except bootloader

$ sudo apt-get mark hold raspberrypi-bootloader $ sudo apt-get update $ sudo apt-get upgrade

  1. update bootloader but not kernel and modules

$ sudo SKIP_KERNEL=1 rpi-update

Sources

https://www.youtube.com/watch?v=o-6m3-QLCmk
http://raspberrypi.stackexchange.com/questions/27714/how-to-install-waveshare-spotpear-4-inch-lcd-in-raspberrypi-2
http://futurice.com/blog/id-like-to-have-some-lcd-on-my-pi
https://github.com/notro/fbtft/issues/215
http://www.circuitbasics.com/setup-lcd-touchscreen-raspberry-pi/
http://www.waveshare.com/wiki/4inch_RPi_LCD_(A)