Nachdem ich im Kaltmacher-Forum über ein Projekt zur Verkleinerung des Yampp7 gestolpert bin, habe ich mich auch ein bißchen der Größe des FATyampp angenommen. Da ich zwei Chips weniger brauche, könnte er ja vielleicht noch ein bißchen kleiner werden... Und so ein schickes Farbdisplay sollte natürlich auch sein! So entstand der microYampp.
Als Speichermedium wird nunmehr eine MMC/SD-Karte verwendet. Diese sind deutlich kleiner als CF-Karten und somit ideal für ein "kleines" Projekt. Der Rest der Schaltung ist unverändert - VS1001 als MP3-Decoder, ATmega162 als Prozessor. Die vier Knöpfe wurden durch einen Mini-Joystick der Firma ALPS ersetzt.
Das Display ist das altbekannte Nokia 6600-Display, es hat eine Auflösung von 128x128 Punkten und kann bis zu 65535 Farben darstellen. Im microYampp wird es im 256-Farbmodus angesprochen. Die Hintergrundbilder liegen als .rgb-Dateien auf der SD-Karte. Eigentlich sollen sie mal in ein spezielles Verzeichnis "skin" wandern - aber ich habe noch keine Zeit gefunden, die Variable "skincluster" mit Leben zu füllen... Vom Format her sind es Bitmap-Dateien, allerdins ohne Header. Außerdem wurde die Paletten-Information durch einen RGB-Wert im richtigen Format (RRRGGGBB) ersetzt: 256-Farben-Bitmaps enthalten eine Palette der verwendeten Farbtöne, die Pixelinformationen sind keine RGB- sondern Indexwerte, die den zu verwendenden Paletteneintrag angeben. Aufgrund der RAM-Knappheit im ATmega162 ist es nicht möglich, die Palette vorzuhalten und daher direkt Bitmaps zu verwenden. Mit dem Konverter-Tool bmp2rgb lassen sich Bitmaps aber schnell umwandeln. Derzeit werden 4 Bitmaps unterstätzt: Stop, Play, Menu, Contrast. Das Tool liegt im Verzeichnis "skin".
Die Displays, die ich über eBay bezogen habe, hatten keine riesengroßen Lötpads, wie manche Displays mit dem Philips-Controller. Daher habe ich im Layout den zum Display passenden Stecker vorgesehen. So muß man am Display nur den kleinen Plastikkäfig um den Anschluß abkneifen, da der Stecker auf der Platine wegen der Chips etwas tiefer sitzt. Bezugsquelle für die Stecker ist eBay oder der Webshop auf der Yampp-Seite.
Vor dem Compilieren der Firmware muß man in der Datei constants.h angeben, welches Display man benutzt. Die Routinen für das Philips-Display und den originalen Epson-Controller habe ich 1:1 vom Yampp7 übernommen. Da ich kein solches Display habe, kann ich nicht sagen, ob sie fehlerfrei funktionieren. Sofern der Displayinhalt Kopf steht oder gespiegelt ist, muß man gemäß dem Datenblatt der Controller mit den MADCTL-Werten (lcd.h) experimentieren.
Auch auf einen Spannungsverdoppler für die LEDs der Hintergrundbeleuchtung habe ich verzichtet. Daher ist es nötig, die auf dem Display in Serie geschalteten LEDs parallel zu schalten. Dazu einfach die Leiterbahn, die die LEDs verbindet, durchtrennen und mit zwei Drähten die rechten und linken Anschlüsse der LEDs miteinander verbinden. Das nebenstehende Bild verdeutlicht das. Achtung: andere Displays können eine andere Leitungsführung haben, daher die richtige Leiterbahn unbedingt mit dem Durchgangsprüfer herausfinden!
Wer eigene Skins erstellen will, sollte sich die Datei lcdlayout.h ansehen. Hier sind die Koordinaten der Texte und anderen Bildschirmelemente sowie Länge der Scrolltexte / Fortschrittsbalken etc. abgelegt. Sofern der eigene Skin Elemente an eine andere Stelle verschiebt, müssen die Änderungen hier vorgenommen werden. Noch nicht gelöst ist das Farbproblem. Derzeit werden alle Elemente mit fixer Vorder- und Hintergrundfarbe gezeichnet. Besser wäre es, die Farbe des Hintergrundbildes an der entsprechenden Stelle zu verwenden. Beim Yampp7 werden die Farben in einer Tabelle abgelegt. Mal sehen, wann ich das angehe.
Das Gehäuse ist ebenfalls eine Eigenkonstruktion. Es besteht aus 1,5mm starkem Aluminiumblech, dieses wurde zurechtgeschnitten und dann wie eine Faltschachtel umgebogen. Nach dem Umbiegen wurden die Ecken rundgefeilt und mit 2-Komponentenkleber ausgesteift. Die Rückseite wurde zu einem "U" gebogen und trägt den Akku. Das nächste mal werde ich wohl 1mm-Blech nehmen, das stärkere ist schwer zu biegen, wie man am etwas mißglückten Bodenblech sieht. Eventuell gibt´s irgendwann ein Bodenblech, auf dem die senkrechten Streifen zum Festschrauben aufgeklebt und nicht mehr umgebogen sind.
Der Akku stammt aus einem Nokia 6100; lediglich die Schutzelektronik wurde wie im Navman-Projekt an die Seite gelegt, um Platz in der Länge zu gewinnen. Die neueren 6600-Akkus sind noch etwas kürzer, eventuell kann man damit den Player noch flacher aufbauen - der limitierende Faktor sind die Elkos am Ausgang. Sofern der Akku so klein ist, daß er diese nicht mehr überdeckt, kann man 2-3mm Höhe einsparen. Wegen des deutlich schlechteren Klirrfaktors von Tantalkondensatoren habe ich trotz der Größe Elkos verwendet.
Trotz des kleinen Akkus (die Kapazität dürfte irgendwo zwischen 700-900 mAh liegen) kommt der Player auf eine Spielzeit von 15-20h - je nach dem, ob die Hintergrundbeleuchtung ein- oder ausgeschaltet bzw. gedimmt wird.
Die Firmware unterstätzt jetzt auch eine Ordnerstruktur. Im Hauptverzeichnis können sich neben MP3-Dateien und M3U-Playlists auch Ordner befinden. Im Stop-Modus werden die Ordner angezeigt. Mittels "Play" wechselt man in den Ordner, auch hier wird wieder eine eventuell vorhandene Playlist berücksichtigt. Erneutes Drücken von "Play" startet die Wiedergabe des ersten Stückes. Noch ist ein Abspielen über die Ordnergrenze hinweg nicht implementiert, das kommt irgendwann noch. Vielleicht gibt´s ja Freiwillige?! ;-) Auch eine Shuffle-Funktion ist noch nicht enthalten.
Bugs, Verbesserungsvorschläge und Fehlermeldungen bitte an This e-mail address is being protected from spambots. You need JavaScript enabled to view it Bilder von eigenen Yampp-Varianten sind auch gerne gesehen - vielleicht gibt´s ja hier irgendwann eine Galerie der schicksten und kleinsten Yampps!




microYampp

