Apple Remote Shield

Die Idee

Da sich die VFD-Clock v3_mp3 ja mittlerweile in einem recht ausgereiften Stadium befindet, um sie ernsthaft als Music-Player einzusetzen, lag es nahe, sie auch per Fernbedienung steuern zu können. Nach kurzer Suche nach der passenden Fernbedienung fiel mir die Apple Remote auf. Sie hat genau die Anzahl an Tasten, die benötigt werden und dies mit einer sinnvollen Anordnung. Dazu ist sie auch in einem passenden, edlen Design. Diese Fernbedienung ist bei ebay mit etwas Glück für 10€ in „neu“ zu bekommen.

Das Protokoll

Das Infrarot Protokoll der Apple Remote ist ähnlich dem NEC Protokoll aufgebaut. Als Präambel wir ein 9µs langes „low“, gefolgt von einem 4,5µs langem „high“, gesendet. Dann folgen 16Bit mit dem Apple Custom-Code (0xEE und 0x87), worauf dann der eigentliche Befehl folgt (8Bit) und die Remote ID (8Bit). Eine 1 ist ein „high“ mit einer Länge von 1690µs und eine 0 ein „high“ von 560µs, jeweils gefolgt von 560ms „low“ Pause. Bei allen Bites gilt LSB first.


An einigen Stellen im Netz fand ich die Information, dass die Sequenz der Fernbedienung folgendermaßen aufgebaut ist: Präambel + 16 Adress Bit + 11100000 + 8 Kommando-Bits. Dies deckte sich aber nicht mit meinen Aufzeichnungen. Die Tasten Play/Pause und Center besitzen die Besonderheit, dass kurz nach der regulären 32Bit Sequenz eine weitere 32Bit Sequenz mit 0x05 als Befehl gesendet wird. Dies hängt mit der Abwärtskompatiblität zu der alten, weißen Apple Remote zusammen, da diese nur 6 Tasten besitzt. Wenn man also die 7 Tasten der Alu Remote nutzen möchte, muss man diesen Umstand in dem Mikrocontrollerprogramm beachten. Wird eine Taste länger gedrückt, so sendet die Fernbedienung einen sogenannten Repeat-Code, der aus einem 9ms langen „high“ + 2,25µs „low“ + 560µs „high“ besteht. Der Repeat Code wird, solange die Taste gedrückt ist, alle 108ms wiederholt.

Software/Hardware

Die Hardware ist Relativ simpel uns besteht eigentlich nur aus der Standardbeschaltung eines Atmegas. Für den Empfang der IR Signale hängt am INT0 Pin der IR Empfänger mit einem Pullup und etwas Spannungsstabilisierung. Zum Anlernen der Remotes ist der Microcontroller noch mit einem Taster beschaltet. Für eventuelles Debugging sind RX und TX als Lötpads herausgeführt. Als „Spielerei“ sind noch ein paar Leuchtdioden in der gleichen Anordnung wie auf der Fernbedienung auf der Platine und Leuchten bei Tastendruck entsprechend auf. Das Besondere dabei ist, dass sie sich einen Vorwiderstand teilen, was aber auch reicht, da immer nur eine LED leuchten kann. Der ISP ist aus Platzgründen auch nur als Lötpad herausgeführt, da später eigentlich keine Programmänderungen mehr erforderlich sind.



Die Software ist auf die neuere Apple Remote (Alu) angepasst. Für die erste Version der Fernbedienung bedarf es in der Software evntl. noch ein paar kleine Änderungen. Leider hatte ich diese zum Testen nicht da. Nachdem der Controller das erste mal geflahst wurde, muss die Fernbedienung noch angelernt werden. Die geschieht, indem man den Taster auf dem Shield gedrückt hält und gleichzeitig eine beliebige Taste auf der Fernbedienung drückt. Die Adresse der Fernbedienung wird dann im eeprom des Controllers gespeichert, d.h. dieser Vorgang muss nach erneutem Flashen wiederholt werden, aber nicht nach Trennung der Spannungsversorgung.

Wer Platinen benötigt, kann sich wie immer bei mir per Mail melden

Files zum download : apple_remote_shield_v1.0.zip updated 23.10.2014

Bilder