Musik-Server

Als Gehäuse des Musik-Servers soll ein ausrangierter SAT-Receivers dienen und alle notwendigen Komponenten aufnehmen.

Das Gehäuse selbst hat ein akzeptables Aussehen (WAF) und alle zur Bedienung notwendigen Elemente.

Koscom SAT-Receiver

Folgende Hardware Ausstattung soll in dem alten Gehäuse untergebracht werden:

  • Banana Pi
  • Festplatte
  • Serieller Anschluss für Ampex Terminal
  • Netzteil
  • Alle original Bedienelemente und 4-stellige 7-Segment Anzeige
  • zusätzliches alphanumerisches Display

Die Innereien des SAT-Receivers waren schnell entfernt und die Freude war groß, dass das darin enthaltene Netzteil alle notwendigen Spannungen von 3,3 Volt und 5 Volt zur Verfügung stellte.

Die Banana Pi lief sofort einwandfrei, jedoch mit der zusätzlichen Festplatte brach die Spannung zusammen. Ein anderes Netzteil musste her.

Ein Schaltnetzteil von Pollin für 4,95 Euro sollte genügen – es stellt 3,3 und 5 Volt mit ausreichend Strom zur Verfügung. Auf dem Kühlkörper des Netzteils lagen 115V – nicht so angenehm. Der Kühlkörper des Netzteils war mit einer stromführenden Leitung auf der Unterseite verlötet!!

Banana Pi, Festplatte und Stromversorgung fanden leicht Platz:

Der Pegelkonverter mit MAX3232 ist oberhalb der Banana Pi montiert und dient zum Anschluss des Ampex Terminals via RS 232. Dieses soll später zur Steuerung der Musiksammlung verwendet werden.

Bedienteil

 

Bedienelemente

Hinter der Frontblende mit den Bedienknöpfen befindet sich die Platine, die neben den 7 Knöpfen auch die 4-stellige 7-Segment-Anzeige und einen IR-Empfänger enthält.

Panel Front

Die 4 einzelnen LED-Segmente werden gemultiplext, die einzelnen Segmente über ein Schieberegister angesprochen.

Die 7 Taster werden in einer Matrix abgefragt, wobei die 4 Leitungen zur Ansteuerung der Segmente auch als Eingangsleitungen der Tasten-Matrix verwendet werden.

Das Ansteuern der Anzeige und das Pollen der Tastenmatrix will ich nicht der Banana Pi zumuten – das soll ein Arduino Nano erledigen. Tastendrücke sollen dann per UART an die Banana Pi übertragen werden bzw. die Anzeige auch so angesteuert werden.

Da eine 4-stellige 7-Segment Anzeige zur Steuerung meiner Musiksammlung und zur Anzeige des gerade gespielten Titels nur bedingt tauglich ist, habe ich vor, ein Display aus einer alten DBox-1 zu verwenden. Ich finde diese Anzeige recht hübsch und auch gut leserlich. Die acht zur Verfügung stehenden Zeichen sollten reichen, um per Scrolling auch längeren Text anzeigen zu können.

Im Gegensatz zu einem 2×16 LCD hat diese kleine Anzeige hinter der Klappe an der Front des Koscom Gehäuses Platz. Mit der Ansteuerung des SDA5708 Displays bin ich aus früheren Tests und kleineren Projekten bereits vertraut und für den Arduino gibt es eine fertige Library. Jedoch werde ich diese erweitern, um später Umlaute anzeigen zu können.

Display SDA 5708

Die Abfrage der Tastaturmatrix und das Ansteuern der Anzeige(n) stellt kein großes Problem dar. Jedoch bin ich mit dem Multipexing der LED Anzeige nicht zufrieden. Bei der Übertragung von Daten flackert das Display. Auch die Verwendung der Arduino Timer Library brachte keine Verbesserung. Erst die Verwendung der Timer-Interrupt-Routine mit direkter Verwendung der Register des AtMega328 lieferte ein flimmerfreies Ergebnis.

Die Ansteuerung des Arduino Nano erfolgt über UART3 der Banana Pi. Die Stromversorgung erfolgt somit auch nicht mehr über den USB-Bus, sondern direkt. Die Einspeisung darf dabei nicht über VIN erfolgen, denn diese läuft über den Spannungsregler, der für Spannungen von 7V – 12 Volt gedacht ist. Die Versorgung des Arduino Nano hat somit über den Pin 5V zu erfolgen.

Displays

 

 

 

 

 

Veröffentlicht unter Allgemein | Kommentare deaktiviert für Musik-Server

BAP 70 (CTM Terminal)

Der Bildschirm-Arbeits-Platz BAP 70 ist im Gegensatz zu einem „dummen“ Terminal ein voll ausgestatteter CTM Rechner mit 16bit CPU, Memory Board, IO- und DNÜ-Karte.
(DNÜ = Daten Nah Übertragung)

Bildröhre mit aufgelöster Zwischenschicht

Bildröhre mit aufgelöster Zwischenschicht

Am meisten Sorgen machte mir der Bildschirm, der getrübt und gerissen schien. Nach dem Zerlegen des Terminals stellte sich jedoch heraus, dass die Frontscheibe unversehrt und sich nur die Zwischenschicht in bröslige Platten auflöste. Diese klebrigen Platten ließen sich leicht und vollständig entfernen.

Was jedoch problematischer war, war die Flüssigkeit, die sich ebenfalls aus dieser Zwischenschicht löste und sich braun und klebrig im Inneren des Terminals ausbreitete.

Ausgehärteter Sabber aus der Zwischenschicht von Bildröhre und Schutzscheibe

Ausgehärteter Sabber aus der Zwischenschicht von Bildröhre und Schutzscheibe

Die Platinen blieben von diesem braunen Überzug gottseidank verschont. Die karamellartige Schicht konnte mit Spachtel und Spiritus entfernt werden. Der Konstoffboden blieb leider gefärbt und Metallteile angegriffen.

IMG_20150912_164030

CPU

CPU 4x4bit

CPU 4x4bit

Hier die 16bit CPU, bestehend aus 4x4bit ALUs vom Typ SN74LS181

4bit ALU SN74LS181

4bit ALU SN74LS181

Nach der kompletten Reinigung aller Platinen und des Gehäuses stand der erste Funktionstest nach 30 Jahren Stillstand an:

Funktionstest

Funktionstest

Das Terminal startet und verlangt nach dem Betriebssystem, das nun via DNÜ von den Platten der Zentraleinheit geladen werden müsste.

IMG_20150913_192140

Das Design des Terminals finde ich recht attraktiv – nicht umsonst bekam es den Industrie Design Award

Veröffentlicht unter Allgemein | Verschlagwortet mit , , , | Kommentare deaktiviert für BAP 70 (CTM Terminal)

CTM 70 (aus dem Keller)

In diesem Zustand kam die CTM-70 in unser Haus.

Die Bildschirme der Zentraleinheit und des BAP-Terminals sind komplett blind, das Terminal in einem erbärmlichen rostigen Zustand…

IMG_20150826_131304 IMG_20150826_131342

Veröffentlicht unter Allgemein | Kommentare deaktiviert für CTM 70 (aus dem Keller)

Ampex 210 Terminal

Ampex 210 Terminal

Ampex 210 Terminal

Da die BananaPi drei serielle Schnittstellen besitzt, liegt nichts näher, als an einen Port mein Ampex 210 Terminal (Baujahr 1984) zu hängen.

Der erste serielle Port der BananaPi (/dev/ttyS0) ist die System-Console, die mit 115.200 Baud ab dem booten die Systemmeldungen ausgibt. Diesen Port behalte ich bei, um bei Boot-Problemen eine Möglichkeit zur Fehleranalyse zu haben.
Dieser Port ist an der BananaPi auf dem Stecker J11 herausgeführt.

Am Port J12 sind RxD, TxD, GND sowie 3,3 Volt herausgeführt, was ideal für den RS232-Adapter ist. Ein Adapter ist unbedingt erforderlich, da die Pi nur Spannungspegel von 3,3 Volt verträgt und eine direkte Verbindung mit der RS232 Schnittstelle zum Ampex Terminal die Pi mit absoluter Sicherheit zerstören würde.

Verwendet wird hier ein Standard-Adapter mir einem MAX3232 Chip.

Die serielle Schnittstelle an J12 ist im Linux System als /dev/ttyS3 ansprechbar.
Um ein richtiges physikalisches Terminal an einem Linux System zu betreiben, muss folgende Eintragung in /etc/inittab erfolgen:

T1:23:respawn:/sbin/getty -L ttyS3 19200 ampex210

Die maximale Übertragungsgeschwindigkeit des Ampex Terminals ist 19200 Baud. Als Terminal-Emulation wird ampex210 verwendet, was die optimale Einstellung für dieses Terminal sein sollte.

Ein anschließendes

init q

aktiviert diese Änderung.

Einschalt-Prompt nach drücken der Return-Taste:

IMG_20160225_150547

Betrieb mit vi:

IMG_20160226_111706

 

 

Veröffentlicht unter Allgemein | Kommentare deaktiviert für Ampex 210 Terminal

CTM 70

Vor ca. 25 Jahren ergatterte ich einen Computer der Mittleren Datentechnik – eine CTM 70 von Computertechnik Müller, Konstanz.

Ausgestattet war die CTM 70 mit einem zusätzlichen Plattenlaufwerk, das 5MB (Megabyte!) Kapazität hatte, sowie einem zusätzlichen 5MB 12″ Wechsellaufwerk. Ebenso ist noch ein intelligentes Terminal BAP90 vorhanden.

In diesem Blog möchte ich die Restauration dieses in Deutschland entwickelten und gefertigten Computers beschreiben.

IMG_20151011_162738

Veröffentlicht unter Allgemein | Kommentare deaktiviert für CTM 70

Drehencoder und Tasten

Mein Ziel ist es, die Banana Pi in ein betehendes Gehäuse der Web-Radios OXX Vantage einzubauen. Dieses ging nach der Garantiezeit aus unerfindlichen Gründen kaputt – mit dem Drehknopf konnten keine Einstellungen mehr gemacht werden.

vantage2

Einzige Möglichkeit wäre gewesen, das Ding nach England zu schicken und für die Reparatur zu zahlen. Aber so viel war es mir dann auch nicht wert.

Das Gehäuse finde ich recht hübsch und Platz genug für die Banana Pi sollte vorhanden sein.

640_11022015964

Die Tasten an der Front sind in einer 3×3 Matrix angeordnet. Um GPIO Pins zu sparen ist meine Idee, aus einer alten USB-Tastatur die Elektronik zu verwenden. Diese sollte ohne Änderungen die Tastendrücke der Matrix abfragen können und Tastaturbefehle an die Banana Pi schicken.

Die 10. Taste (On/Off) ist rastend und nicht an die Tastatur-Matrix angeschlossen. Entweder werde ich sie für die Hintergrundbeleuchtung oder einem anderen Zweck , direkt an GPIO angeschlossen, benutzen.

640_11022015963

Der Drehencoder selbst ist ok, was ich durch Messung überprüfen konnte.

Die Pins des Drehencoder habe ich an die GPIO Pins 12 und 13 angeschlossen und mit einem kleinen Testprogramm konnte der Drehencoder ohne großen Aufwand ausgelesen werden.

640_11022015966

Zusammengefasst liefern diese Zeilen bereits das Ergebnis des Drehencoders

a = io.read(ENCODER_PIN_A)
b = io.read(ENCODER_PIN_B)
value = (a ^ b) | b << 1

Vielen Dank an Bob Rathbone.

Versuche ergaben, dass mit einer Abtastfrequenz von 2ms die besten Ergebnisse geliefert wurden. Der Schalter, der beim Drücken des Drehencoders betätigt wird, wird mit GPIO Pin 3 verbunden. Auch seine Abfrage gestaltet sich trivial und wird mit der entsrechenden Entprellroutine in die Drehencoder Abfrage mit eingebaut.

 

 

 

 

 

Veröffentlicht unter Allgemein | Kommentare deaktiviert für Drehencoder und Tasten

16×2 LCD an Banana Pi anschließen

An meiner Raspberry Pi hatte ich bereits ein 16×2 LCD (Data Vision 16210 VZFHLY) betrieben – dieses soll nun auch an der Banana Pi laufen:

LCD 16x2

LCD 16×2

Das LCD ist einfach an die Banana Pi anzuschließen. Folgende Pins müssen dazu verbunden werden:

GPIO Header   LCD
    26         4 (RS)
    24         6 (EN)
    22        11 (D4)
    18        12 (D5)
    16        13 (D6)
    12        14 (D7)
     6         1 GND
     6         5 /RW (GND)
     2         2 (5V)
               3 wird über ein Poti verbunden
     2        15 LED+ (5V)
     6        16 LED- (GND)

Es muss beachtet werden, dass die Banana Pi nur 3,3V Pegel liefert (und auch aushält). Zum ansteuern der Pins ist das ok, aber /RS sollte dann unbedingt auf GND gelegt werden, damit kein Read-Befehl des LCD die Pegel auf 5V zieht und die Banana Pi beschädigt. Die Hintergrund-Beleuchtung dieses LCD zieht über 500mA – das Netzteil meiner Banana Pi mit seinen 1,2A ging damit in die Knie und der Rechner schaltete sich aus. Es ist also entweder ein stärkeres Netzteil notwendig oder des LCD muss ohne Hintergrundbeleuchtung betrieben werden. Ohne Beleuchtung verbraucht das Display kaum über 6mA.

Die Ansteuerung soll zuerst mal unter Ruby erfolgen. Dazu muss ruby und das Gem wiringpi installiert werden:

apt-get install ruby ruby-dev build-essential
gem install wiringpi

Ein erster Versuch mit meinem bereits bestehendem Programm lieferte keinen Erfolg. Zum Debuggen kam mein ultrakleines Oszilloskop Xprotolab von gabatronics  zum Einsatz:

25112014927

Mit ihm konnte ich feststellen, dass kein einziger Ausgang der Banana Pi korrekt gesetzt wurde. Für weitere Tests benutze ich dann das Programm gpio um gezielt die GPIO Pins zu setzen.

gpio readall
gpio export 11 out
gpio write 11 1
gpio write 11 0

Auch mit der Hilfe von gpio wurden keine Pins auf HIGH oder LOW gesetzt. Auf der Webseite von www.lemaker.org fand ich dann einen Verweis auf eine angepasste Version von WiringPi für die Banana Pi.

Die neue WiringPi Library ist schnell kompiliert und installiert mit

cd WiringPi
./build

Der nächste Test mit gpio verlief bereits erfolgreich und ich konnte am Oszilloskop das Toggeln meines Pins beobachten.

Als nächstes habe ich die LCD Beispieldatei aus dem WiringPi-Paket angepasst, kompiliert, gestartet und erfolgreich einen Text auf dem Display erhalten.

25112014928

Jetzt war wieder mein Ruby-Programm dran – leider wieder erfolglos. Kein Text auf dem Display und auch keine Signale auf dem Oszilloskop. Also spricht die wiringpi-Library des Ruby-Gems die Ports noch immer nicht richtig an.

Unter /var/lib/gems/1.9.1/gems/wiringpi-1.1.0/ext/wiringpi/ habe ich die .c und .h Dateien gefunden, die leider nur für die Raspberry Pi sind. Die Dateien

wiringShift.h
wiringShift.c
wiringPi.h
wiringPi.c

habe ich durch jene für die Banana Pi ersetzt, mit make kompiliert und mit make install installiert.

Der nächste Test mir Ruby verlief dann auch erfolgreich

26112014931

 

 

 

Veröffentlicht unter Allgemein | Kommentare deaktiviert für 16×2 LCD an Banana Pi anschließen

Banana Pi

Als bessere Alternative zur Raspberry Pi bekam ich eine Banana Pi geschenkt. Da diese hardwaremäßig besser ausgestattet ist, als eine Raspberry Pi, möchte ich diese als Server, NAS, Cloud-Server, oder … betreiben.

Vorteile der Banana Pi:

  • mehr Arbeitsspeicher (1GB)
  • schnellerer Prozessor (ARM-Cortex-A7-CPU mit zwei Kernen und 1GHz)
  • 1000-Mbit/s-Ethernet
  • SATA Festplattenanschluss

Bisher hatte ich die Arch-Linux und Raspbian-Images von http://www.lemaker.org/  getestet.

Auf der Banana Pi hatte ich bis gestern ein problemloses Raspbian installiert und diverse Installationen als File- bzw. Multimedia Server getestet.

  • Samba (gut und schnell wie immer)
  • Owncloud (läuft schnell, aber ich kann mich damit nicht anfreunden)
  • Twonky (proprietär)
  • MediaTomb (gefällt mir nicht)
  • MiniDLNA (muss ich mir noch näher ansehen, vor allem mit dem Twonky-Client)
  • MPD (wie immer TOP)

OpenMediaVault

Ein Test mit OpenMediaVault verlief auch eher ernüchternd – es bietet nichts besonderes unter seiner Oberfläche, was ich auch auf der Konsole machen kann.

Die Installation an sich verlief problemlos und OpenMediaVault war nach dem Booten sofort einsatzbereit.

OpenMediaVault

OpenMediaVault

Installation Bananian

Nichtsdestotrotz wird wieder ein kleines Linux – Bananian – das auch auf Debian basiert, installiert.

  • Download des Images von https://www.bananian.org/
  • überprüfen des Images mit z.B. sha1sum
  • unzip bananianXXX.zip
  • Image auf SD-Card schreiben:
  • dd if=bananianXXX.img of=/dev/mmcblk0 bs=1M

Anschließend die SD-Card in die Banana Pi stecken und booten. Mein serieller Adapter leistet mir hier immer eine große Hilfe, denn sollte ein Image mal nicht starten, sieht man sofort, wo das System hängt.

RS232 Adapter

RS232 Adapter

Der RS232-Adapter stammt von Pollin und wurde mit einem MAX3232 auf 3,3V Pegel angepasst. Der IC ist pin-kompatibel zu dem mitgelieferten MAX232.

Am Arbeitsrechner genügt ein Aufruf von

screen /dev/ttyS0 115200

um ein Terminal für die serielle Konsole der BananaPi zu öffnen.

BananaPI Konsole

BananaPI Konsole

Nach der Anmeldung mit dem Standard-Passwort root/pi die Grund-Konfiguration mit

bananian-config

starten und damit das Standard-Passwort für root, die Größe der SD-Card, das Tastatur-Layout und die Zeitzone anpassen.

Anschließend noch das ganze System mit

apt-get update
apt-get upgrade

aktualisieren.

Als nächstes wird das lästige Blinken der grünen LED ausgeschaltet. Aktuell ist der Modus heartbeat eingestellt. Dies kann manuell mit

echo none > /sys/class/leds/green:ph24:led1/trigger

erfolgen oder dauerhaft mit einem Eintrag in /etc/rc.local.

 

 

 

 

 

 

Veröffentlicht unter Allgemein | Kommentare deaktiviert für Banana Pi

Projekt GPS

Schon seit einiger Zeit liegt bei mir eine NaviLock GPS Maus rum und wartet auf eine sinnvolle Verwendung.

navtec

Ein Adapterkabel für die serielle Schnittstelle war schnell gebastelt und die ersten NMEA-Datensätze konnten in den PC eingelesen werden.
Standort und Uhrzeit konnten nun ermittelt werden.

Aber ist das eine sinnvolle Verwendung für ein GPS?

Was liegt näher, als die GPS-Maus mit der Raspberry Pi oder einem kleinen Mikrocontroller zu verbinden.
Die Raspberry Pi ist mir für dieses Vorhaben eigentlich zu schade – ein AtMega8 müsste dafür eigentlich reichen. Ein 2×16 Zeichen LCD ist auch noch vorhanden und auch die TTL-Pegel der GPS-Maus können vom Mikrocontroller direkt verarbeitet werden.

Vor kurzem entdeckte ich die µC IDE Luna AVR, eine Objektbasierte Programmiersprache  für AVR Mikrocontroller, die mir sehr gut gefällt und mich bei der Entwicklung schneller zu einem Ergebnis kommen lässt, als in Assembler oder C.

 

Fortsetzung folgt…

Veröffentlicht unter Allgemein | Kommentare deaktiviert für Projekt GPS

Es geht wieder los…

Mein Hoster hat auf einen neuen Server, mit mehr Möglichkeiten für mich, umgestellt.

Jetzt wird es höchste Zeit, meine Projekte und Sonstiges zu bloggen.

 

Viel Spaß,

Pinkman

Veröffentlicht unter Allgemein | Hinterlasse einen Kommentar