Mit diesem Paket ist es möglich, ein LCD-Modul an den Parallelport des fli4l Rechners anzuschließen. Auch können nun serielle LCD-Module der Firma Matrix-Orbital verwendet werden. Es gibt ausserdem Filter für spezielle Displays.
Auf diesem Display werden Informationen wie Datum, Uhrzeit, die aktuellen Loadwerte und natürlich auch der ISDN- oder DSL-Durchsatz für Up- und Download in kb/s und ein Balken angegeben.
Möchte man das LCD-Paket einsetzen, sind noch folgende Variablen zu setzen:
OPT_LCD='yes' (Standard-Einstellung: OPT_LCD='no')
Mögliche Werte: 1, 2 und 4.
Achtung: Displays am Parallelport mit zwei Controllerchips (4x16, 4x40 etc.) müssen hier mit 2 Zeilen definiert werden! Die Koordinaten der anzuzeigenden Werte können normal angegeben werden. Der LCD-Treiber entscheidet anhand der Koordinate und der Anzahl der Zeilen, welcher der beiden Kontroller anzusprechen ist.
Die IO-Adresse des LPT-Ports, z.B. '0x278'
Wird ein serielles Display von Matrix-Orbital verwendet, ist hier die verwendete serielle Schnittstelle einzutragen, z.B. 'com1' oder 'com2'. Mit 'none' kann man LAN-Only einstellen, siehe: LCD_LANIP
Es ist möglich, die Ausgabe auf den Bildschirm auszugeben: 'console' oder tty1 wählen den Hauptbildschirm. Dies kann allerdings zur Vermischung mit den normalen Ausgaben führen und ist daher nicht zu empfehlen. 'tty2', 'tty3' ... 'tty9' selektieren andere virtuelle Konsolen, die mit ALT-F2 ... zu erreichen sind. ALT-F1 schaltet dann wieder auf den Hauptbildschirm zurück.
Wichtig: Bisher wurden nur parallele Schnittstellen auf dem Mainboard
oder auf ISA-Schnittstellenkarten unterstützt. PCI-Karten mit
parallelen Schnittstellen konnten nicht verwendet werden.
Diese Version hier erlaubt auch die Konfiguration von parallelen
Schnittstellen auf bestimmten PCI-Karten mit NETMOS-Chips.
Hier zu muss man sich mittels
cat /proc/pci
die erkannten PCI-Geräte anzeigen lassen. Hier sucht man das Gerät mit der passenden Vendor-ID und Device-ID und wählt als io-Adresse den oder die folgenden Einträge aus:
Die Konfigurationsmöglichkeit wurde eingebaut, ohne entsprechende Hardware zum Testen zur Verfügung zu haben. Daher ist das als experimentelles Feature zu betrachten. Bei Fehlern bitte ausführliche Informationen in die Newsgroup posten!
Die IP-Adresse eines 16x2 Displays an einem Pollin AVR-NET-IO im LAN oder andere Displays an ethersex - siehe weitere Variablen (experimentell)
Typ der Firmware. Zur Auswahl stehen: 'pollin' (default) - Original-Firmware AVR-NET-IO 'ethersex' - Firmware von www.ethersex.de mit aktivem LCD
Authentifizierung am ethersex, wenn PAM auf ecmd/tcp konfiguriert wurde. Hier: Benutzername
Passwort zu LCD_LANUSER
Dieses sind zwei Timer-Werte für den IO-Port zum LCD-Display. Werden die Variablen leer gelassen, gelten folgende Standardwerte:
LCD_TIME_LONG='100' LCD_TIME_SHORT='40'
Sollte es Probleme mit dem LCD-Display geben, z.B. wenn wild verteilte Zeichen erscheinen, sollte man diese Werte erhöhen, z.B.
LCD_TIME_LONG='120' LCD_TIME_SHORT='60'
Bei seriellen Displays von Matrix-Orbital sind diese Variablen ohne Bedeutung
LCD_ADDR_TYPE='0' # Fuer HD44780 und kompatible Kontroller LCD_ADDR_TYPE='1' # Fuer HD66712 und kompatible Kontroller LCD_ADDR_TYPE='2' # Obsolet, Funktionalität ist jetzt # in '0' eingebaut
Bei seriellen Displays von Matrix-Orbital ist diese Variable ohne Bedeutung
Es existieren verschiedene Verdratungsvarianten bei fertig bestückten LCD-Displays von Kernel-Concepts, die normale und die Winamp-Verdrahtung. Neuere Displays kommen mit letzterer Variante, dann muss hier ein yes eingetragen werden.
- Filter für spezielle Displays. Zur Zeit gibt es Filter für - ipc_a78 Displays
LCD_FILTER='mo2ipc_a78' # Fuer mo2ipc_a78 Displays
Die hier eingetragene Meldung wird beim Systemstart kurz nach Laden der Treiber auf das Display ausgegeben. Sie sollte die Länge einer Zeile nicht überschreiten, da anderenfalls die vollständige Ausgabe des Textes nicht garantierte werden kann.
Die hier eingetragene Meldung wird beim Herunterfahren des Systems auf das Display ausgegeben. Sie sollte die Länge einer Zeile nicht überschreiten, da anderenfalls die vollständige Ausgabe des Textes nicht garantierte werden kann.
Die hier eingetragene Meldung wird beim Rebooten des Systems auf das Display ausgegeben. Sie sollte die Länge einer Zeile nicht überschreiten, da anderenfalls die vollständige Ausgabe des Textes nicht garantierte werden kann.
Gibt an, ob das Programm isdn_rate gestartet werden soll.
Ulf Lanz hat das Ausgabeformat im isdn_rate-Programm so variabel gestaltet, dass jeder Anwender die Anzeige seinen Wünschen gemäß zusammenstellen kann.
Bei LCD_TYPE_N ist die Anzahl der auszugebenden Datentypen anzugeben. Diese Datentypen werden immer angezeigt, egal ob man Online oder Offline ist.
LCD_TYPE_x gibt den Datentyp, die Spalte und die Zeile an, wo die gewünschte Information auf dem Display erscheinen soll. Der Datentyp ist numerisch codiert. Die möglichen Werte sind in Table 1.1 aufgeführt.
Die beiden nächsten Zahlen in LCD_TYPE_1 geben die Position an. Format: ``Spalte Zeile'', wobei beide Zahlen bei 0 beginnen.
Beispiel:
LCD_TYPE_1='4 10 1' # Status in der 2. Zeile, ab Spalte 11 | | | | | \-- Zeile im Display | \----- Spalte im Display \------- Anzeigentyp laut Tabelle
Für Type 39 (fixed text) ist obiges Format noch um den Text zu erweitern der angezeigt werden soll.
Beispiel:
LCD_TYPE_2='39 10 1 Hallo' # Text "Hallo" in der 2. Zeile # ab Spalte 11
Die Typen 40 - 43 holen sich den Text, der angezeigt werden soll, aus den Dateien, die in der Typenliste erwähnt sind. Diese Dateien werden während der Laufzeit jede Sekunde eingelesen und angezeigt. Sie können von anderen Programmen (z.B. telmond) geändert werden. Damit kann man sich z.B. auf dem Display anzeigen lassen, dass man neue E-Mails hat, auch wenn man Offline ist (MyJack). Die Standardtexte für die Datentypen 40-43 werden mit folgenden Variablen definiert (und beim Starten des Systems in temporärren Dateien zwischengespeichert, deren Namen einfach immer durch Einfügen des Indizes in die Zeichenkette ``/etc/lcd_text<Zahl>.txt'' definiert wird):
LCD_VAR_TEXT_1='Text 1' # -> /etc/lcd_text1.txt LCD_VAR_TEXT_2='Text 2' # -> /etc/lcd_text2.txt LCD_VAR_TEXT_3='Text 3' # -> /etc/lcd_text3.txt LCD_VAR_TEXT_4='Text 4' # -> /etc/lcd_text4.txt
Ab der Version 1.6.2 ist es auch möglich, in Abhängigkeit vom Onlinestatus verschiedene Texte anzeigen zu lassen. Z.B. kann nun während man Online ist, die aktuelle Onlinezeit angezeigt werden und wenn man Offline ist, wird an gleicher Stelle das Datum und die Uhrzeit angezeigt. Dafür sind folgende Variablen hinzugekommen:
Bei LCD_TYPE_ONLINE_N ist die Anzahl der auszugebenden Datentypen anzugeben. Diese Datentypen werden nur angezeigt wenn man Online ist.
LCD_TYPE_ONLINE_x gibt den Datentyp, die Spalte und die Zeile an, wo die gewünschte Information auf dem Display erscheinen soll. Der Datentyp ist numerisch codiert. Das Format und die Typen entsprechen denen aus der Tabelle bei 'LCD_TEXT_x'.
Beispiel:
LCD_TYPE_ONLINE_1=' 8 0 0' # dsl status
Bei LCD_TYPE_OFFLINE_N ist die Anzahl der auszugebenden Datentypen anzugeben. Diese Datentypen werden nur angezeigt wenn man Offline ist.
LCD_TYPE_OFFLINE_x gibt den Datentyp, die Spalte und die Zeile an, wo die gewünschte Information auf dem Display erscheinen soll. Der Datentyp ist numerisch codiert. Das Format und die Typen entsprechen denen aus der Tabelle bei 'LCD_TEXT_x'.
Beispiel:
LCD_TYPE_OFFLINE_1=' 0 0 0' # local date
Beispiel für DSL-Verbindung mit 1024/128 kilobit/s:
LCD_DSL_SPEED_IN='1024' # Bitrate for DSL inbound LCD_DSL_SPEED_OUT='128' # Bitrate for DSL outbound
Für ISDN sind die Werte nicht relevant.
isdn_rate [-ip router-ip] [-port imond-port] [-telmond-port telmond-port] [-type hitachi|matrix-orbital|tty] [-config configfilename]
Die optionalen Parameter haben folgende Bedeutung:
Mit -ip wird die Adresse des Routers bestimmt, dessen IMOND die Daten liefern soll. Wird der Parameter weggelassen, wird 127.0.0.1 (localhost) verwendet. Es ist möglich, statt der Adresse auch den Namen anzugeben.
isdn_rate gibt es auch in einer Version die unter Windows lauffähig ist. Hierzu muss die Datei /var/run/lcd.conf entweder nach dem Start des Routers von diesem in das isdn_rate-Verzeichnis kopiert werden oder sie muss von Hand erstellt werden. Der Aufruf könnte dann wie folgt aussehen:
isdn_rate -ip fli4l -config lcd.conf
13 _____________________________ 1 Draufsicht auf den \ o o o o o o o o o o o o o / Parallelport, 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:
Parallelport-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 Anschluß eines 4x40 Displays stark von anderen Displays unterscheidet, hier ein Beispiel (Conrad - NLC-40x4x05):
Parallelport-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, USB oder ein freier Anschluß vom PC-Netzteil. Da einige Soundkartenhersteller am Gameport spezielle Signale generieren, kann keine Garantie übernommen, dass es in jeder Kombination funktioniert. Daher gilt hier: Immer vorher messen!
Es existieren verschiedene Verdratungsvarianten bei fertig bestückten LCD-Displays von Kernel-Concepts, die normale und die Winamp-Verdrahtung. Neuere Displays kommen mit letzterer Variante.
13 _____________________________ 1 Draufsicht auf den \ o o o o o o o o o o o o o / Parallelport, 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 bei der Winamp-Verdrahtung folgendermaßen aufgetrennt:
Parallelport-Pin Beschreibung LCD-Modul LCD-Pin 18-25 GND 1 14 Autofeed 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 16 Init RS 4 Bei Display mit Hintergrundbeleuchtung: +5V HG+ 15 GND 16 (mit Regelwiderstand 100Ohm)
An Pin 3 kann der Abgriff eines >= 10kOhm Potis zwischen +5V und GND geschaltet werden. Damit kann der Kontrast des Displays reguliert werden.
+5V ---+ / \ <--+ / | \ | GND ---+ +--- VL (Pin 3 - driver input)
Mit Hilfe des 2. EN Signals ist es möglich, 2 baugleiche Displays parallel zu betreiben. Dabei wird Pin 6 des einen Displays an Pin 1 (EN1) des Par-Ports angeschlossen und an Pin 6 des 2. Display wird Pin 17 (EN2) angeschlossen. Alle anderen Leitungen werden parallel angeschlossen.
Es sind jetzt auch 2 Displayseiten mit folgender Schaltung möglich:
25-pol. Sub-D LCD 1 -------| | \ \-------- Pin 6 | 17-------| Schalter
Dabei wird der gemeinsame Anschluss des Wechslers an Pin 6 des Displays angeschlossen. An den beiden anderen Kontakten werden die beiden EN-Leitungen angeschlossen.
Das EN2-Signal wird generiert, sobald eine Zeile z mit LCD_LINES < z < 2*LCD_LINES angesprochen wird. Wenn eine Zeilenzahl noch größer verwendet wird, werden beide Displays angesprochen (um die definierbaren Zeichen wie z.B. die Balkenanzeige von isdn_rate) auf beiden Displays anzeigen zu können. Beide Display-Seiten können eigene definierte Zeichen haben.
Bei 4x40 wird also in der <config>/lcd.txt ein 2x40 Display angegeben. Die Zeilen werden aber trotzdem mit 0-3 angesprochen. Die Zeilennummern 4 und 5 werden in diesem Fall an beide Display-Hälften geschickt. Zeile 4 geht an Zeile 0 und 2, Zeile 5 an Zeile 1 und 3.
Bei z.B. 2 parallel geschalteten 4x20 Displays sieht die Ansteuerung folgendermassen aus:
Bei einem langen Kabel oder auch bei bestimmten Parallelports können überschwingende Signale Probleme verursachen. Entweder das Kabel kürzen oder, wenn das nicht geht, eine Terminierung machen. Dazu nimmt man pro Datenleitung (10 Stück!) je einen 10kOhm Widerstand gegen die +5V. Das sollte die Schwinger stabilisieren.
Dank geht an:
Für Fragen, Anregungen Kritik usw.:
Schreibt eine E-Mail an Gernot Miksch E-Mail: ibgm@gmx.de