Selbstgebauter MP3 Spieler
Die Idee fuer den selbstgebauten MP3 Spieler entstand, nachdem ich mir die Projekte auf www.mini-itx.com angeschaut habe. Nach einigen Nachforschungen auf der Mediabox Seite bin ich dann zu dem Entschluss gekommen, das Crystalfontz LCD und die UIRT2 Infrarot Fernbedienung fuer mein Projekt zu verwenden. Das gute am UIRT2 ist, das der PC durch die Fernbedienung ueber Wake-on-Lan oder Wake-on-Ring aufgeweckt oder eingeschaltet werden kann. Um den entsprechenden Knopf fuer das Einschalten des MP3 Spielers zu lernen, muss man allerdings die Software Girder benutzen und diese laeuft leider nur unter Windows. Auch um den PIC16F84 zu programmieren braucht man ein Windows. Spaeter im Betrieb laeuft der UIRT2 dann aber ohne Probleme mit Linux.
Als OS ist Linux (wahrscheinlich Debian als Distribution) geplant, da der LIRC demon nicht unter FreeBSD laeuft. Der LIRC ist dann fuer die Umsetzung der Fernbedienungsdaten in Befehle fuer Winamp oder eine andere MP3 Software zustaendig. Ueber die Wahl der MP3 Software bin ich mir noch nicht ganz schluessig. Das LCD wird ueber LCDproc angesprochen. Damit sollte dann die Anzeige des Musiktitels und der Restspielzeit moeglich sein.
Zur Sounderzeugung wird die auf dem Mainboard vorhandene Soundkarte verwendet. Es verkrampft sich jetzt mit Sicherheit bei einigen Hifi-Freaks der Magen, aber die Sound-Informationen werden digital ueber den S/PDIF Ausgang zum Verstaerker (Onkyo TX DS-595) weitergeleitet und dort von hochwertigen D/A Wandlern in analoge Signale gewandelt. Eventuell werde ich zu einem spaeteren Zeitpunkt den MP3 Spieler als standalone Geraet weiterentwickeln. Dabei werde ich dann allerdings eine Soundblaster Live oder aehnliches als D/A Wandlerkarte verwenden.
Fuer Wartungsarbeiten, MP3's downloaden, MP3 Streaming Server anzapfen (das Mainboard hat eine integrierte Ethernetschnittstelle) oder zum optionalen Websurfen wird dann mein MP3 Spieler ueber den, auf dem Mainboard vorhandenen, S-Video Anschluss an den Verstaerker, und damit ans Fernsehgeraet angeschlossen. Zum optionalen Websurfen von der Wohnzimmer Couch wird dann allerdings eine kabellose Tastatur und Maus benoetigt. Die Wartungsarbeiten koennen im Notfall mit einer kabelgebundenen Tastatur durchgefuehrt werden.
Ein Bericht ueber den Zusammenbau und die Softwarekonfiguration wird dann auf dieser Seite zu verfolgen sein.
20.09.2002
Thomas Reich
20.09.2002
Alle Bauteile sind bestellt. Jetzt nur noch geduldig auf Fedex und UPS warten.
26.09.2002
Das Netzteil und der 2,5" Adapter sind die letzten benoetigten Bauteile, welche heute eingetroffen sind.
Hier ein Bild aller Bauteile ohne Fernbedienungsempfaenger (den muss ich erst zusammenbauen)

Das LCD Display ist ein Crystalfontz CFAH2002A-RMC-JP
Ein erster Versuch Debian 3.0 auf die Festplatte zu installieren schlaegt fehl. Das Mainboard hat leider keinen Floppy Anschluss. Die Platte wird an meinen AMD Rechner angeschlossen und Debian ueber Netz installiert.
Hier ein Bild von allen Anschluessen des Mainboards: (der S-Video Ausgang ist durch das Parallel Port Kabel verdeckt)
27.09.2002
Installation war erfolgreich und nachdem ich die Platte wieder an das Eden Mainboard angeschlossen habe bootet Debian ohne zu murren auf dem Prozessor. Alles scheint stabil zu laufen. Noch schnell XFree 4.2 aufspielen und dann ueber S-Video an den Fernseher anschliessen. Die Console erscheint auf dem Fernseher ohne Probleme, allerdings beim starten von X sieht man ueberhaupt nichts sondern nur Geflimmere. Die Refreshrate muss wohl nicht stimmen. Nach langem Probieren und immer noch kein stabiles Bild gebe ich erstmal auf.
Der provisorische Anschluss des LCD's an den Parallel Port ist als naechstes auf dem Plan. Die technischen Daten schreiben 4.2V fuer die Hintergrundbeleuchtung vor. Fuer den ~0.8V Spannungsabfall um die Hintergrundbeleuchtung des LCD an 5V anschliessen zu koennen wird einfach eine Silizium Diode in Reihe eingeloetet. Nach 30 Minuten ist das LCD Bauteil allerdings so heiss, das man es nicht mehr anfassen kann. 4,2V Betriebsspannung?
Ein 12Ohm Widerstand ersetzt dann die Diode und der Pegel am LCD wird dadurch auf 2.6V runtergezogen. Jetzt ist auch die Hintergrundbeleuchtung nicht mehr so grell und das LCD bleibt kuehl.
Das Datenkabel wird anhand dieser Dokumentation geloetet und dauert knapp eine Stunde. Die Software LCDproc zu installieren und konfigurieren nochmal eine halbe Stunde aber danach funktioniert das LCD Display perfekt.
Die Uhr zeigt 2:30AM. Irgendwann in den naechsten Tagen gehts weiter.
Ein Bild vom LCD im Versuchsaufbau:
05.10.2002
Der XMMS will bisher kein Sound ueber den S/PDIF Ausgang an den Verstaerker abgeben. Nach langer Suche bei Google habe ich allerdings die Loesung meines Problems gefunden. Mit dem ALSA Treiber V0.9.0beta12 fuer den VIA686 Chip und dem ALSA Utility 'amixer' oder 'alsamixer' laesst sich der 'IEC958 Playback Switch' auf ON stellen und damit wird der S/PDIF Ausgang am Mainboard aktiviert. Der Anschluss an den Verstaerker erfolgt ueber ein gut abgeschirmtes Cinch-Kabel.
Weiterhin habe ich nach der Loesung meines Problems mit dem X-Server geforscht und bin dann auf diese Loesung gestossen: Man muss den Framebuffer support im Kernel aktivieren oder das Modul fbdev laden und den Xserver mit dem Framebuffer Servermodul starten, dann gibt es keine Timing probleme mit dem S-Video Ausgang und dem Fernseher und das X wird schoen in NTSC oder PAL Format (je nach Land und Fernseher) auf den Schirm projeziert.
Der Empfaenger fuer die Fernbedienung ist mittlerweise zusammengebaut, allerdings laesst sich der PIC 16F84A weder auf der Windows noch auf der Linux Kiste programmieren. Obwohl ich schon ziemlich viel Zeit in die Nachforschungen nach einem funktionierendem PIC Programmierer fuer die serielle Schnittstelle reingesteckt habe, werde ich wohl nicht an einem Hardware Programmierer vorbeikommen. Die seriellen Schnittstellen der PC's scheinen vom Timing her einfach nicht genau genug zu sein. Meinen naechsten Versuch werde ich mit einem parallel port PIC Programmierer durchfuehren.
14.06.2003
Ueber 6 Monate sind vergangen seit meinem letzten Versuch den 16F84 zu programmieren. Ich kann mich nicht mehr erinnern
was mich dazu verleitet hat, wieder die Versuche mit dem PIC programmieren aufzunehmen, aber jetzt habe ich die Motivation den MP3
Spieler diesmal komplett funktionstuechtig fertigzustellen.
Nach langer Suche mit Google ist es mir diesmal endlich gelungen einen
funktionierenden seriellen Programmer fuer den 16F84 zu bauen und
erfolgreich einzusetzen. Als programmer software habe ich ICProg erfolgreich
unter Windows 2000 getestet. Das Programm fuer den 16F84 ist die
PIC 4MHz firmware v1.7 von Jon Rhees.
Um das Programm im 16F84 zu verifizieren, habe ich das
UIRT test programm benutzt und alles scheint korrekt zu funktionieren.
Girder habe ich noch von meinen Tests vor ein paar Monaten installiert. Ich downloade
nur noch die letzte Version des UIRT plugins fuer Girder und installiere es ohne Probleme. So weit so gut.
Leider klappte das Lernen der Befehle mit Girder nicht so toll, da bei gleichem Tastendruck immer andere
Befehlssequenzen vom UIRT2 ausgegeben werden.
Die Loesung zum Problem ist ein
einloeten eines 100nF Keramik Kondensators parallel zu den Pins fuer die Spannungsversorgung des IR Empfaengers und
damit loest sich das Problem mit der Ueberempfindlichkeit des Empfaengers fuer Oberschwingungen in der Stromversorgung.
Nach dem einloeten des Kondensators ist die Befehlswiedergabe korrekt. Ein mehrmaliges Druecken der gleichen Taste auf
der Fernbedienung zeigt jetzt auch immer die gleiche Befehlssequenz an. Sehr gut.
Nach einigem ausprobieren mit Girder und dem plugin finde ich heraus, wie der UIRT2 die Frequenzen von der Fernbedienung
lernen kann und damit ohne irgendwelche Zuhilfe vom laufenden Computer, vier der sechs vorhandenen Darlington Transistoren
schalten kann. Ich lege die Frequenz vom "Power" Knopf meiner Fernbedienung in den 16F84 und der erste Test mit dem
Multimeter zeigt Erfolg. Der Darlington Transistor schaltet durch. Jetzt muss ich nur noch herausfinden, welcher Pin
am EPIA Mainboard auf Masse gezogen werden muss, damit das Mainboard einen "Ein" Befehl bekommt.
Es ist der linke Pin, wenn man das Mainboard so vor sich liegen hat, das die Schnittstellen (seriell, parallel, Ethernet etc. etc.) alle
auf der linken Seite des Mainboards sind. Ein kleines Stueck Draht verbindet jetzt mein Darlington Transistor
mit dem Pin fuer "Power On" auf dem Epia Mainboard. Ein Druck auf den "Power" Knopf der Fernbedienung schaltet das EPIA
Board tatsaechlich ein. Endlich kann ein Erfolg mit dem UIRT2 gemeldet werden.
15.06.2003
Heute gehts an das Kompilieren und Installieren der LIRC software und das anschliessende Lernen der IR Kommandos von
der Fernbedienung. Der Besuch von der LIRC webseite bringt auch schon die erste Enttaeuschung. Es gibt keine Unterstuetzung
fuer den UIRT2. Sehr aergerlich. Nach langer Suche mit google nach einem etwaigen Beta Treiber, welchen ich dann
eventuell fertig programmieren koennte schlaegt fehl. Am Ende stosse ich dann aber doch auf einen UIRT2 Treiber
auf der Sourceforge Projekt Seite von LIRC.
Das lirc-0.6.6-uirt2.diff patcht gegen den originalen 0.6.6 Quellcode ohne irgendwelche Probleme.
Kompilieren und Installieren geht auch ohne Fehler vonstatten. Bevor der LIRC daemon gestartet wird muss man mit irrecord
erstmal die Frequenzen der Fernbedienung lernen. Danach kann dann mit lircd der Daemon gestartet werden und mit irw
wird dann die korrekte Annahme der Befehle nachgeprueft. Der Start von lircd und der Test mit irw bestaetigt dann auch
die richtige Funktion vom UIRT2 Geraet. Alles laeuft wie es soll.
16.06.2003
Jetzt muss ich nur noch das LIRC plugin fuer XMMS installieren. Downloaden kann
man das plugin von hier.
Das Kompilieren laeuft ohne Probleme und die Installation ist auch erfolgreich. Nach dem ich das .lircrc angepasst
habe und das plugin in XMMS eingebunden habe, funktioniert das Steuern von XMMS ueber Fernbedienung einwandfrei.
17.06.2003
Es fehlt mir jetzt nur noch ein XMMS plugin um LCDproc mitteilen zu koennen,
welcher Titel laeuft und wieviel Spielzeit schon abgelaufen ist. Nach langem googlen werde ich durch Zufall fuendig.
Auf einer fuer mich unleserlichen Seite stosse
ich auf ein kleines plugin mit dem Namen miniLCD V0.0.2, welches allerdings nur fuer 16x2 Character Displays ausgelegt ist.
Ich schau mir kurz den Quellcode an, aendere die LCD Groesse und aendere noch ein paar andere Dinge, um Start,Pause und Stop
Status anzeigen zu koennen. Jetzt muss ich dieses plugin nur noch so erweitern, das ich damit auch noch playlists
verwalten kann. Dafuer fehlt mir im Moment allerdings die Zeit.
10.07.2003
Start des Prototypen fuer Gehaeuse
Plexiglasplatte im Baumarkt mit noetigem Werkzeug wie Gewindeschneider und Rotationsschneider fuer Dremel gekauft, nachdem
ich daheim mein Entertainmentcenter vermessen habe nachdem ich den Platz fuer den MP3 Spieler ausgesucht hatte.
11.07.2003
Wir ham gesaegt, geschnitten, gefeilt, geschrubbt, gespachtelt, geflucht und so isses worn:
LCD Display hinter Aluplatte versteckt und auf Plexiglas Ausschnitt montiert
Schnappschnuss der Frontansicht
Schnappschuss der Draufsicht bei offenem Gehaeuse
Bauteilpreise:
|
VIA EPIA Mainboard mit 533MHz luefterlosem Eden Prozessor | 95USD
|
|
2.5" 4GB Festplatte | kostenlos
|
|
20x2 LCD Display | 20USD
|
|
Bauteile fuer den Infrarot Empfaenger | 18USD
|
|
Adapter fuer 2.5" Festplatte auf IDE | 5USD
|
|
135W Flex ATX Netzteil L191mm X B43mm X H82mm | 35USD
|
|
Total: | 173USD
|
Links:
PC auf 170x170mm Informationen ueber den Mini-PC von VIA.
Crystalfontz Hersteller von LCD Anzeigen verschiedener Art.
Dokumentation ueber Anschluss eines HD44780 kompatiblen LCD's
PC Infrarot Fernbedienung UIRT2 PC Fernbedienung zum Selberbauen.
Linux Infrared Remote Control. Linux mit Fernbedienung steuern.
Windows Remote Control Girder Windows mit der Fernbedienung steuern.
LCDproc Linux LCD Display driver.
Linksammlung ueber PIC's
Sejin Electron Inc stellt schnurlose Tastaturen mit integriertem Trackball her
Copyright 2002 Thomas Reich