Wie man alte Kassetten auf einem Google Home-Lautsprecher mit Spotify abspielt

Wie bitte?

Musikkassetten aus dem letzten Jahrhundert gemischt mit der modernsten Technik von heute?

Ich weiß, dass dieser Satz beim ersten Hören keinen Sinn ergibt, aber glaub mir, es ist möglich und es ist ein lustiges DIY-Projekt, das jeder ausprobieren kann.

Also, möchtest du erfahren, wie ich einen alten Kassettenspieler zehnmal schlauer gemacht habe?

Vor ein paar Jahren bin ich auf einen Artikel gestoßen, in dem beschrieben wurde, wie man eine Raspberry Pi-Jukebox mit NFC-Karten bauen kann. Es funktioniert, indem die NFC-Karte in der Nähe des Lesegeräts platziert wird, das die Musikwiedergabe über ein Soundsystem auslöst. Ich fand die Idee schon immer gut, aber ich hatte das Gefühl, dass noch etwas fehlte. Ich wollte etwas, das altmodisch aussieht, aber gleichzeitig technologisch fortschrittlich ist.

Ich fing an, alte Kassettenrekorder ins Auge zu fassen, die ich in einen intelligenten Musikplayer verwandeln könnte. Da ich jedoch nicht noch ein weiteres Projekt anfangen wollte, blieb es immer in dieser „nur mal schauen“-Phase.

Ein paar Monate später veranstalteten wir im 1Home Büro eine Wichtelparty. Ich hatte keine Ahnung, was ich auf meinen Wunschzettel schreiben sollte, aber dann fiel mir dieser Old-School-Kassettenrekorder ein. Ich habe ihn nur zum Spaß auf die Liste gesetzt, obwohl ich nicht wirklich damit gerechnet habe, dass mein Wichtel ihn für mich besorgen würde - doch an Heiligabend war er da.

Ich bekam einen schönen Conic Kassettenrekorder aus den 80er Jahren mit einem Radio, das noch in gutem Zustand war und gut funktionierte. Es tat mir ein bisschen leid, ihn auszuschlachten, aber ich musste ein paar Opfer bringen, um dieses Projekt zu verwirklichen.

Der Plan war, einen Kassettenspieler zu bauen, der Musik auf Chromecast-Geräten abspielt, wenn eine mit einem NFC-Tag versehene Kassette in ihn eingelegt wird. Jede Kassette sollte mit einem anderen NFC-Tag versehen sein, der für ein anderes Album, einen anderen Künstler oder eine andere Playlist steht. Da der Kassettenrekorder auch AM/FM-Radio abspielen konnte, gab es auch die Möglichkeit, verschiedene Radiosender über die Chromecast-Geräte abzuspielen - je nachdem, welcher Eingang am Player ausgewählt wurde.

Dafür bräuchte ich einen Raspberry Pi als Hauptgerät mit einer Software, die die Wiedergabe von Musik oder Radiosendern auf dem Chromecast-Gerät steuert.

Diese Software würde auch seriell über USB mit dem Arduino Board kommunizieren, an das ich elektronische Bauteile anschließen würde, z. B.:

  • den NFC-Leser,
  • die Relaisplatine,
  • Eingangsschalter und
  • LEDs.

Ich wollte so viele Originalteile wie möglich erhalten. Vor allem die mechanischen, um das Old-School-Gefühl zu bewahren - das Klicken, wenn man die Knöpfe drückt und die Vorrichtung in Gang setzt, die alles zum Laufen bringt.

Der Kassettenmechanismus selbst ist mit seinen vielen Hebeln und Rädern, die über einen Riemen vom Motor angetrieben werden, ziemlich bemerkenswert. Ich konnte einen großen Teil davon erhalten und habe hauptsächlich die elektronischen Teile entfernt, die für das Lesen der Kassetten und die Aufnahme zuständig waren.

Ich habe den Motor an ein Relais angeschlossen, um ihn später mit dem Arduino zu verbinden und ihn ein- und auszuschalten, womit das Rollen des Bandes simuliert wird.  Außerdem habe ich zwei kleine Metallplatten angeschlossen, die sich berühren, wenn die Abspieltaste gedrückt wird, damit die Musik zu spielen beginnt, der Motor läuft und Licht das Kassettenband im Inneren beleuchtet.

Unter dem Kassettenmechanismus habe ich das NFC-Lesegerät angebracht, das mit dem Arduino verbunden ist und den NFC-Tag der eingelegten Kassette liest, damit es weiß, welchen Künstler oder welche Playlist es abspielen soll. Zur Befestigung all dieser Komponenten habe ich ein paar Teile mit dem 3D-Drucker ausgedruckt.

Auf der anderen Seite des Players befanden sich die elektronischen Komponenten für das Radio. Ich habe das meiste davon entfernt und nur die Elektronikplatine mit den Original-Druckschaltern behalten. Von diesen habe ich die Drähte abgezogen, um sie mit dem Arduino zu verbinden. Dadurch wird erkannt, wenn einer der Knöpfe gedrückt wird, und der entsprechende Radiosender wird abgespielt. Ursprünglich wollte ich das Frequenzwahlrad verwenden, aber am Ende wäre es zu mühsam gewesen, es zum Laufen zu bringen, also habe ich die Idee verworfen.

Für Arduino und Raspberry Pi habe ich auch 3D-gedruckte Halterungen angefertigt, damit sie an ihrem Platz befestigt werden können.


In meiner Kabelrestekiste habe ich einen kurzen HDMI-Extender gefunden, den ich vom Stromanschluss auf der Rückseite des Gehäuses zum Raspberry PI geroutet habe, damit ich einen Bildschirm anschließen konnte. Und für die Steuerung des Raspberry Pi steckte ich einfach den Dongle einer billigen Tastatur/Maus-Kombination in den USB-Anschluss - und voilà! Der Computer im Inneren des Kassettenspielers war nun bereit für den Einsatz.

Als Nächstes habe ich mit der Programmierung des Players begonnen.

Ich habe mit der Software auf Arduino angefangen, die ziemlich trivial ist. Sie sendet einfach die Befehle an den Raspberry Pi: welches Radio abgespielt werden soll, welches Band eingelegt oder welche Taste gedrückt wurde. Außerdem schaltet sie den Bandmotor mit Relais und LED für die Beleuchtung ein.

Das System auf dem Raspberry Pi hingegen ist komplexer - es besteht aus zwei Teilen:

Der erste ist verantwortlich für die Kommunikation mit Arduino, das Auslösen von Radiosendern zum Abspielen auf Chromecast-Geräten und einige grundlegende Web-UIs, die es dem Benutzer ermöglichen, aktive Lautsprecher auszuwählen, Radiosender zu definieren und Playlist-Mappings für NFC-Tags einzurichten. Hierfür habe ich Node.js verwendet, da es bereits über zahlreiche Bibliotheken verfügt und ich einfach und schnell Prototypen erstellen und herumspielen kann.

Der zweite Teil des Systems ist HomeAssistant, das ich zunächst vermeiden wollte, da es einfach totaler Overkill ist. Nach zahlreichen Stunden, die ich damit verbracht habe, Probleme zu lösen, um das Gleiche von Node.js aus zu tun, habe ich aufgegeben und HomeAssistant in wenigen Minuten eingerichtet. Ich habe die Spotify- und Spotcast-Integrationen installiert und dann eine Automatisierung erstellt, die per Webhook vom Node.js-Dienst ausgelöst wird und die Musik von Spotify auf dem ausgewählten Chromecast-Gerät abspielt.

Nachdem dies alles eingerichtet ist, habe ich nun einen Kassettenrekorder, der - anstatt Audio über seinen internen Lautsprecher abzuspielen - Musik auf das Chromecast-Gerät überträgt und es mir ermöglicht, Musik mit höherer Qualität abzuspielen und alle Funktionen des Google Home-Ökosystems zu nutzen.

Dieses Projekt hat mir unglaublich viel Spaß gemacht, da es alle verschiedenen Bereiche miteinander verbindet, um etwas zu schaffen, das nützlich und gleichzeitig ein absoluter Hingucker ist.

So sieht das Ganze in Aktion aus:

Da es sich um ein DIY-Projekt handelt, ist es natürlich noch nicht fertig. Ich muss noch viele Verbesserungen an der Software vornehmen und ein paar Bugs beseitigen. Ich denke auch über Lautstärkeregler auf der Oberseite des Players nach, bei denen es sich um einfache Potentiometer handelt, die zur Steuerung der Lautstärke auf dem Chromecast-Gerät verwendet werden könnten.

Kürzlich hatte ich auch die Gelegenheit, mit Sonos-Lautsprechern zu arbeiten. Deren Einbindung anstelle von Chromecast-Geräten wäre viel einfacher, da sie über eine sehr leistungsfähige API verfügen. Im Hinblick auf die effiziente Steuerung von Lautsprecher-Ökosystemen kann sich Google von Sonos noch eine Scheibe abschneiden.