Displays mit SPI-Anschluss unter Raspberry PI OS (bullseye/bookworm/trixie)

  • Moin!

    Stand: 05.02.2022

    Hier möchte ich einen Weg aufzeigen, wie man Displays, die über die Schnittstelle SPI angesprochen werden, unter Raspberry PI OS (Bullseye) wieder in Betrieb nehmen kann.

    Dazu einen Auszug aus dieser Webseite: https://github.com/notro/fbtft/wiki/FBTFT-RPI-overlays

    Quote

    Jetzt, da fbtft_device nicht mehr existiert, sind Device Tree Overlays der Weg, um fbtft-Displays zu verwenden.

    Es gibt ein fbtft-Overlay, das den größten Teil der Funktionalität von fbtft_device abdeckt. Siehe den Abschnitt fbtft in der overlays/README für Informationen.

    (Das fbtft-Overlay wurde im November 2021 hinzugefügt, es kann also eine Weile dauern, bis es in den Distros auftaucht, in der Zwischenzeit ist es hier verfügbar: fbtft.dtbo)

    Meine Recherche ergab, das es ab dem Kernel 5.10.78 gilt.

    Einige Displays sind schon auf die neue Software umgestellt. Andere sind nur grundinitialisiert.

    Man muss dem Overlay fbtft einige Daten von dem Display mitgeben.

    Die Liste der Geräte die unterstützt werden ist auch auf der obigen Web-Seite zu finden.

    Getestet habe ich auf folgender Hardware und Software:

    - Raspberry Pi Model 4B V1.4

    - Raspberry Pi OS mit Desktop aktueller Patchlevel(05.02.2022)

    - Joy-IT TFT-Display 3.5 Inch

    Mein erster Test. So wie es in /boot/overlays/README unter fbtft beschrieben ist.

    Auszug aus der /boot/config.txt.

    Code
    # Enable DRM VC4 V3D driver
    dtoverlay=vc4-kms-v3d
    max_framebuffers=2
    
    # Einstellungen für ein SPI-LCD-Display
    dtparam=spi=on
    dtoverlay=fbtft,spi0-0,ili9486,width=320,height=480,regwidth=16,reset_pin=25,dc_pin=24,rotate=270,swapxy=1

    Nach einem Reboot wird der Desktop auf dem Display dargestellt. Alles passt, nur die Farbe nicht. Alles hat einen Blaustich.

    2.ter Versuch

    -----------------------------------------------------------------------------------

    Die Firma Joy-IT liefert ein Overlay für das Display.

    Die Datei nach /boot/overlays kopiert.

    Die /boot/config.txt sollte nun so aussehen.

    Code
    # Enable DRM VC4 V3D driver
    #dtoverlay=vc4-kms-v3d
    max_framebuffers=2
    
    # Einstellungen für ein SPI-LCD-Display
    dtparam=spi=on
    dtoverlay=joy-IT-Display-Driver-35a-overlay:rotate=270,swapxy=1

    Ein Reboot und siehe da, alles so wie es soll!

    Auch die Touchfunktion geht, ist aber noch Seitenverkehrt.

    Da bin ich noch am forschen. Wenn Ergebnisse da sind, reiche ich sie hier nach.

    -------------------------------------------------------------------------------------

    Nun wollte ich wissen wie es bei Raspberry PI OS lite aussieht.

    Der Eintrag für DRM und KMS (# Enable DRM VC4 V3D driver) ist egal. Das greift nur bei X11, sprich Desktopbetrieb.

    Wenn das Overlay fbtft genutzt wird, dann ist wieder ein Farbfälschung da. Rot und Blau sind getauscht.

    Also wieder das Overlay von Joy-IT genutzt und alles ist gut.

    Ich hoffe das ich Einigen helfen konnte...

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Displays mit SPI-Anschluss unter Raspberry PI OS (bullseye/bookworm/trixie)? Schau mal ob du hier fündig wirst!

  • Moin!

    Ich habe heute nochmal das 3,5 Inch Display an einem Raspberry Pi 3 Model B Plus Rev 1.3 streng nach der Vorgabe von Joy-IT eingerichtet. Auch die Touchfunktion. Und was soll ich sagen, alles funktioniert. Auch die Touchfunktion.

    Man sollte aber in der /boot/config.txt dieses Overlay dtoverlay=vc4-kms-v3d auskommentieren.

    Danach einen Reboot und dann wird auch die fehlende /usr/share/X11/xorg.conf.d/99-fbturbo.conf automatisch erstellt.

    Just for fun habe ich dann die SD-Karte und das Display in einen Raspberry 4 B mit 2 GB Ram gesteckt.

    Ich wollte es nicht glauben, auch hier geht alles.

    Was ich immer noch nicht sagen kann ist, ist es auch bei anderen Displays so.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hallo Bernd,

    danke für Deine Tests. Neu für mich ist, daß das fbtft-Overlay für das Joy-IT 3.5inch TFT Display, zwar mit falschen Farben, aber immerhin etwas anzeigt. Kannst Du dieses Display unter Raspberry Pi OS Lite auch mit ts_calibrate kalibrieren?

    Schönen Gruß, kle

  • Hallo Bernd,

    Wenn das Overlay fbtft genutzt wird, dann ist wieder ein Farbfälschung da. Rot und Blau sind getauscht.

    da habe ich im /boot/overlays/README von Raspberry Pi OS Lite (bullseye) folgendes in der Beschreibung des fbtft-Overlays gesehen:

    Code
            bgr                     Enable BGR mode (default off). Use if Red and
                                    Blue are swapped. Not supported by all drivers.

    vielleicht hilfts, oder hast Du es schon probiert?

    Schönen Gruß, kle

  • Moin kle,

    danke für den Hinweis. Ja, das habe ich gesehen.

    Der Parameter 'bgr' hat funktioniert nur durch seine Anwesenheit. ER hat leider kein Value, wie z.B.: bgr=1.

    Ich habe mir mit dem DeviceTreeCompiler (DTC) die /boot/overlays/fbtft.dtbo angesehen. Dort steht folgendes:

    Code
        fragment@20 {
            target = <0x01>;
    
            __dormant__ {
                compatible = "ilitek,ili9486";
                spi-max-frequency = <0x1e84800>;
                regwidth = <0x10>;
                bgr;
            };
        };

    Ich hatte nun keine Lust oder anders, was bringt es, hier eine neue Datei zu publizieren.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin!

    Nun bin ich auch den letzten Schritt gegangen.

    LCD und Monitor an HDMI sollen beide funktionieren.

    Auch das geht!

    Die SD-Karte rennt sowohl im 3er als auch im 4er.

    Wenn ich von der Joy-it-Beschreibung rede, dann meine ich dieses PDF.

    https://joy-it.net/files/files/Pr…ng_04082020.pdf

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin!

    Stand: 08.11.2023

    Nachdem es nun Raspberri Pi OS basierend auf Debian Bookworm gibt, habe ich mal getestet wie nun der Stand der Dinge ist.

    Getestet habe ich wieder mit einem Raspberry Pi4 und einem 3.2 Inch LCD-Display von Joy-IT.

    Sowohl mit der 32bit-Lite-Version als auch mit der 64er-Lite-Version wird nach folgendem Eintrag alles auf dem Display dargestellt.

    dtoverlay=fbtft,spi0-0,ili9486,width=320,height=480,regwidth=16,reset_pin=25,dc_pin=24,rotate=270,swapxy=1

    Eine Farbverfäschung konnte ich diesmal nicht feststellen. Anscheinend habe die Betreuer was nachgebessert.

    Bei den Desktop-Versionen sieht es aber schlecht aus.

    Bei Bookworm wurde ja der Wayland-Modus an Stelles des XServer eingeführt. Man kann es aber in raspi-config auf XServer umstellen.

    Nützt nur nix. Das Display wird angesprochen, es wird dunkel und das war es dann.

    Wer also ein LCD-Display an seinen Raspberry bauen will, kann es nur mit der Lite-Version machen.

    Ich bleibe aber dran...

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Nachdem es nun Raspberri Pi OS basierend auf Debian Bookworm gibt, habe ich mal getestet wie nun der Stand der Dinge ist.

    Getestet habe ich wieder mit einem Raspberry Pi4 und einem 3.2 Inch LCD-Display von Joy-IT.

    Handelt es sich bei dem erwähnten Display um das RB-TFT 3.2 mit den 3 Knöpfen am linken Rand?

    Falls ja; Hast Du ein Beispiel in C/C++, wie man die Knöpfe benutzt?

    P.S.: Habe eben herausgefunden, wie man das mit den Knöpfen macht: GPIOs werden kurzgeschlossen, wenn ein Knopf gedrückt wird, siehe Anleitung zu dem Display.

    Edited once, last by peuler: Habe die Antwort auf meine Frage eben selbst herausgefunden. (November 17, 2023 at 10:41 AM).

  • Post by keulemaster (February 3, 2024 at 10:29 PM).

    The post was deleted, no further information is available.
  • Moin!

    Stand: 08.05.2026

    Ich mache mal einfach in meiner Serie weiter. Falls es nicht sein soll, dann mache ich gerne ein neues Thema auf. Also melden!!

    Angeregt durch einige Anfragen im Forum bezüglich SPi-Displays und Raspberry Pi Os auf Basis von Debian Trixie und dem Beitrag von Benandi habe ich mir gedacht, guckt doch mal...
    Benandi nutzt das overlay piscreen. Also erstmal mit dtc das overlay ansehen. Das Ergebnis:piscreen@0 {  compatible = "ilitek,ili9486"; Gut, das ist auch mein Displaycontroller.

    ACHTUNG: Nicht einfach übernehmen, sondern erst kontrollieren welcher Controller in dem Display arbeitet!!!
    Der Grafikchip muss initialisiert werden. Falsche Initdaten und das Display ist eventuell hin!!

    Also, meinen Raspberry Pi 3 Model B Rev 1.2 und das Display raus gekramt und eine SD mit dem aktuellen 64er Lite erstellt. Update/Upgrade gemacht. In der /boot/firmaware/config.txt den Eintrag dtoverlay=piscreen eingefügt und neu gestartet.

    Das war es schon. Ich sehe Hochlaufmeldungen und kann mich mit einer externen Tastatur anmelden und Alles machen was man so im Terminal machen kann. Selbst raspi-config wird richtig dargestellt.

    Obwohl ich nicht von Grösse des Displays oder sonstwas angegeben habe, wird alles richtig eingestellt:

    Code
    ads7846 spi0.1: touchscreen, irq 185
    input: ADS7846 Touchscreen as /devices/platform/soc/3f204000.spi/spi_master/spi0/spi0.1/input/input7
    fb_ili9486: module is from the staging directory, the quality is unknown, you have been warned.
    SPI driver fb_ili9486 has no spi_device_id for ilitek,ili9486
    fb_ili9486 spi0.0: fbtft_property_value: regwidth = 16
    fb_ili9486 spi0.0: fbtft_property_value: buswidth = 8
    fb_ili9486 spi0.0: fbtft_property_value: debug = 0
    fb_ili9486 spi0.0: fbtft_property_value: rotate = 270
    fb_ili9486 spi0.0: fbtft_property_value: fps = 30

    In dem nächsten Beitrag nehme ich mir eine Desktopversion vor.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Bernd666 May 8, 2026 at 11:22 PM

    Changed the title of the thread from “Displays mit SPI-Anschluss unter Raspberry PI OS (bullseye/bookworm)” to “Displays mit SPI-Anschluss unter Raspberry PI OS (bullseye/bookworm/trixie)”.
  • Moin!

    Nun wende ich mich dem Raspberry Pi OS (64) with Desktop zu.
    Wieder frisch installiert und update/upgrade gemacht. Im Gegensatz zur Lite-Version muss nun etwas mehr gemacht werden.

    In der /boot/firmware/config.txt habe ich dtoverlay=piscreen,drm eingetragen und den Eintrag #dtoverlay=vc4-kms-v3d mit der # als ungültig markiert. Dann einen Reboot. Man sieht keinen Splashschirm, aber, oh Wunder, der Desktop ist da. In der richtigen Grösse und Alles sichtbar. Die Touchfunktion scheint auch zu gehen, aber es ist kein Cursor sichtbar. Ist dann schon blöd.

    Mit einer externen Tastatur kann man nun arbeiten. Man bedenke, das System nutzt nun Wayland!

    Nun wollte ich wissen, ob es im X11-Modus auch so ist. Also in raspi-config den X11-Modus aktiviert und Reboot. Auch nun sieht man den Desktop bzw. die Anmeldemaske und einen Cursor. Nun kann man auch sehen wenn man mit einem Gegenstand das Disolay berührt, wie der Cursor mitgeht. Nur war es bei mir etwas falsch eingestellt. Nun hat das Overlay noch mehr Parameter. Siehe /boot/firmware/overlay/README. Nach einigen Test steht bei mir, in der config.txt, nun das dtoverlay=piscreen,drm,invx drin.

    Man kann nun mit dem System arbeiten.

    Was mir so aufgefallen ist. Die Touchfunktion ist an den Rändern relativ ungenau. Eine Kalibrierung kann nicht durchgeführt werden. Ob es Sinn macht xserver-xorg-input-evdev und xinput-calibrator zu installieren, wage ich zu bezweifeln. Kann sein das sich dann 2 Funktionen beharken.

    Beim Starten sieht man entweder ein großes Bild oder nichts, Je nachdem was man eingestellt hat. Splash oder kein Splash. Das kann man ändern indem man ein paar Zeilen in die config.txt schreibt. Dann ist das Bild kleiner und darunter ist dann der Hochlauftext.

    Code
    hdmi_force_hotplug=1
    hdmi_group=2
    hdmi_mode=1
    hdmi_mode=87
    hdmi_cvt 480 320 60 6 0 0 0
    hdmi_drive=2

    Witzig ist auch, das sich die Einstellmöglichkeiten bei raspi-config ändern. Hat man Wayland eingeschaltet, dann kann man eine Bildschirmtastatur aktivieren, beim Splash hat man die Wahl zwischen Bild und reinem Text. Das ist bei X11 einfach nicht mehr da.

    Wer will kann ja damit mal spielen. Insbesondere würde mich interessieren, ob es auch mit einem RPi5 geht. Weil ich habe keinen und will auch keinen.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

    Edited once, last by Bernd666: Heroes entfernt und weiter geschrieben (May 9, 2026 at 10:57 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!