Raspberry Pi Display

Von Watterott ist ein kleines 2.83″ Farb-Touch-Display erhältlich, das einfachen auf den GPIO-Port eines Raspberry Pi’s aufgesteckt werden kann. Das Display verwendet weder den HDMI-Port noch muss es extra programmiert werden – es verwendet den Raspberry PI Framebuffer und kann daher die Konsole oder auch X darstellen. Die X-Öberfläche lässt sich auch mit der Touch-Oberfläche bedienen.

RPi-Display von Watterott

Technische Daten des RPi Display von Watterott

  • Revision: 1.0
  • Größe: 2.83″ (43.2 x 57.6mm)
  • Typ: TFT Transmission
  • Auflösung: 320×240 Pixel
  • Farben: 262 K
  • Hintergrundbeleuchtung: 4 LED (dimmbar, PWM)
  • Touch Controller: TI ADS7846
  • Schnittstelle: SPI (Touch Controller + Display)
  • Stromversorgung: 3.3-5V (über GPIO)
  • Abmessungen: 50.2 x 69.3mm
  • Preis: ca 30,- EUR (RPi-Display bei Amazon.de)

Webseite: http://www.watterott.com/de/RPi-Display
GIT-Repository: http://github.com/watterott/RPi-Display

Display-Anschlüsse

Raspberry Pi RPi Display
GPIO 7 ADS-CS CE1
GPIO 8 LCD-CS CE0
GPIO 9 MISO MISO
GPIO 10 MOSI MOSI
GPIO 11 SCK SCK
GPIO 18 LCD-LED
GPIO 22 LDR optionaler Schalter / LDR (VT93N1)
GPIO 23 LCD-RST
GPIO 24 LCD-DC Jumper IO24-RS
GPIO 25 ADS-IRQ

Installation des RPi-Display am Raspberry Pi

FBTFT Treiber Framebuffer installieren

sudo wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update -O /usr/bin/rpi-update
sudo chmod +x /usr/bin/rpi-update

Raspberry SPI Blacklist bearbeiten und folgende Zeile mit # auskommentieren:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

#blacklist spi-bcm270

Kernel Update installieren und anschließend den Raspberry Pi neu starten:

sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-update
sudo shutdown -r now

Framebuffer des RPi-Displays mit Modus 8-Bit SPI aktivieren (ab RPi-Display v1.1 für ca 20 FPS, <10% CP)

sudo modprobe fbtft dma
sudo modprobe fbtft_device custom name=fb_ili9341 speed=32000000 gpios=reset:23,dc:24,led:18 bgr=1 rotate=270

Zur permanenten Aktivierung des 8-Bit SPI Modus für das RPi-Display muss in /etc/modules folgendes eintragen:

fbtft dma
fbtft_device custom name=fb_ili9341 speed=32000000 gpios=reset:23,dc:24,led:18 bgr=1 rotate=270

oder FBTFT SD-Card Image kernel argument: (alles in einer Zeile!)

fbtft.dma fbtft_device.custom fbtft_device.name=fb_ili9341 fbtft_device.speed=32000000 fbtft_device.gpios=reset:23,dc:24,led:18 fbtft_device.bgr=1 fbtft_device.rotate=270

Überprüfung der Display-Treiber mit folgendem Befehl:

lsmod

Touchpanel Tools installieren:

sudo apt-get install xinput evtest

Touchpanel aktivieren mit sudo modprobe:

sudo modprobe ads7846_device model=7846 cs=1 gpio_pendown=25 speed=2000000 keep_vref_on=1 swap_xy=1 pressure_max=255 x_plate_ohms=60 x_min=250 x_max=3780 y_min=160 y_max=3930

Um das Touchpanel auch nach einem Neustart aktiviert zu haben, muss folgende Zeile in /etc/modules eingetragen werden:

ads7846_device model=7846 cs=1 gpio_pendown=25 speed=2000000 keep_vref_on=1 swap_xy=1 pressure_max=255 x_plate_ohms=60 x_min=250 x_max=3780 y_min=160 y_max=3930

Überprüfung des Treibers wieder mit:

lsmod

Aktivierung der Console des aus das RPi-Display:

con2fbmap 1 1

Zur dauerhaften Aktivierung des RPi-Displays mussfolgender Kernel-Parameter in die Datei /boot/cmdline.txt am Ende hinzugefügt werden (alles in eine Zeile!)

sudo nano /boot/cmdline.txt 

fbcon=map:10 fbcon=font:ProFont6x11

Optional: Framebuffer-Copy (fbcp)

sudo apt-get install x11-xserver-utils
https://github.com/notro/fbtft-spindle/wiki/FBTFT-image#fbcp---framebuffer-copy
sudo apt-get install cmake
git clone https://github.com/tasanakorn/rpi-fbcp
cd rpi-fbcp/
mkdir build
cd build/
cmake
..
make
sudo install fbcp /usr/local/bin/fbcp

Quelle: http://blog.iteadstudio.com/raspberry-pi-2-8-tft-add-on/

Beipiele

X am RPi-Display starten mit folgendem Command:

FRAMEBUFFER=/dev/fb1
startx &

nachdem X gestartet ist Touchpanel aktivieren:

DISPLAY=:0 xinput --set-prop 'ADS7846 Touchscreen' 'Evdev Axis Inversion' 1 0

Bild auf RPi-Display anzeigen

sudo apt-get install fim
FRAMEBUFFER=/dev/fb1 fim -a *.png

Video am RPi-Display abspielen

sudo apt-get install mplayer mplayer -vo fbdev2:/dev/fb1 -vf scale=320:-3 video_320x180.mp4

Stromsparmodus des Displays verhindern

sudo nano /etc/rc.local
# turn off console blanking
setterm -blank 0

sudo nano /etc/kbd/config

# screen blanking timeout.  monitor remains on, but the screen is cleared to # range: 0-60 min (0==never)  kernels I've looked at default to 10 minutes. # (see linux/drivers/char/console.c) BLANK_TIME=0 # Powerdown time.  The console will go to DPMS Off mode POWERDOWN_TIME # minutes _after_ blanking.  (POWERDOWN_TIME + BLANK_TIME after the last input) POWERDOWN_TIME=0
sudo nano /etc/lightdm/lightdm.conf
[SeatDefaults]
xserver-command=X -s 0 dpms
sudo nano /etc/X11/xinit/xinitrc
xset s off         # don't activate screensaver
xset -dpms         # disable DPMS (Energy Star) features.
xset s noblank     # don't blank the video device
sudo nano /etc/xdg/lxsession/LXDE/autostart
@xset s off
@xset -dpms
@xset s noblank
sudo nano /etc/xdg/lxsession/LXDE/autostart
consoleblank=0