Stand-alone mp3 Player
Die Idee für einen mp3 Player, der auch Netzwerkstreams abspielen kann,
entstand bereits 2005.
Verwendet werden sollte damals das von Guido Fischer entwickelte Modul Arthernet.
Nachdem die Platine damals zusammen gelötet wurde, fehlte mir jedoch
die Erfahrung diese doch recht umfangreiche Idee umzusetzen. Nach
einigen weiteren Projekten ging es dann Mitte 2009 wieder weiter.
Inzwischen ist das Projekt abgeschlossen.
Bilder
Ein
Video bei Youtube zeigt den Player im Betrieb.
In einem zweiten Video gibt es noch ein paar Extras zu sehen.
Features
- 128x64 Pixel LCD mit einem Menüsystem
- Steuerung per Infrarot Fernbedienung (RC5) und/oder Drehencoder
- Spielen von mp3s von einer internen SD Karte oder von einem Netzwerkstream (Shoutcast, Lastfm)
- Arthernet Platine mit ATmega128, 512KB SRAM und RTL8019AS Ethernet Chip
- VS1002 decoder
- FTP Server zum Befüllen der SD Karte
- Nut/OS dient als Betriebssystem
- Betrieb mit 9V @ 160...300mA = 1,5...2,7W
- Aluminiumgehäuse
- Aufnahme von mp3 Streams
- Auf Wunsch spätere automatische Aufnahme eines Stücks um es vollständig zu bekommen
- Dekodieren und Anzeigen von Meta Informationen (ICY200, ID3)
- Unterstützen von Redirects
- SD-HC Unterstützung
- Verschiedene mp3 Wiedergabemethoden (Zufall, ähnlicher Zufall, Ordner, Kontinuierlich)
- Statistiken (Uptime, Reboots, Traffic etc)
- Automatisches Wiederherstellen des letzten Zustands nach einem Einschalten
- Zeit Einschalten->Wiedergabe: ~6 Sekunden bei Dateien, ~17 Sekunden bei Streams
- Alphabetisches sortieren von Dateinamen
- Es ist möglich die Software für Testzwecke auch unter Linux (i386) zu compilieren und auszuführen
Durch die Arbeit fertig gestellte Unterprojekte und Anleitungen, veröffentlicht auf mikrocontroller.net
Schaltpläne und Sourcecode
input-connector.png display-connector2.png spi-mp3-connector2.png audio-connector.png |
Schaltpläne für die Erweiterungen der AVR Ethernet Platine |
infplay-final1.zip | Alle geplanten Features sind implementiert. Fast alle Fehler behoben. |
blist-modyf.php | Bestückungsliste für die Platine. Die durchgestrichenen Bauteile sind nicht nötig. |
Portierbarkeit
Eine Portierung der Software auf eine
andere Hardware ist möglich, erfordert aber etwas Einarbeitungszeit
in meine Software. Generell muss die Plattform jedoch von Nut/OS
unterstützt oder eine passende API bereit gestellt werden. Auf einem
AVR werden knapp 128KB Flash benötigt.
Ferner werden mindestens 100KB RAM (am besten 512KB) benötigt. Bei
der AVR Platine ist der RAM in Segmenten zu je 16KB anzusprechen.
Diese Verwaltung ist relativ Tief in der Software integriert.
Ebenfalls recht tief integriert und speziell an der Hardware ist die
Verwaltung des SPI Bus. Auf diese beiden Bereiche dürfte daher die
Hauptarbeit einer möglichen Portierung entfallen. Die Möglichkeit die
Software auf dem PC auszuführen zeigt jedoch, dass eine Portierung
prinzipiell machbar ist.
Verbesserungsmöglichkeiten
- Keine zwei bis drei verschiedenen Spannungen (8V fürs ursprüngliche LCD, 5V für Controller, 3,3V für SD Karte und MP3 Decoder)
- Und wenn doch, dann Schaltregler verwenden
- Leistungsfähigeren Controller für mehr ftp Datendurchsatz und weniger Probleme mit zu wenig RAM, z.B. ARM7
- Nicht mit einem Restposten billig LCD anfangen, bei welchem langsam Zeilen ausfallen und für das kein Ersatz in gleicher Größe verfügbar ist.
- Die Vier-Dioden Schaltung am Eingang der Ethernet Platine ist ungünstig, wenn man an dem gleichen Netzteil noch eine weitere Schaltung betreiben möchte und man dadurch plötzlich unterschiedliche Potentiale an GND hat.
2017 - 8 Jahre später...
Die Platine war 2004 technisch aktuell.
Jedoch ist auch hier der Fortschritt deutlich sichtbar.
Heutzutage wäre ein Raspberry Pi die Hardware der Wahl, der jedoch erst
seit 2012 verfügbar ist.
Bemerkenswert ist auch, dass sowohl der Shop für den Verkauf des mp3 Decoders als auch die Webseite der Arthernet Platine inzwischen nicht mehr existieren. Auch die Entwicklung des verwendeten Nut/OS schein inzwischen fast zum Erliegen gekommen zu sein. Der Author von dem der in dem Projekt verwendete 5x7 Pixel Font stammt ist gestorben. Und last.fm hat (die von dem Player unterstützte) Streaming möglichkeit eingestellt. Das ist alles sehr schade :(
Bemerkenswert ist auch, dass sowohl der Shop für den Verkauf des mp3 Decoders als auch die Webseite der Arthernet Platine inzwischen nicht mehr existieren. Auch die Entwicklung des verwendeten Nut/OS schein inzwischen fast zum Erliegen gekommen zu sein. Der Author von dem der in dem Projekt verwendete 5x7 Pixel Font stammt ist gestorben. Und last.fm hat (die von dem Player unterstützte) Streaming möglichkeit eingestellt. Das ist alles sehr schade :(