[Raspberry Pi] VDR-Bedienpanel mit Display

  • Hallo zusammen


    Nachdem der erste Versuch mit dem Prototyp einwandfrei funktioniert, habe ich mir eine saubere Platine gebastelt:


    Die Funktionen:
    - 9 Tasten, als Event-Device mittels remote-Plugin nutzbar
    - IR-Empfänger, nutzbar mit lirc_rpi.ko
    - 160x128px SPI-Display , mit fbtft als Framebuffer mit dem graphTFT-Plugin nutzbar
    - zusätzliche mini-USB-Buchse in HDMI-Richtung für die 5V-Stromversorgung
    - Stiftleiste für GPIO14 (TxD) und GPIO15 (RxD)


    Einmal "Regular" mit Modell B:
    [Blocked Image: http://www.reufer.ch/vdr/rpi/RET_9933.jpg]


    Und einmal "Slim", Modell A, ohne Composite-Buchse und "tiefergelegt":
    [Blocked Image: http://www.reufer.ch/vdr/rpi/RET_9935.jpg]



    Angehängt sind Schema und PCB als Eagle-Projekt im ZIP-Archiv, sowie der Kernel-Patch, damit die Devices beim Start auch angelegt werden (ich nutze aktuell 3.13, sollte aber auch mit älteren Kernelversionen funktionieren).


    Mit folgenden Kernel-Parametern lässt sich die primäre Konsole aufs TFT-Display umleiten und der TV am HDMI bleibt textfrei:

    Code
    1. fbcon=map:10 fbcon=font:ProFont6x11


    Ich selber plane keine Sammelbestellung, falls aber jemand sowas fürs Portal organisieren möchte, ist das selbstverständlich ok. Eine kommerzielle Nutzung des Layouts ist nicht erwünscht.


    Viel Spass beim Basteln! ;)


    Gruss
    Thomas

  • schöne Arbeit,


    gleich eine Frage dazu, P6 auf dem RPI hast Du beschaltet, aber im Schematic hast Du Reset nicht verdrahtet. Ein Reset Taster als Einschalter halte ich grundsätzlich für sinnvoll und ist bei mir auch aktiv, der kann wohl auch einige SD Karten Chrashs verhindern

  • gleich eine Frage dazu, P6 auf dem RPI hast Du beschaltet, aber im Schematic hast Du Reset nicht verdrahtet. Ein Reset Taster als Einschalter halte ich grundsätzlich für sinnvoll und ist bei mir auch aktiv, der kann wohl auch einige SD Karten Chrashs verhindern

    P6 ist zwar bestückt, dient aber nur als mechanische Stütze, damit das Ganze gerade auf dem Rpi sitzt. Den Reset-Taster hatte ich mir auch überlegt, aber der hatte keinen Platz - und da ich den noch nie gebraucht habe, war das Thema schnell vom Tisch.


    Gruss
    Thomas

  • Danke fürs Zeigen. Mir gefällt das Projekt sehr gut.


    Nur lohnt sich für mich alleine der ordentliche Nachbau nicht so richtig wirklich.
    Wenn es genügend Interesse gibt könnte ich 5-8 Platinen davon abgeben und ich würde mir dann auch 1-2 davon bauen...

  • Hi,


    ich sehe gerade, dass das Display keine 6$ Kostet. Bei dem unerwartet niedrigem Preis ist das ganze ja durchaus interessant selbst wenn es nur als Spielerei herhalten muss.
    Kannst Du grob sagen, was der gesamte Aufbau kostet?
    Und was mich auch noch interessieren würde.
    - Kannst Du abschätzen wie Aufwendig es wäre das ganze für ein größeres Display zu realisieren z.B. einem 2.4" mit 320x240 Pixeln?
    - Kannst Du sagen ob sich z.B. dieses Touch Display (das die gesammte Grundfläche des RPIs abdecken würde) auch problemlos anschließen ließe: http://www.ebay.com/itm/1pcs-NEW-3-5-TFT-LCD-Module-Display-Touch-Panel-PCB-adapter-/141195263232?pt=LH_DefaultDomain_0&hash=item20dfe4bd00


    Claus

    MLD 5.4 mit vdr 2.4.1 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.4 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.4 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

    The post was edited 1 time, last by clausmuus ().

  • Hallo,


    das teil habe ich und bin sehr zufrieden damit.
    Man kann noch vier Tasten auflöten.


    PiTFT Mini Kit - 320x240 2.8" TFT+Touchscreen für Raspberry Pi


    Gruß
    spacy

  • Hi Claus

    Kannst Du grob sagen, was der gesamte Aufbau kostet?

    Alles in allem etwa 20 Euro pro Stück - de PCBs haben als 10er-Serie ca. 80 Euro gekostet, aber das geht bestimmt noch günstiger. Neben Display und PCB sind die Stecker auch releativ teuer, die Tasten kosten kaum was.


    Kannst Du abschätzen wie Aufwendig es wäre das ganze für ein größeres Display zu realisieren z.B. einem 2.4" mit 320x240 Pixeln?

    Das gibt's schon, von Adafruit . Hab ich hier auch am laufen, allerdings habe ich noch ein Problem mit graphtft und dem Touchscreen. Hat allerdings geringe Priorität und ist für mich eher eine Spielerei, wahrscheinlich werde ich das grosse Display eher für meine kleine 1wire-Wetterstation einsetzen.


    Gäbe es denn die Möglichkeit, den Kernel-Patch aus dem ersten Posting mit in die MLD-Distribution aufzunehmen? Fände ich nämlich eine spannende Kombination, wenn die Erweiterung von MLD unterstützt würde - das käme meiner Idealvorstellung eines kleinen, portablen VDRs recht nahe!


    Gruss
    Thomas

  • Hi Thomas,


    kannst Du mir sagen welche Kernel Module mit welchen Optionen geladen werden müssen und mit welchem Parameter das graphtft Plugin gestartet werden muss, damit das Display und die Tasten funktionieren.
    Oder hast Du das bereits irgendwo beschrieben?
    Das lirc_rpi von GPIO Pin 22 lesen muss habe ich bereits herausgefunden.


    Und wie kann ich die Tasten auf der Kommandozeile testen? Müsste nicht direkt nach dem Booten ein input device auftauchen, wenn der Kernel mit Deinem vdrshield Patch versehen und diesen in der Kernel Konfiguration aktiviert habe?


    Claus

    MLD 5.4 mit vdr 2.4.1 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.4 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.4 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • OK, ich bin ein wenig weiter. Das matrix_keypad Modul wurde nun automatisch geladen und ein input Device erzeugt. evtest zeigt es mir auch an, nur reagiert es nicht auf Tastendrücke. Muss dem modul noch mitgeteilt werden, an welchen GPIO Pins die Tasten angeschlossen sind?


    Claus

    MLD 5.4 mit vdr 2.4.1 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.4 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.4 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Hi Claus

    OK, ich bin ein wenig weiter. Das matrix_keypad Modul wurde nun automatisch geladen und ein input Device erzeugt. evtest zeigt es mir auch an, nur reagiert es nicht auf Tastendrücke. Muss dem modul noch mitgeteilt werden, an welchen GPIO Pins die Tasten angeschlossen sind?

    Ja, das muss man, ebenso die dazugehörigen Tastencodes. Wie man das per Modul macht, weiss ich nicht - ich habe bei mir den Kernel gepatcht (siehe 1. Posting), so wird das gleich zu Beginn alles richtig instanziert. Evtest sollte dann eigentlich auch funktionieren.


    Gruss
    Thomas

  • Hi,


    den Kernelpatch habe ich auch bereits installiert, und evtest zeigt mir auch die Tastenbelegung an, also welche Events gesendet werden können.


    Noch mal zum Display. Mit welchem Parameter muss das fbtft_device Modul geladen werden. Das muss doch manuell geladen werden, oder?


    Claus

    MLD 5.4 mit vdr 2.4.1 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.4 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.4 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Hi,


    Kommando zurück. Die Tasten gehen jetzt doch. Gestern war wohl bei den ganzen Testen irgendwann der Treiber durcheinander gekommen.


    Bleibt also nur noch der Grafik Treiber. Was muss ich machen, damit ein /dev/fb1 Device angelegt wird? Es ist doch richtig, das die Treiber ein /dev/fb1 Device anlegen sollen, oder?


    Claus

    MLD 5.4 mit vdr 2.4.1 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.4 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.4 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Ich bin nun noch nen bischen schlauer. Sobald ich lircd mit --uinput starte, funktioniert das keypad nicht mehr. Jedenfalls kommen dann keine Tastendrücke mehr bei evtest an.
    Hat irgend jemand ne Idee dazu, wie ich das fixen kann? Oder was die Ursache dafür ist?


    Claus

    MLD 5.4 mit vdr 2.4.1 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.4 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.4 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Hi,


    Frage: warum verwendest Du lircd und nicht inputlircd?


    Gruss


    Macavity

    Capulet:
    HW: Dell Dimension 3100, Pentium 4 3GHz, 2GB RAM, 160GB HDD (System), 1TB HDD (Video), 1 x TT S2-1600, 1 x Technisat Skystar HD | SW: Debian 7.4, VDR 2.0.4 (selfcompiled), dummydevice 2.0.0, streamdev-server 0.6.1, NFS-Server


    TiViPi01:
    HW: Raspberry Pi Mod. B Rev. 2, 512MB RAM, 8GB SD-Card, Teko TEK-BERRY.9 Gehäuse, Ednet 85024 USB 2.0 Hub, Digitainer X10 Funk-Fernbedienung | SW: Raspbian 01/2014, VDR 2.0.4 (selfcompiled), rpihddevice 0.0.8, ffmpeg 1.0.8, streamdev-client 0.6.1, NFS-Client

  • Hi Claus


    Sorry, war unterwegs und habe nicht alle deine Posts gesehen.

    Mit welchem Parameter muss das fbtft_device Modul geladen werden. Das muss doch manuell geladen werden, oder?


    Also grundsätzlich brauchst du mit dem Kernel-Patch gar keine Module zu laden. Einfach in der Kernel-Config von FBFTF das ST7735R auswählen. Für den Rest sorgt der Patch, wenn BCM2708_VDRSHIELD gesetzt ist:



    (Den Cardreader habe ich übrigens nicht zum laufen gebracht)


    Danach solltest du ein /dev/fb1 haben, und zumindest ein Cursor auf dem Display blinken.


    Gruss
    Thomas

  • Frage: warum verwendest Du lircd und nicht inputlircd?

    Hi Macavity,


    weil ich mit lircd nicht ein vorhandenes input device an ein lirc device weiterleite, sondern ein lirc device an ein input device. inputlircd ist also genau das Gegenteil von "lircd --uinput" (so wie ich lircd verwende).



    Thomas ,


    dann läuft bei mir noch irgendwas falsch, denn obwohl das fb_st7735r Modul geladen ist, habe ich kein /dev/fb1 Device. Ich werd also noch mal prüfen ob der Patch auch wirklich drin ist, und alles nötige neu kompiliert wurde.


    Claus

    MLD 5.4 mit vdr 2.4.1 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.4 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.4 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Hi,


    ich hab den Kernel nun noch mal komplett neu Kompiliert, jedoch ohne eine Änderung. Das /dev/fb1 gibt's noch immer nicht. Ich verwende den Kernel 3.13.10. Der letzte Test war mit dem Kernel 3.13.2.
    Den ST7735R Treiber habe ich als Modul kompiliert und geladen. Ist da noch irgendwas anderes notwendig? Hast Du den Treiber auch mal als Modul geladen? Sind die Zusätzlichen boot Parameter Pflicht? So wie ich das verstanden habe, sind die nur nötig wenn man den Screen bereits beim booten benutzen möchte, und benötigt in dem Fall auch ne angepasste Firmware. Ist die angepasste Firmware in jedem Fall nötig?


    Kannst Du mir mal Deine Kernel Konfig zukommen lassen, damit ich die mit meiner vergleichen kann?


    Claus

    MLD 5.4 mit vdr 2.4.1 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.4 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.4 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Hi Claus


    Den ST7735R Treiber habe ich als Modul kompiliert und geladen. Ist da noch irgendwas anderes notwendig? Hast Du den Treiber auch mal als Modul geladen?

    Nein, ich habe alles statisch in den Kernel gelinkt. Ob der Displaytreiber alleine auch als Modul funktioniert, weiss ich nicht. Evtl. liegt es aber nur am fehlenden GPIO, der das Backlight einschaltet... versuch doch mal, GPIO23 per sysfs auf 1 zu setzen.


    Sind die Zusätzlichen boot Parameter Pflicht? So wie ich das verstanden habe, sind die nur nötig wenn man den Screen bereits beim booten benutzen möchte

    Nein, das fb-mapping bewirkt nur, dass das kleine Display als primäre Konsole benutzt wird.


    und benötigt in dem Fall auch ne angepasste Firmware. Ist die angepasste Firmware in jedem Fall nötig?

    Angepasste Firmware? Davon weiss ich nichts...


    Kannst Du mir mal Deine Kernel Konfig zukommen lassen, damit ich die mit meiner vergleichen kann?

    Klar, mach ich heute Abend!


    Gruss
    Thomas

  • Ich hab inzwischen ein paar weitere Versuche unternommen.
    Erst einmal habe ich die Treiber einkompiliert, was aber nicht geholfen hat. Es gab noch immer kein /dev/fb1 Device.
    Als nächstes habe ich Deine Kernel Konfiguration genommen und lediglich ein paar notwendige Anpassungen vorgenommen. Damit habe ich nun das /dev/fb1 Device und kann das Pannel für die graphtft Ausgabe verwenden.
    Der nächste Versuch mit diversen Anpassungen an meiner Konfiguration kompiliert derweilen. Ob's hilft wird sich dann heute Abend zeigen...
    Bis der Kernel so weit ist, werde ich mir mal anschauen, wie ich den Kernel per cross-compile bauen kann. Diese Experiemte mit den geänderten Konfigurationen ziehen sich ja ansonsten noch über Wochen hin... ;)


    Claus

    MLD 5.4 mit vdr 2.4.1 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.4 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.4 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT