Mit diesem Paket ist es möglich, ein LCD-Modul über verschiedene Schnittstellen an den Fli4l Rechner anzuschließend. (parallel und USB sind direkt über die Fli4l-Konfiguration möglich, seriell muss über den 'Experten'-Modus konfiguriert werden, siehe entsprechenden Abschnitt weiter unten)
Auf diesem Display werden Informationen wie Datum, externe IP-Adresse, die aktuellen Loadwerte und natürlich auch der ISDN- oder DSL-Durchsatz für Up- und Download in kb/s und ein Balken angegeben.
Es können durch den Benutzer Icon's frei definiert werden, die animiert sein können, oder auch erst bei erreichen von definierbaren Schwellenwerten erscheinen (z.B. ein Blitz bei hoher CPU Auslastung).
Es ist möglich Balken darzustellen (auch zwei Balken in einer Zeile), die sich in jegliche Richtung bewegen können (links, rechts, von oben oder unten).
Den Gestaltungsmöglichkeiten sind kaum Grenzen gesetzt - die meisten Grenzen setzt die Größe des Display's ;-)
Zudem können die Anzeigemöglichkeiten durch Plugins nahezu grenzenlos erweitert werden.
Es ist auch ein IMON-Plugin vorhanden, mit dem Statusinformationen abgefragt werden können - d.h. Dauer Onlineverbindung, Übertragungsrate und Menge, usw.
Zum Einsatz kommt dabei eine Software namens lcd4linux in der Version 0.10.1-CVS (von Mitte August 2006).
Auf der Homepage des Projektes
https://ssl.bulix.org/projects/lcd4linuxsind einige Bilder der unterstützten Displays und detailierte Informationen zu den jeweiligen Konfigurationsmöglichkeiten im 'Experten'-Modus.
Möchte man das LCD4Linux-Paket einsetzen, sind noch folgende Variablen zu setzen:
OPT_LCD4LINUX='yes' (Standard-Einstellung: OPT_LCD4LINUX='no')
Zuerst wird das gewünschte Display mit seinen jeweiligen möglichen Zusatzoptionen und, sofern möglich, die Anschlussart konfiguriert. Danach dann, was wo auf dem Display erscheinen soll.
Um die Konfiguration für den Benutzer möglichst einfach zu halten und nicht Zusatzoptionen für ein Display gesetzt werden können, die das Display gar nicht kann, habe ich die häufigsten Displays, bzw. die wofür Supportanfragen kamen, per Default in der Fli4l-Konfiguration vordefiniert.
Sollten Sie ein Display haben welches nicht vordefiniert ist und es wird von lcd4linux unterstützt (siehe dazu obige WebSeite des Projektes), so können Sie den 'Experten'-Modus aktivieren und direkt selbst an der eigentlichen lcd4linux-Konfiguration die gewünschten Änderungen vornehmen.
Zur Zeit habe ich folgende Displays vorkonfiguriert:
- Hitachi HD44780 (parallel und i2c, konfigurierbar) - LCD2USB, ein USB-Anschluss für das Hitachi HD44780 - HYUNDAI HP12542R-DYO (funktioniert nur parallel) - c't includ usb display (USB, das Display wurde im Rahmen eine C't Projektes in einer der Ausgaben Mitte 2006 vorgestellt) Beachten sie bitte, dass Sie nur EINEN Treiber auswählen können/dürfen!
(Standard-Einstellung: LCD4LINUX_HD44780_DRIVER='yes')
Mögliche Werte: generic Standard HD44780 Display Noritake wie 'generic', zusätzlich mit softwaregesteuertem Hintergrundlicht Soekris spezielle Schnittstelle mit BusyFlag Check im 4 Bit Mode HD66712 wie 'generic' nur mit etwas anderen RAM Aufbau, auch für 'KS0073' LCM-162 spezielles Display, häufig in Nexcom Blade Servers (Standard-Einstellung: LCD4LINUX_HD44780_MODEL='generic')
Für sogenannte Soekris-Rechner (spezielle Motherboards des Herstellers Soekris) und WRAP-Rechner gibt es eine weitere Möglichkeit: 'i2c'. Dies ist ein spezieller Bus mit einer besonderen Anschluss-Verkabelung und Steuerung für das Display.
Bezüglich Soekris und WRAP siehe auch: Soekris: http://soekris.hejl.de/ WRAP: http://wiki.port23.de/index.php/Creative.chaos.de
Mögliche Werte: parport oder i2c. (Standard-Einstellung: LCD4LINUX_HD44780_BUS='parport')
Einträge mit '/dev/parports/' beginnend, nennen sich 'ppdev' Konfiguration (ParPortDEVice). Es ist auch eine Konfiguration, wie im LCD Paket, mittels der hexadezimalen Adresse möglich (z.B. '0x378'), dies wird aber seitens der Entwickler nicht empfohlen.
(Standard-Einstellung: LCD4LINUX_HD44780_PORT='/dev/parports/0')
Diese Option ist standardmäßig deaktiviert (sprich: durch die Raute auskommentiert).
(Standard-Einstellung: LCD4LINUX_HD44780_I2C_DEV='/dev/gpio0')
Es gibt leider keine allgemeingültige Regel, wie ein Display angeschlossen werden muss. Daher bietet lcd4linux die Möglichkeit eines sogenannten SoftWiring, d.h. über die Konfigurationsdatei kann jede einzelne Steuerleitung konfiguriert werden.
Da dies für die meisten StandardUser zu kompliziert (da dafür ein hohes technisches Wissen benötigt wird) und zu fehleranfällig wäre, habe ich die am häufigstens vorkommenden Beschaltung ebenfalls vorkonfiguriert. Sollte keine der Optionen auf Ihr Display zutreffen, so können Sie Ihre Beschaltung über den Experten-Modus direkt vornehmen.
Neuere fertig bestückte Displays von Kernel-Concepts benutzen meist die winamp-Variante, die älteren meist die generic-Version.
Mögliche Werte: generic # auch LCD4Linux Wiring genannt (sehr häufig) winamp # ebenfalls eine sehr häufige Beschaltung soekris # spezielle Beschaltung für die Soekris-Boards (Standard-Einstellung: LCD4LINUX_HD44780_WIRE_TYPE='generic')
(Standard-Einstellung: LCD4LINUX_HD44780_ASC255BUG='yes')
Nun folgen einige optionale Konfigurationsmöglichkeiten. Es hängt sehr vom jeweiligen Einzelfall/Display ab, ob die Option unterstützt, bzw. benötigt wird.
Zusätzlich muss allerdings auch der entsprechende Steuerkanal angeschlossen sein. Wenn zwei Controller definiert sind, so wird der ENABLE2 auf SLCTIN des Display's konfiguriert.
Auch hier hängt es sehr vom benutzten Display/Controller ab, ob diese Option benötigt wird oder nicht.
http://www.harbaum.org/till/lcd2usb/zu erreichen. Das Projekt vertreibt keine fertige Hardware, sondern listet dort die benötigten Bauteile und eine Aufbauanleitung. Lediglich fertig geätzte Platinen können dort bezogen werden. Aber es wird nicht schaden, auch nach einem fertig programmierten ATMEL-Controller zu fragen, dann kann man sich einige Bauteile und vor allen Dingen Arbeit sparen.
Möchten Sie ein solches Display benutzen, so setzen Sie die Konfiguration für diesen Treiber auf 'yes'. Die Optionen von LCD4LINUX_HD44780 gelten NUR für über parallel oder i2c angeschlossene Displays.
http://serdisplib.sourceforge.net/Diese Bibliothek kennt ein paar weitere Konfigurationsmöglichkeiten, abhängig vom benutztem Display, die lcd4linux über diese Optionen weitergibt. Zur Zeit ist das für dieses Display lediglich die Option, ob die Anzeige invertiert werden soll.
Dies ist in vier Schritten möglich: 0 normal 1 90 Grad 2 180 Grad 3 270 Grad
Dies ist in vier Schritten möglich: 0 normal 1 90 Grad 2 180 Grad 3 270 Grad
LCD4Linux benutzt ein Konzept namens 'Widgets'. Das sind im Grunde genommen kleine eigenständige Funktionen, die dann irgendetwas machen.
Über 'LCD4LINUX_LAYOUT_x' werden dann diese Funktionen an die ihnen zugedachte Position verwiesen. 'Row1.Col1 :Info:' bedeutet das der Info-Lauftext (die Erklärung welches Widget was macht und wie lang es ist erfolgt weiter unten im Text) an der ersten Position der ersten Zeile startet, und da der Info-Text die ganze Zeile belegt passt da auch sonst nichts mehr hin. Möchten Sie jetzt aber trotzdem, dass vor dem Info-Text noch ein kleines Icon dargestellt werden soll, so müssen Sie die Konfiguration ein wenig ändern.
z.B. in:
LCD4LINUX_LAYOUT_1='Row1.Col1 :Lightning:' LCD4LINUX_LAYOUT_2='Row1.Col2 :Info:'
Beachten Sie bitte, dass dann in diesem Beispiel das letzte Zeichen des Lauftextes 'abgeschnitten' wird, d.h. es kann nicht dargestellt werden, weil das Display nicht groß genug ist. Das ist in dem Fall des Lauftextes nicht weiter schlimm, da ja ohnehin die Zeichen 'weiterwandern' und dann der Text auch erscheint, nur bei anderen Widgets die statisch sind und nicht weiterlaufen, könnte dann das ein oder andere Zeichen fehlen.
Die zur Zeit möglichen Widgets sind in Table 1.1 aufgeführt. (die Info_Tel_x Widget's haben eine wechselnde Anzeige, in Abhängigkeit ob eine 'letzte Rufnummer' vorliegt, darum steht dort ein '-ODER-')
Der LCD4LINUX-Daemon wird dann nicht automatisch gestartet, sondern man muss sich auf die Console verbinden (per ssh oder direkt) und den Daemon im DebugModus starten - man sieht dann direkt evtl. Fehlermeldungen und der Daemon läuft dann nicht als Hintergrunddienst, sondern kann über 'strg+c' abgebrochen werden.
Wenn man nun einen Editor auf dem Fli4l mitinstalliert hat (z.B. den e3) kann man nun unter /etc/lcd4linux/lcd4linux.conf die Konfiguration korrigieren.
Der Aufruf für den LCD4Linux-DebugModus lautet:
'lcd4linux -f /etc/lcd4linux/lcd4linux.conf -Fvv'
13 ____________________________ 1 Draufsicht auf den \ o o o o o o o o o o o o o/ Paralellport, Rück- \ o o o o o o o o o o o o/ seite PC 25 ------------------------ 14
Der Anschluß eines LCD-Moduls an den Router wird folgendermaßen aufgetrennt:
Paralellport-Pin Beschreibung LCD-Modul LCD-Pin 18-25 GND --| GND 1 --|- Brücke R/W 5 --| +5V 2 1 STROBE EN(1) 6 2 D0 D0 7 3 D1 D1 8 4 D2 D2 9 5 D3 D3 10 6 D4 D4 11 7 D5 D5 12 8 D6 D6 13 9 D7 D7 14 14 Autofeed RS 4 17 Select In EN(2) ? (für LCDs mit 2 Controller) Bei Display mit Hintergrundbeleuchtung: HG+ 15 (mit Vorwiderstand ca. 20Ohm) GND 16
An Pin 3 kann der Abgriff eines >= 20kOhm Potis zwischen +5V und GND geschaltet werden. Damit kann der Kontrast des Displays reguliert werden. Bei meinem Display (Conrad) liegt Pin 3 direkt an Masse und man kann alles einwandfrei erkennen.
+5V ---+ / \ <--+ / | \ | GND ---+ +--- VL (Pin 3 - driver input)
Da sich der Anschluss eines 4x40 Displays stark von anderen Displays unterscheidet, hier ein Beispiel (Conrad - NLC-40x4x05):
Paralellport-Pin Beschreibung LCD-Modul LCD-Pin 18-25 --| GND 13 --|- Brücke R/W 10 --| +5V 14 1 STROBE EU (Enable-Upper) 9 2 D0 D0 8 3 D1 D1 7 4 D2 D2 6 5 D3 D3 5 6 D4 D4 4 7 D5 D5 3 8 D6 D6 2 9 D7 D7 1 14 Autofeed RS 11 17 Select In ED (Enable-Down) 15
An Pin 12 kann der Abgriff eines >= 20kOhm Potis zwischen +5V und GND geschaltet werden. Damit kann der Kontrast des Displays reguliert werden. Es kann aber auch reichen, Pin 12 direkt an Masse zu legen um alles einwandfrei erkennen zu können.
+5V ---+ / \ <--+ / | \ | GND ---+ +--- VL (Pin 12 - driver input)
Leider gibt es keinen Standard, was die Pinbelegung des Parallelports auf dem Motherboard betrifft. Für die interne Verwendung von LCD-Modulen muß man also die Anschlüsse anhand des zum Motherboard mitgelieferten Slotblechadapters durchmessen.
Die erforderliche Spannungsversorgung kann man leider nicht dem Parallelport entnehmen, da die Stromaufnahme eines LCD-Modules zu hoch ist. Geeignet dafür sind die Anschlüsse für Maus (PS/2), Tastatur (DIN, PS/2), Gameport oder ein freier Anschluß vom PC-Netzteil. Da einige Soundkartenhersteller am Gameport spezielle Signale generieren, kann keine Garantie übernommen, daß es in jeder Kombination funktioniert. Daher gilt hier: Immer vorher messen!
Dank geht an:
Für Fragen, Anregungen Kritik usw.:
Schreibt eine Email an Christian Brüggemann
Das Fli4l-Team