Dockstar LCD

Aus RaumZeitLabor Wiki
Wechseln zu: Navigation, Suche
           
Dockstar LCD

Release status: stable [box doku]

Dockstar LCD Display aufgebaut.jpg
Description USB-LCD für die Seagate Dockstar
Author(s)  Felicitus
Last Version  1.0
Platform  Atmega8
License  GPL
Download  http://github.com/timoahummel/dockstar_lcd

Die Seagage Dockstar ist ein ARM9E-basierter Embedded-Computer mit 1.2GHz, 128MB RAM, 256MB Flash, 4x USB (3x USB-A, 1x Mini-USB) und Gigabit Ethernet. Durch den derzeit sehr günstigen Preis von 25 € wird die Dockstar gerne als Heimserver verwendet. Da die Dockstar ursprünglich für die Aufnahme einer Festplatte gedacht war, ragt an der Gehäuseoberseite eine Lasche heraus, die unschön aussieht, wenn keine Festplatte eingesteckt ist. Was liegt also näher, dort etwas sinnvolles hineinzubauen und somit den Platz zu nutzen?

Planung / Ziele

Kompletter Schaltungsaufbau auf einem Breadboard, darunter die Zielplatine
Ausgesägte Platine mit LCD-Display, Stecktest ob alles passt
Das erste Lebenszeichen des LCD-Displays

LCD-Display für den Dockstar HDD-Slot, Aufbau auf Lochraster-Platine (Punktraster). Die Höhe soll dabei so gering wie möglich sein, außerdem soll die Platine relativ einfach zu löten sein (keine Kreuz- und Querverbindungen durch Fädeldraht o.ä.). Leider müssen dann ein paar Kompromisse eingegangen werden, was in relativ vielen Brücken resultiert, die auf und unter der Platine angebracht werden müssen.

Eine Optimierung ist sicherlich noch möglich, ebenso die Entwicklung einer fertigen Platine.


Abmessungen

Länge Breite Höhe
Dockstar HDD-Slot  ?? ca. 81mm ca. 20mm
Platine 55mm 80mm max. 20mm

Die Breite des Dockstar-Slots beträgt ca. 81mm. Die Maximalgröße für die Platine habe ich daher mit 80mm angesetzt. Die maximale Tiefe der Platine beträgt 2cm, ansonsten passt sie nicht mehr in den Port. Um Platz zu sparen, wird das LCD-Display erhöht aufgesetzt, direkt darunter befindet sich der Atmega8. Die Länge der Platine beträgt ungefähr 5,5cm.

Ansteuerung

Die Dockstar bietet zwar ein serielles Interface mit TTL-Leveln, allerdings braucht man selbiges, wenn man eine neue Firmware aufspielen möchte, wenn etwas beim Flashen im laufenden Betrieb schiefgegangen ist. Da das Display in den Festplattenslot gesteckt werden soll, lag also nahe, den dortigen USB-Anschluss zu nutzen. Ob man sich jetzt die Mühe machen möchte und eine Mini-USB-Buchse auflöten möchte (die es, soweit ich weiß, nur in SMD-Ausführung gibt) oder ganz einfach den Stecker gegen etwas "brauchbares" austauscht, liegt im Ermessen des Bauers. Ich habe mich für letzteres entschieden.

USB wird komplett in Software mittels dem VUSB Stack gemacht, es gibt keine externen USB-Chips. Die Transferrate ist dabei auf 1,5Mbit beschränkt, was zur Ansteuerung des LCD-Displays vollkommen ausreicht.

LCD-Display

Zum Einsatz kommt ein 3-zeiliges Display von Electronic Assembly, ein EA DOGM163-A. Diese Displays benötigen nur 4 Datenleitungen dank SPI-Interface und sind daher gut geeignet für "enge" Platinen. Außerdem kann das Display direkt mit 5V betrieben werden, was zusätzliche Bauteile einspart. Lediglich die Hintergrundbeleuchtung benötigt 2 Widerstände.

Dimmbare Hintergrundbeleuchtung

Da ich das LCD-Display auch zum Systemmonitoring nutzen möchte, soll die Hintergrundbeleuchtung blinken, wenn wichtige Ereignisse anstehen. Hierzu kommt ein IRLD024 zum Einsatz, mit dem das Display über PWM sogar dimmbar ist. Andere Anwendungen sind natürlich möglich, z.b. abschalten des Displays nach einer gewissen Zeit.

LEDs

Auf meiner Platine habe ich zusätzlich 2 LEDs angebracht: 1x Power und 1x ansteuerbar durch Software. Taster und andere Ein-/Ausgabefunktionen können hinzugefügt werden, allerdings muß dann das Lochraster-Layout geändert werden. Da ich keine Eingabemöglichkeiten benötige, habe ich diese auch nicht eingeplant.

Mikrocontroller

Hier kommt ein Atmega8 zum Einsatz. Die LCD-Library doglcd habe ich von der Arduino-Plattform auf GNU-C zurückportiert, außerdem kommt der VUSB-Stack zum Einsatz. Die eigentliche Firmware soll LCD4Linux-kompatibel werden. Auf dem Board habe ich bereits einen ISP-Stecker vorgesehen, damit die Firmware geändert werden kann, da der Atmel ja fest eingelötet wird.

Umsetzung

Bestückungsplan Vorderseite
Bestückungsplan Rückseite
Fertig aufgebautes Dockstar LCD

Um Platz zu sparen, wird der Mikrocontroller direkt unter das LCD-Display ohne IC-Sockel gelötet. Das LCD-Display selbst wird mit einer Buchsenleiste erhöht, damit der Mikrocontroller und die Brücken unterhalb des Displays platz finden. Wichtig dabei ist, daß man eine Buchsenleiste mit geringer Bauhöhe nutzt (quasi ein einreihiger IC-Sockel), sonst wird die Konstruktion zu hoch! Passende Buchsenleiste gibt's hier.

Bauteilliste

Anzahl Bauteil Bestellnummer Reichelt Einzelpreis Gesamtpreis
1 Lochrasterplatine 75x100mm H25PR075 0,98€ 0,98€
2 Buchsenleiste SPL 20 0,34€ 0,68 €
1 Hintergrundbeleuchtung EA-DOG weiß EA LED55X31-W 10,35€ 10,35 €
1 LCD-Display EA DOGM, 3-zeilig EA DOGM163S-A 12,60 € 12,60€
1 Power-Mosfet IRLD024 IRLD024 0,55€ 0,55€
1 Atmega8-16PU ATMEGA 8-16 DIP 2-3 Eur 2-3 Eur
1 16MHz Quarz 16,0000-HC49U-S 0,18 € 0,18€
1 Wannenstecker 10pol gerade WSL 10G 0,07 € 0,07€
2 Keramik-Kondensator 27pF KERKO 27P 0,06€ 0,12€
1 Vielschicht-Keramik-Kondensator 100nF X7R-2,5 100N 0,04€ 0,04€
1 Elko axial 4,7uF AX 4,7/63 0,13€ 0,13€
2 Z-Diode 3,6V ZF 3,6 0,04 € 0,08€
1 Widerstand 1mOhm 1/4W 1,0M 0,10€ 0,10€
2 Widerstand 68 Ohm 1/4W 68 0,10€ 0,20€
2 Widerstand 33 Ohm 1/4W 33 0,10€ 0,20€
2 Widerstand 1,5kOhm 1/4W 1,5K 0,10€ 0,20€
1 Widerstand 1kOhm 1/4W 1,0K 0,10€ 0,10€
Gesamt 26,56€ zzgl. Atmega8 (nicht lieferbar bei Reichelt)

Die Kosten lassen sich reduzieren, in dem man eine andere DOG-LCD Variante und Hintergrundbeleuchtung wählt.

Reichelt-Warenkorb: https://secure.reichelt.de/?;ACTION=20;LA=5010;AWKID=289095;PROVID=2084


Schaltplan und Lochraster-Layout

Schaltplan

Vor den Lötarbeiten können die Bestückungspläne in schwarz/weiß ausgedruckt werden. So kann man mit einem Filzschreiber markieren, welche Bauteile man schon eingelötet hat. Gerade bei der Vielzahl an Brücken ist das sehr hilfreich!

Um die Platine zu bestücken, fängt man am besten mit den niedrigsten Bauteilen (Brücken) an. Diese werden gebogen und von oben auf die Platine besteckt. Sind alle Brücken fertig, werden diese mit Klebeband fixiert und angelötet. Danach kommen die nächsthöheren Bauteile (Widerstände, Dioden etc). Erst wenn die Vorderseite fertig ist, sollte man die Rückseite beginnen. Hier hat es sich bewährt, die Verbindungen nicht über Lötaugen zu ziehen, sondern einfach entsprechende Drähte zurechtzubiegen und diese zur Kontaktierung zu verwenden.

Modifikation: Im Layout ist der Pin PC3 mit dem Widerstand R7 verbunden, mit dessen Hilfe die Hintergrundbeleuchtung ein- und ausgeschaltet werden kann. Soll PWM verwendet werden (dimmbare Hintergrundbeleuchtung), so darf die Brücke von PC3 zu R7 nicht gesetzt werden, sondern es muß eine "fliegende" Verbindung (z.b. mit Verowire/Veropen) von R7 zu PB1 gemacht werden. Leider habe ich das zu spät gemerkt, als die Schaltung und das Lochraster-Layout schon fertig waren. Auch der Schaltplan berücksichtigt dies nicht.

Software

Firmware und LCD4Linux-Treiber sind unter http://github.com/timoahummel/dockstar_lcd zu finden. Dort findet sich auch der Schaltplan im Eagle-Format.

Was schon funktioniert: Textausgabe mittels LCD4Linux und einem kleinen Patch für LCD2USB.

Was noch nicht funktioniert: Eigene Icons (Display zeigt nur Garbage an).