Mit fbtft kleine LCDs ansteuern

Das Projekt fbtft stellt entsprechende Module für den Linux-Kernel bereit, mit denen sich kleinere TFT-Displays und LCDs über die GPIO Pins ansteuern lassen.

Anfangs handelte es sich noch um ein eigenständiges Projekt, welches unabhängig vom Linux Kernel auf GitHub als fbtft weiterentwickelt wurde. Seit Januar 2015 befindet es sich jedoch direkt im Staging Bereich des offiziellen Linux Kernels. Ein großer Verteil davon ist, dass die Distributoren von zum Beispiel Arch Linux ARM oder Raspbian diese Module leichte mit ausliefern können.

Die folgende Beispiele wurden unter Raspbian 2016-02-09 getestet.

Bevor begonnen wird, muss das Display an den "Mini"-Computer angeschlossen werden. Wie das zum Beispiel beim Raspberry Pi erfolgt, kann dem fbtft Wiki entnommen werden.

Anschließend muss die SPI Schnittstelle aktiviert werden. Hierfür kann entweder das Tool raspi-config zum Einsatz kommen.

$ sudo raspi-config

Oder es kann folgende Zeile direkt in die Datei /boot/config.txt eingetragen werden.

dtparam=spi=on

Danach darf der Neustart nicht vergessen werden.

Mit folgendem Befehl gibt das Kernel Modul eine Liste aller unterstützten Displays aus.

$ sudo modprobe fbtft_device name=list
modprobe: ERROR: could not insert 'fbtft_device': Operation canceled
$ dmesg | grep fbtft
[  202.309167] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[  202.316719] fbtft_device:  SPI devices registered:
[  202.316762] fbtft_device:      ili9340 spi0.0 32000kHz 8 bits mode=0x00
[  202.316782] fbtft_device:      spidev spi0.1 500kHz 8 bits mode=0x00
[  202.316794] fbtft_device:  'fb' Platform devices registered:
[  202.316842] fbtft_device:      soc:fb id=-1 pdata? no
[  202.316890] fbtft_device:  Supported displays:
[  202.316903] fbtft_device:      adafruit18
[  202.316913] fbtft_device:      adafruit18_green
[  202.316923] fbtft_device:      adafruit22
[  202.316932] fbtft_device:      adafruit22a
[  202.316941] fbtft_device:      adafruit28
[  202.316949] fbtft_device:      adafruit13m
[  202.316958] fbtft_device:      agm1264k-fl
[  202.316967] fbtft_device:      dogs102
[  202.316976] fbtft_device:      er_tftm050_2
[  202.316985] fbtft_device:      er_tftm070_5
[  202.316994] fbtft_device:      flexfb
[  202.317003] fbtft_device:      flexpfb
[  202.317012] fbtft_device:      freetronicsoled128
[  202.317021] fbtft_device:      hx8353d
[  202.317030] fbtft_device:      hy28a
[  202.317039] fbtft_device:      hy28b
[  202.317047] fbtft_device:      ili9481
[  202.317056] fbtft_device:      itdb24
[  202.317064] fbtft_device:      itdb28
[  202.317073] fbtft_device:      itdb28_spi
[  202.317081] fbtft_device:      mi0283qt-2
[  202.317090] fbtft_device:      mi0283qt-9a
[  202.317099] fbtft_device:      mi0283qt-v2
[  202.317107] fbtft_device:      nokia3310
[  202.317116] fbtft_device:      nokia3310a
[  202.317124] fbtft_device:      nokia5110
[  202.317133] fbtft_device:      piscreen
[  202.317141] fbtft_device:      pitft
[  202.317151] fbtft_device:      pioled
[  202.317159] fbtft_device:      rpi-display
[  202.317168] fbtft_device:      s6d02a1
[  202.317177] fbtft_device:      sainsmart18
[  202.317185] fbtft_device:      sainsmart32
[  202.317194] fbtft_device:      sainsmart32_fast
[  202.317203] fbtft_device:      sainsmart32_latched
[  202.317213] fbtft_device:      sainsmart32_spi
[  202.317222] fbtft_device:      spidev
[  202.317230] fbtft_device:      ssd1331
[  202.317239] fbtft_device:      tinylcd35
[  202.317248] fbtft_device:      tm022hdh26
[  202.317257] fbtft_device:      tontec35_9481
[  202.317266] fbtft_device:      tontec35_9486
[  202.317276] fbtft_device:      upd161704
[  202.317285] fbtft_device:      waveshare32b
[  202.317294] fbtft_device:      waveshare22

Anschließend kann das Modul für das entsprechende Display geladen werden. Im Beispiel muss <name> durch den entsprechende Name des Displays ersetzt werden.

$ sudo modprobe fbtft_device name=<name>

Danach sollte das neue Display als Device /dev/fb1 verfügbar sein und kann verwendet werden.

Links

Verwandte Artikel