waterburn
19.03.2013, 12:51
Hallo,
da mir schon länger das Konzept für eine größere Aktivbox im Kopf herumschwirrt, habe ich mich aufgerafft einen Linux Rechner für BruteFIR aufzubauen. Ziel ist es, dass sich dieser am Ende genau so verhält, wie man es sich von einem Hifi-Gerät wünscht. Von außen soll nicht erkennbar sein, dass es sich bei dem Gerät um einen PC handelt. Ich möchte versuchen dieses Projekt von Anfang an zu beschreiben und die auftretenden Probleme zu diskutieren. Da Linux für mich komplettes Neuland ist, wird es sicherlich einiges zu diskutieren geben. Zum Glück habe ich in meinem Umfeld einige Linux Freaks, und auch hier im Forum sind ja einige unterwegs, die schon Erfahrungen mit BruteFIR gemacht haben.
Zunächst einmal möchte ich die Projektplanung vorstellen. In einem weiteren Beitrag werde ich dann den aktuellen Stand zeigen und die ersten Fragen stellen ;)
Die Hardware
Als Herzstück des Rechners soll das AD2700B-ITX von ASRock dienen. Hierbei handelt es sich um ein Atom-Board mit dem NM10 Chipsatz von Intel. Das Board ist vollständig passiv gekühlt. Wichtig bei der Wahl der Hardware war für mich, dass das Board über einen Parallelport verfügt, da über diesen das die Steuerelemente für den Benutzer, sowie der Eingangswahlschalter und eine analoge Lautstärkeregelung angesteuert werden sollen. Ein Nachteil dieser Hardware, der mir leider erst nach dem Kauf aufgefallen ist, ist, dass der Grafikchip nur unzureichend von Linux unterstützt wird. Da im eigentlichen Betrieb aber ohnehin kein Bildschirm angeschlossen ist, ist dieser Makel aber verschmerzbar.
Als Soundkarte kommt eine Terratec Aureon 7.1 Space zum Einsatz, die zu einer Prodigy 7.1 geflasht wurde. Das flashen hat für Linux aber keine Bedeutung da beide Karten den gleichen Treiber benutzen. Die Entscheidung für die Karte wurde vor allem aus Budget gründen getroffen, da diese bereits vorhanden war. Neu ist diese Karte nicht mehr zu bekommen, aber über ebay bekommt man sie gebraucht für um die 20€ inklusive Versand. Für erste Experimente also ideal. Aber auch die technischen Daten dieser Karte sind über jeden Zweifel erhaben. Der einzige Wermutstropfen ist, dass die Karte einen deutlichen Einschaltplopp verursacht. Da aber ohnehin eine analoge Lautstärkeregelung nachgeschaltet ist, stellt dies kein Problem dar.
Um die Lautstärke und den Gewählten Eingang anzuzeigen wird ein 2,4" großes Farbdisplay eingebaut, welches über USB angeslossen ist. Hierbei handelt es sich um einen gehackten Digitalen Bilderrahmen aus China. Wer mehr zu dem Thema wissen will, kann das hier (http://geekparadise.de/2011/04/digitaler-bilderrahmen-von-pearl-als-statusdisplay-fur-dockstar/ ) nachlesen. Alternativ kann man einfach mal nach dpf-hack und AX206 googeln.
Das ganze System soll auf einem schnellen USB-Stick installiert werden. Auf diese Weise bekommt man ein komplett lautloses System.
Eingebaut wird das ganze in ein altes Desktop Gehäuse eines 286ers. Die Front soll aus Multiplex neu gestaltet werden. Der Korpus wird mit der Rolle matt schwarz lackiert. In die Rückwand wird ein Blech eingenietet welches nur die Löcher für die Cinch Anschlüsse und zwei herausgeführte USB-Anschlüsse enthält.
Das Benutzerinterface
Unter Linux kann der Parallelport recht einfach als general purpose I/O benutzt werden. Die einzelnen Pins können Direkt aus C angesprochen werden. Codebeispiele sind im Internet zu Hauf zu finden. Sollte das Projekt zu einem erfolgreichen Abschluss kommen, werde ich einen eigenen Quellcode ebenfalls zur Verfügung stellen.
Um den Parallelport nutzen zu können muss man aber noch einige weitere Vorkehrungen auf der Hardware Seite treffen. Hierfür habe ich eine Platine entworfen, die auf Lochraster umgesetzt werden soll. Der Schalplan ist als pdf angehängt.
http://www.diy-hifi-forum.eu/forum/attachment.php?attachmentid=3408&d=1363689664
Die Ausgengspins können nur einen sehr geringen Strom liefern und sind nicht kurzschlussfest. Aus diesem Grund wird ein IC vom Typ 74HC244 als Puffer eingesetzt. Insgesamt werden 8 Ausgange zur Verfügung gestellt. Drei Pins werden für den Eingangswahl benötigt. Die restlichen 5 Pins steuern die analoge Lautsärkeregelung. Dieser Teil der Schaltung ist im oberen teil der Platine zu sehen. Die Eingangswahl und die Lautstärkeregelung können über die 10-Poligen Pfostenstecker angeschlossen werden.
An die 6-Poligen Pfostenstecker im unteren Teil der Platine können Drehencoder angeschlossen werden. Beim oberen kann außerdem noch ein Taster angeschlossen werden. Die Entprellung erfolgt der Einfachheit halber in Hardware. Diese Aufgabe übernehmen die RC-Glieder und der Schmitt Trigger 74HC14. Der von den Drehencodern erzeugte Gray-Code wird dann durch die Flipflops 74HC74 decodiert. Dadurch wird der Programmieraufwand deutlich vereinfacht, da der Code nicht mehr zeitkritisch ist. Das schlimmste was passieren kann, ist das ein Impuls verloren geht. die Drehrichtung wird aber immer richtig erkannt.
http://www.diy-hifi-forum.eu/forum/attachment.php?attachmentid=3409&d=1363689664
Zur Eingangswahl Platine schaltet zwischen 4 analogen und 4 digitalen Eingängen um. Die analoge Umschaltung erfolgt über Relais. Die digitalen Signale werden über ein digitales Multiplexer IC geroutet. Die umschaltung zwischen digital und analog erfolgt dann im Rechner.
http://www.diy-hifi-forum.eu/forum/attachment.php?attachmentid=3410&d=1363689664
Zur analogen Lautstärkeregelung kommen Zwei ICs vom Typ PGA4311 zum einsatz. Da es sich hierbei um SMD bautele handelt werden sie über Adapterplatinen vom Chinesen auf die Lochrasterplatine gebaut. Zur Erzeugung der analogen Versorgungsspannungen ist ein DC-DC Wandler verbaut. Die Ansteuerung der ICs Erfolgt über das serielle SPI Protokoll. Da dieses nicht besonders zeitkritisch ist, sollte es Problemlos möglich sein diese Signale über den Parallelport zu erzeugen.
Die Software
Als Betriebssystem soll das überaus leichtgewichtige Tinycore zum Einsatz kommen. Die Software für das Benutzerinterface soll in Python geschrieben werden. Zur Ansteuerung des Parallelports wird zusätzlich etwas inline C notwendig sein. Das Display wird von der Software LCD4Linux unterstützt. Für diese gibt es ebenfalls einen Python Wrapper. Zur späteren Fernsteuerung des Rechners möchte ich noch einen SSH-Server und WLAN installieren. das ganze ist allerdings noch zukunftsmusik, da meine ersten Schritte mit Tinycore doch eher holprig waren. Zunächst einmal muss ich es schaffen Software zu installieren und den Sound zum laufen bekommen. Mit google und eurer Hilfe werde ich das aber sicher in der nächsten Zeit schaffen. Heute Abend gibt es dann hoffentlich ein paar Bilder vom aktuellen Stand.
Viele grüße
waterburn
da mir schon länger das Konzept für eine größere Aktivbox im Kopf herumschwirrt, habe ich mich aufgerafft einen Linux Rechner für BruteFIR aufzubauen. Ziel ist es, dass sich dieser am Ende genau so verhält, wie man es sich von einem Hifi-Gerät wünscht. Von außen soll nicht erkennbar sein, dass es sich bei dem Gerät um einen PC handelt. Ich möchte versuchen dieses Projekt von Anfang an zu beschreiben und die auftretenden Probleme zu diskutieren. Da Linux für mich komplettes Neuland ist, wird es sicherlich einiges zu diskutieren geben. Zum Glück habe ich in meinem Umfeld einige Linux Freaks, und auch hier im Forum sind ja einige unterwegs, die schon Erfahrungen mit BruteFIR gemacht haben.
Zunächst einmal möchte ich die Projektplanung vorstellen. In einem weiteren Beitrag werde ich dann den aktuellen Stand zeigen und die ersten Fragen stellen ;)
Die Hardware
Als Herzstück des Rechners soll das AD2700B-ITX von ASRock dienen. Hierbei handelt es sich um ein Atom-Board mit dem NM10 Chipsatz von Intel. Das Board ist vollständig passiv gekühlt. Wichtig bei der Wahl der Hardware war für mich, dass das Board über einen Parallelport verfügt, da über diesen das die Steuerelemente für den Benutzer, sowie der Eingangswahlschalter und eine analoge Lautstärkeregelung angesteuert werden sollen. Ein Nachteil dieser Hardware, der mir leider erst nach dem Kauf aufgefallen ist, ist, dass der Grafikchip nur unzureichend von Linux unterstützt wird. Da im eigentlichen Betrieb aber ohnehin kein Bildschirm angeschlossen ist, ist dieser Makel aber verschmerzbar.
Als Soundkarte kommt eine Terratec Aureon 7.1 Space zum Einsatz, die zu einer Prodigy 7.1 geflasht wurde. Das flashen hat für Linux aber keine Bedeutung da beide Karten den gleichen Treiber benutzen. Die Entscheidung für die Karte wurde vor allem aus Budget gründen getroffen, da diese bereits vorhanden war. Neu ist diese Karte nicht mehr zu bekommen, aber über ebay bekommt man sie gebraucht für um die 20€ inklusive Versand. Für erste Experimente also ideal. Aber auch die technischen Daten dieser Karte sind über jeden Zweifel erhaben. Der einzige Wermutstropfen ist, dass die Karte einen deutlichen Einschaltplopp verursacht. Da aber ohnehin eine analoge Lautstärkeregelung nachgeschaltet ist, stellt dies kein Problem dar.
Um die Lautstärke und den Gewählten Eingang anzuzeigen wird ein 2,4" großes Farbdisplay eingebaut, welches über USB angeslossen ist. Hierbei handelt es sich um einen gehackten Digitalen Bilderrahmen aus China. Wer mehr zu dem Thema wissen will, kann das hier (http://geekparadise.de/2011/04/digitaler-bilderrahmen-von-pearl-als-statusdisplay-fur-dockstar/ ) nachlesen. Alternativ kann man einfach mal nach dpf-hack und AX206 googeln.
Das ganze System soll auf einem schnellen USB-Stick installiert werden. Auf diese Weise bekommt man ein komplett lautloses System.
Eingebaut wird das ganze in ein altes Desktop Gehäuse eines 286ers. Die Front soll aus Multiplex neu gestaltet werden. Der Korpus wird mit der Rolle matt schwarz lackiert. In die Rückwand wird ein Blech eingenietet welches nur die Löcher für die Cinch Anschlüsse und zwei herausgeführte USB-Anschlüsse enthält.
Das Benutzerinterface
Unter Linux kann der Parallelport recht einfach als general purpose I/O benutzt werden. Die einzelnen Pins können Direkt aus C angesprochen werden. Codebeispiele sind im Internet zu Hauf zu finden. Sollte das Projekt zu einem erfolgreichen Abschluss kommen, werde ich einen eigenen Quellcode ebenfalls zur Verfügung stellen.
Um den Parallelport nutzen zu können muss man aber noch einige weitere Vorkehrungen auf der Hardware Seite treffen. Hierfür habe ich eine Platine entworfen, die auf Lochraster umgesetzt werden soll. Der Schalplan ist als pdf angehängt.
http://www.diy-hifi-forum.eu/forum/attachment.php?attachmentid=3408&d=1363689664
Die Ausgengspins können nur einen sehr geringen Strom liefern und sind nicht kurzschlussfest. Aus diesem Grund wird ein IC vom Typ 74HC244 als Puffer eingesetzt. Insgesamt werden 8 Ausgange zur Verfügung gestellt. Drei Pins werden für den Eingangswahl benötigt. Die restlichen 5 Pins steuern die analoge Lautsärkeregelung. Dieser Teil der Schaltung ist im oberen teil der Platine zu sehen. Die Eingangswahl und die Lautstärkeregelung können über die 10-Poligen Pfostenstecker angeschlossen werden.
An die 6-Poligen Pfostenstecker im unteren Teil der Platine können Drehencoder angeschlossen werden. Beim oberen kann außerdem noch ein Taster angeschlossen werden. Die Entprellung erfolgt der Einfachheit halber in Hardware. Diese Aufgabe übernehmen die RC-Glieder und der Schmitt Trigger 74HC14. Der von den Drehencodern erzeugte Gray-Code wird dann durch die Flipflops 74HC74 decodiert. Dadurch wird der Programmieraufwand deutlich vereinfacht, da der Code nicht mehr zeitkritisch ist. Das schlimmste was passieren kann, ist das ein Impuls verloren geht. die Drehrichtung wird aber immer richtig erkannt.
http://www.diy-hifi-forum.eu/forum/attachment.php?attachmentid=3409&d=1363689664
Zur Eingangswahl Platine schaltet zwischen 4 analogen und 4 digitalen Eingängen um. Die analoge Umschaltung erfolgt über Relais. Die digitalen Signale werden über ein digitales Multiplexer IC geroutet. Die umschaltung zwischen digital und analog erfolgt dann im Rechner.
http://www.diy-hifi-forum.eu/forum/attachment.php?attachmentid=3410&d=1363689664
Zur analogen Lautstärkeregelung kommen Zwei ICs vom Typ PGA4311 zum einsatz. Da es sich hierbei um SMD bautele handelt werden sie über Adapterplatinen vom Chinesen auf die Lochrasterplatine gebaut. Zur Erzeugung der analogen Versorgungsspannungen ist ein DC-DC Wandler verbaut. Die Ansteuerung der ICs Erfolgt über das serielle SPI Protokoll. Da dieses nicht besonders zeitkritisch ist, sollte es Problemlos möglich sein diese Signale über den Parallelport zu erzeugen.
Die Software
Als Betriebssystem soll das überaus leichtgewichtige Tinycore zum Einsatz kommen. Die Software für das Benutzerinterface soll in Python geschrieben werden. Zur Ansteuerung des Parallelports wird zusätzlich etwas inline C notwendig sein. Das Display wird von der Software LCD4Linux unterstützt. Für diese gibt es ebenfalls einen Python Wrapper. Zur späteren Fernsteuerung des Rechners möchte ich noch einen SSH-Server und WLAN installieren. das ganze ist allerdings noch zukunftsmusik, da meine ersten Schritte mit Tinycore doch eher holprig waren. Zunächst einmal muss ich es schaffen Software zu installieren und den Sound zum laufen bekommen. Mit google und eurer Hilfe werde ich das aber sicher in der nächsten Zeit schaffen. Heute Abend gibt es dann hoffentlich ein paar Bilder vom aktuellen Stand.
Viele grüße
waterburn