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

Den Schaltplan für die AVR Ethernet Platine und den VS1002 Decoder sind auf den oben erwähnten Webseiten erhältlich. Die Webseiten für die Athernet Platine und den VS1002 Decoder sind inzwischen nicht länger verfügbar. Die für die Platinen notwendigen Erweiterungen stehen hier zum Download bereit.
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 :(