LCD-Display HD44780 20×4 unter Openelec und Kodi(XBMC) an der Raspberry Pi

Anleitung auf english/german

Ich habe mir ein 20×4 Display mit der HD44780-Schnitstelle gekauft.

Das Ziel ist, dass unter Kodi(XBMC) mit Openelec in dem Display zusätzliche Informationen angezeigt werden.

2013-09-13 18.05.10

2013-09-13 18.05.40

 

Angeschlossen wird das Display wie folgt.

HD44780 Pin Nr. Symbol Funktion RaspberryPi Pin RaspberryPi Symbol
1 VSS Stromversorgung GND 6 GND
2 VDD Stromversorgung +5V 2 +5V
3 V0 Kontrastspannung 6 GND
4 RS H=Data Register (RW); L=Instruction Register 26 GPIO 7
5 R/W Datenleitung: H=Read; L=Write 6 GND
6 E Signal Enable 24 GPIO 8
7 DB0 Datenleitung 0
8 DB1 Datenleitung 1
9 DB2 Datenleitung 2
10 DB3 Datenleitung 3
11 DB4 Datenleitung 4 22 GPIO 25
12 DB5 Datenleitung 5 18 GPIO 24
13 DB6 Datenleitung 6 16 GPIO 23
14 DB7 Datenleitung 7 12 GPIO 18
15 LED+ Hintergrundbeleuchtung + 2 +5V
16 LED- Hintergrundbeleuchtung GND 6 GND

Zwischen Pin3(HD44780) und PIN6(RPI) kommt ein 10kOhm-Poti, zum Einstellen des Kontrastes.
Zwischen Pin15(HD44780) und PIN2(RPI) kommt ein 1kOhm-Poti, zum Einstellen der Hintergrundbeleuchtung.
Ich habe mir dazu erst eine kleine Lochraterleiterplatte angefertigt.
Später habe ich eine kleine Leiterplatte gefräst.

Display unter Kodi(XBMC)-Openolec aktivieren

Um das Display nun unter Openelec mit Kodi zum laufen zu bekommen sind folgende Schritte notwendig:

  • Die folgenden Downloads(HD44780.soLCDd.confLCD.xml) habe ich unter Windows erledigt, siehe weiter unten einige zusätzliche Hinweise. Alle Downloads habe ich in den Ordner “\\OPENELEC\downloads” abgelegt. Auf diesen beziehe ich mich in der folgenden Erklärung.
    Achtung! Bei der neuen RaspberryPi2 bitte diesen Treiber nutzen (HD44780.so)
  • Die Datei LCDd.conf in der Konsole mit  “cp /storage/downloads/LCDd.conf /storage/.config/LCDd.conf” kopieren.
    • Wenn man nicht meine Datei nutzt, so muss man in der LCDd.conf die Zeile “DriverPath=/usr/lib/lcdproc/” suchen und in “DriverPath=/storage/downloads/”ändern, bzw. den Pfad wo man den Treiber(HD44780.so) speicherte.
    • Dann den “Driver=***” in “Driver=HD44780” ändern.
    • Danach suchen wir in der selben Datei nach dem Abschnitt ## Hitachi HD44780 driver ## und ändern folgende Parameter
    • ConnectionType=rpi (auf der Raspberry Pi)
      ConnectionType=raspberrypi
      (auf der Raspberry Pi 2)
    • Size=20×4 (hier die Größe des eigenen Display angeben)
    • Falls die GPIO-Ports anders belegt sind kann die Belegung wie folgt angegeben werden:
      • D7=18
      • D6=23
      • D5=24
      • D4=25
      • RS=7
      • EN=8
      • Die Zahl nach dem Gleichheitszeichen gibt nicht den Raspberrypin von P1 sonder den GPIO-Pin an. D7=18 wäre also der Pin12 von der Steckerleiste P1 auf der Raspberry.
  • In den Openelec-Setting den “LCD Treiberunterstützung aktivieren” aktivieren und auf HD44780 einstellen.
  • In den ADD-ONs unter Dienste den “XBMC-LCDproc” installieren und aktivieren.
  • Damit deutsche Umlaute angezeigt werden können muss noch in der Konfiguration des Plugins der alternative Zeichensatz eingeschaltet und auf den Zeichensatz “HD44780 ROM-A00” eingestellt werden.
  • Reboot der Raspberry

Jetzt sollte das Display laufen.

  • Wenn nicht, in der Konsole den Befehl “LCDd -c /storage/.config/LCDd.conf -d hd44780 -s true” ausführen. In manchen installationen wird erst nach diesem Befehl das GPIO-Mapping korrekt geschaltet. Dieser Befehl ist aber nur einmal notwendig, danach läuft das Display.

In der “/storage/.kodi/userdata/LCD.xml” kann nun eingestellt werden was angezeigt wird.
Kopieren mit “cp /storage/downloads/LCD.xml /storage/.kodi/userdata/LCD.xml”.
Oder vom PC aus unter “\OPENELEC\Userdata\LCD.xml” einfügen und bearbeiten.
Unter der Website LCDs kann man entnehmen wie die Datei LCD.xml aufgebaut ist.

Falls eine Prozessbar angezeigt werden soll. Diese scheint nur in der ersten Zeile zu funktionieren.

Wenn die Raspberry neu gestartet wird, wird das Display erst aktiviert, wenn in Kodi der Treiber gestartet wird.
Es dauert also einige Sekunden bis auf dem Display was erscheint.

Viel Spass

Meine Dateien zum download:

HD44780.so (Raspberry Pi)
HD44780.so (Raspberry Pi 2)
LCDd.conf
LCD.xml

Einige zusätzliche Hinweise:

Wenn die Raspberry im gleichen Netzwerk wie der PC ist, kann man unter Windows auf die SD-Karte im Dateiexplorer mit “\OPENELEC” zugreifen.
Dies sollte auch unter Linux gehen, aber ich empfehle SSH zu nutzen.
Mit dem Programm “Putty” kann man eine Konsole per SSH zur Raspberry öffnen.
Logindaten: User:”root”, Passsword:”openolec”
Diese Konsole habe ich benutzt um die Befehle in der Anleitung einzugeben.

Sascha Linz gefällt dieser Artikel

33 Kommentare

  1. Raspberrypinutzer Raspberrypinutzer
    4. Januar 2014    

    Hallo ich bin noch sehr neu in diesem gebiet habe es auch recht gut verstanden aber ich finde bei mir die verzeichnisse nicht ich weiss etwas doof aber ich wolte mal nach fragen ob sie eine auch für doofe wie mich ferständliche anleitung verfassen können also was man nach dem booten tuen muss um in die verzeichnisse zu kommen und so was eben weile die anleitung hier verstehe ich leider nur teils

    • 4. Januar 2014    

      Hallo,

      Ich werde demnächst die Anleitung überarbeiten.
      Allerdings erst nach meinen Krankenhausaufenthalt.

      Unter Windows benutze ich Putty um mit der Raspberry zu kommunizieren.

      Gruß
      Micha

  2. Raspberrypinutzer Raspberrypinutzer
    4. Januar 2014    

    kann man das auch mit einem 2×16 display mit kontroler der gleichen art auch so machen (bis auf das änder der xml datei auf jeweils zweizeilen und 16 zeichen)

    • 4. Januar 2014    

      Hallo,

      Soweit ich weis, muss nur in der LCDd.conf nur die Zeile Size=20×4 auf 16×2 angepasst werden.

      Gruß
      Micha

  3. Jürgen Jürgen
    12. Februar 2014    

    Hi, gibt es ein Problem wenn man am Pi auch gleichzeitig einen Infrarot Empfänger betreibt?

    • 12. Februar 2014    

      Hallo,

      Leider habe ich mit Infrarot Empfänger keine Erfahrung.
      Bei mir wird die XBMC Raspberry über das HDMI-Kabel mit der TV-Fernbedienung gesteuert.
      Ich habe einen Samsung-TV, da hat das Openelec das Protokoll selbst erkannt und eingerichtet.

      Gruß
      Micha

  4. Jürgen Jürgen
    13. Februar 2014    

    Ich habe an den Pins 1,6 und 12 einen IR Sensor dran. Das funktioniert auch wunderbar mit meiner Logitech harmony und der Einstellung für Windows MCE. Was passiert wenn die Pins nun von einem Display quasi doppelt belegt werden?
    Display wäre schon klasse. Hatte ich an meiner X Box mit XBMC auch und man musste nicht immer den TV anmachen um zum Musik hören durch die Menues zu navigieren.
    Gruss
    Jürgen

    • 13. Februar 2014    

      Doppeltbelegungen der GPIO-Ports können zur Beschädigung des GPIO-Bausteines auf der Raspberry führen.

      Pin1 und Pin6 sind unkritisch, das sind Betriebsspannung und Masse.

      Aber die doppelte Belegung von Pin12 wird Probleme machen.

      Den Pin12 für das Display ummappen? Da wüsste ich jetzt nicht wo, ich denke dazu müsste die HD44780.so neu compiliert werden.

      Wenn man den IR-Sensor auf Pin11 oder Pin15 legen könnte, dann sollte alles parrallel laufen können.

      Gruß
      Micha

    • 1. März 2014    

      Hallo,

      Ich habe mich mal umgesehen.
      Eventuell kann man durch einen Eintrag in der LCDd.conf die Pins ummappen.

      Nach der Zeile “ConnectionType=rpi” im [hd44780]-Teil folgendes eingeben und probieren:

      #**********
      D7=18
      D6=23
      D5=24
      D4=25
      RS=7
      EN=8
      #**********
      Die Zahl nach dem Gleichheitszeichen gibt nicht den Raspberrypin sonder den GPIO-Pin an. D7=18 wäre also der Pin12 auf der Raspberry.

      Ich hoffe dies klappt.

      Gruß
      Micha

  5. BeermanLuke BeermanLuke
    28. Februar 2014    

    Hi Michael,

    Any chance of emailing the source code? I have a project that also uses Pin12 of the Pi and it cannot be remapped.

    Luke (England)

    • 28. Februar 2014    

      Hi,

      I don`t have any sourcecode.

      But you can try to config the Pins in the LCDd.conf
      Add after the row “ConnectionType=rpi” in the [hd44780]-Part the follow part:
      #**********
      D7=18
      D6=23
      D5=24
      D4=25
      RS=7
      EN=8
      #**********

      The number after the equal is the GPIO-Port not the Pin.
      Pin 12 ist GPIO18

      Best Regards
      Michael

  6. Norbert Norbert
    21. April 2014    

    Die in dieser Anleitung verwendeten Displays nutzen alle, wenn ich es richtig verstanden habe, den HD 44780 Treiber. Würden auch Displays mit SPI funktionieren, wie z.b. hier:

    • 21. April 2014    

      Sorry, diese Frage kann ich leider nicht beantworten.

      Ich war glücklich, als ich im Internet endlich genug Informationen zusammen hatte um das HD44780 zu nutzen.

      Im Prinzip sollte es mit dem richtigen Treiber auch über SPI klappen, aber wie? Das kann ich nicht beantworten, sorry.

  7. Norbert Norbert
    23. April 2014    

    So das mit dem SPI Display ist geklärt, es gibt (leider) keinen Treiber (zumindest habe ich keinen gefunden), mit dem man auch SPI Displays nutzen kann. Eine Frage hätte ich aber noch, in dem Tutorial ist von OpenElec die Rede, würde das auch unter Raspbmc funktionieren?

    • 23. April 2014    

      Ich denke, dass es funktionieren sollte.
      Falls die Ordnerstruktur anders ist muss ggf der Driverpath in der LCDd.conf angepasst werden.
      Da ich aber bisher nur mit Openelec gearbeitet habe ist dies nur eine Vermutung.

  8. 4. Mai 2014    

    Nachdem ich gestern die Openelec-Beta getestet habe musste ich feststellen, dass in der Videohardware der LCD/VDO Eintrag entfernt wurde.
    Dadurch funktionierte das Display mit XBMC-Gotham nicht mehr.

    Durch einige Versuche habe ich es aber geschafft, dass das Display wieder funktioniert.

    Ich habe die Anleitung überarbeitet und die jetzige Anleitung funktioniert sowohl unter XBMC 12 als auch XBMC 13.

  9. Dirk Fortmann Dirk Fortmann
    6. Juni 2014    

    Hallo Michael,
    danke für die Anleitung.
    Funktioniert fast tadellos. Allerdings verschluckt sich das Display ab und an beim Booten. Ich hab dann Unlesbares auf dem Display.
    Neustart hilft.
    Ne’ Idee?

    Danke & Grüsse: Dirk

    • 6. Juni 2014    

      Hallo,

      Leider habe ich da keine wirkliche Idee.
      Bei mir habe ich das Verschlucken bisher zum Glück nicht gehabt.

      Gruß
      Michael

      • Dirk Fortmann Dirk Fortmann
        24. Juni 2014    

        Hallo Michael,
        danke für die Antwort.
        Verschlucken tut sich das Display nur bei einem Reboot…
        Schalte ich es aus und starte neu dann ist alles ok…

        Damit muss ich anscheinend leben.

        Danke & Grüsse: Dirk

  10. Wolfgang Wolfgang
    20. April 2015    

    Hallo Michael.
    Danke für die Anleitung. Leider wird bei mir ausser “Willkommen bei Openelec” nichts angezeigt.
    LCD.xml ist in .KODI/userdata
    Hast Du einen Tipp für mich
    Danke
    Wolfgang

    • 29. April 2015    

      Hallo Wolfgang,

      Kopiere die .KODI/userdata bitte in die /storage/.kodi/userdata.
      Vergewissere Dich, dass das Addon “XBMC-LCDproc” aktiv ist.

      Notfalls meine englische Anleitung versuchen.

      Gruß
      Michael

  11. Dan Dan
    15. Juli 2015    

    Bekommt man das auch unter OSMC zum laufen?
    Meiner Meinung nach, sollte das genau so funktionieren.
    Aber selbst unter dem aktuellen Build will das nicht so, hast du vielleicht ein Hinweis für mich?
    (Habe den RPi B+ 2011.12)

    • 15. Juli 2015    

      Hallo,

      OSMC kenne ich nicht, aber wenn es auch ein Plugin hat mit dem man LCDs ansteuern kann, könnte es eventuell funktionieren.

      Ich denke ich kann da aber nicht wirklich helfen, sorry.

      Liebe Grüße
      Micha

      • Dan Dan
        16. Juli 2015    

        OK, Danke.
        Ich denke ich werde wohl auf OpenELEC umsteigen.
        Weder unter dem (alten) RaspBMC, noch unter dem (neuen) OSMC wird auf dem LCD was angezeigt.

  12. Mario Mario
    2. August 2015    

    Hallo Michael,

    ich bin exakt nach deiner Anleitung vorgegangen. Display 4*20, Belegung genau wie oben, RaspPi 2 (entsprechende Datei wurde heruntergeladen)
    Leider bekomme ich nichts aufs Display, nur die 1. und 3. Zeile leuchten komplett dauerhaft.
    In OpenElec und XBMC sind die entsprechenden Schritte aus ausgeführt worden.
    “LCDd -c /storage/.config/LCDd.conf -d hd44780 -s true” bewirkt nichts 🙁
    ps aux gibt mir aus’: “458 nobody 0:07 /usr/sbin/LCDd -f -c /storage/.config/LCDd.conf -d hd4478” (eingeloggt als root per KiTTY)

    Ich sitzte schon seit gestern und bin langsam am Verzweifeln.
    Hast Du nen Tip für mich?
    Danke

    • Mario Mario
      2. August 2015    

      ich hab die Lösung hier gefunden:
      http://openelec.tv/forum/124-raspberry-pi/68559-how-to-install-a-hd44780-lcd-display#133285

      Zitat:
      “So you’ve to replace the one in the provided archive AND also, you’ve to replace
      ConnectionType=rpi
      by
      ConnectionType=raspberrypi
      in LCDd.conf”

      Wünsche noch einen schönen Sonntag

      • 4. August 2015    

        Sorry für die späte Antwort, hatte viel zu tun.

        Dann ist da zwischen der RPi B und der RPi2 wohl doch noch ein Unterschied mehr.
        Danke für den Hinweis, ich habe ihn in der Anleitung integrieren.

        Gruß
        Micha

  13. Matthias Matthias
    23. November 2015    

    Hallo Michael, zunächst mal vielen Dank, mit deiner idiotensicheren Anleitung habe ich es zum Laufen bekommen. Allerdings hätte ich eine Frage. Weiß du, ob bei einem deiner Leser das mit dem GPIO Mapping schon mal geklappt hat? Ich habe versucht, die benötigten GPIOs zu ändern, aber es funktioniert nicht.

    • 24. November 2015    

      Hallo Matthias,

      Ich hatte selber bevor meine Adapterplatine fertig war das GPIO Mapping probiert.
      Wichtig ist hierbei, dass man in der Config den GPIO-Port angibt.
      Und nach dem Mapping muss man den Befehl “LCDd -c /storage/.config/LCDd.conf -d hd44780 -s true” ausführen.

      Danach müsste es klappen. Jedenfalls hatte es bei mir damals so geklappt.

      Gruß
      Micha

      • Matthias Matthias
        24. November 2015    

        Ok, genau das hatte ich versucht. Ich habe nur deine Config folgerndermaßen abgeändert

        D7=13
        D6=16
        D5=19
        D4=26
        RS=21
        EN=20

        und anschließend den o.g. Befehl ausgeführt. Irgendwo hat sich da bei mir noch der Fehlerteufel eingeschlichen.

        • 24. November 2015    

          Hmm, Du scheinst eine Raspberry Pi 2 zu nutzen.
          Den Treiber(44780.so) für die Pi2 nutz Du denke ich, der ist ja anders als bei der PiB.
          Ich habe selber nur die PiB, da hatte das Ummappen geklappt.
          Schade, dass ich nicht wirklich helfen kann, sorry.

  14. 24. April 2017    

    Very good blog post.Thanks Again. Awesome.

  15. 27. August 2017    

    Die Links waren tot, jetzt sollten sie aber wieder gehen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.