Kopfhörer-Fernbedienung: Adapter für proprietäres Apple Protokoll (mit MSP430)

Gast #7634810
Lesenswert?

Hallo zusammen,

ich hab hier mal wieder ein kleines Projekt auf dem Tisch liegen, wo die Machbarkeit fraglich ist - daher brauche ich einen Expertenrat. Vorab: Dass das Projekt finanziell nicht rentabel oder vielleicht technisch nicht sehr sinnvoll erscheint, ist für mich zweitrangig - es geht erst mal primär um die Machbarkeit.

Folgendes Problem:

Mein iPod Nano 7G hat einen Klinke Kopfhörer-Anschluss mit 4 Kontakten (TRRS). Über zwei der Kontakte (R und S) wird die Kopfhörer-Fernbedienung gesteuert (lauter, leiser, play/pause, weiter, zurück, spulen). Leider nutzt Apple hier ein proprietäres Protokoll um hauseigene Kopfhörer zu "authentifizieren" (ein Ultraschall Signal), so dass "lauter" und "leiser" der Fernbedienung nur mit original Apple-Kopfhörern funktioniert, nicht aber mit Kopfhörern anderer Hersteller (zumindest mit den meisten).

Jemand hat das ganze mal reverse engineered... hier ist es sehr gut dokumentiert: https://tinymicros.com/wiki/Apple_iPod_Remote_Protocol

Kopfhörer für z.B. Android-Telefone mit Klinkenanschluss steuern die Lautstärke über einen Widerstand zwischen R und S Kontakt, wobei man 200Ω für vol+ (lauter) and und 600Ω für vol- (leiser) spezifiziert. Der Play/Pause Knopf ist bei beiden Standards mit 2Ω spezifiziert, Play-Pause funktioniert also auch mit den Android-Kopfhörern.

Leider sind die Apple-Kopfhörer vom Sound her nicht die tollsten, kein In-Ear und sie gehen sehr schnell kaputt bei hohem Preis.

Ich würde nun also gerne einen Adapter in Form einer "Man in the middle - Klinkenverlängerung" bauen...

1
          ______________
2
     ____|   ______     |____
3
<===|____|  |MSP430|    ||||o| <--- Buchse
4
^        |______________|
5
|
6
-- Stecker

Sprich:

  • Der geplante Adapter hat einen TRRS-Stecker, eine TRRS-Buchse und dazwischen einen MSP430 zur Signal-Steuerung
  • Man stöpselt den TRRS-Stecker des Adapters in den iPod
  • Dann den Android-Kopfhörer in die TRRS-Buchse
  • Der MSP430 emuliert das proprietäre Apple Protokoll
  • Eine Schaltung misst Widerstand des Android Kopfhörers zwischen R und S
  • Ist er 200Ω emuliert man Apples vol+
  • Ist er 600Ω emuliert man Apples vol-
  • ist er < 10Ω schaltet man durch / emuliert man play/pause

Wichtig: Der Adapter sollte in einer Custom PCB Version nicht allzu groß sein (sagen wir mal maximal Rasperry PI Zero Größe). Bestenfalls sollte der Adapter OHNE eine extra Batterie / Stromquelle auskommen und vom iPod selbst versorgt werden, daher habe ich den MSP430 gewählt. Wenn es was besseres gibt, immer her damit.

Meine Fragen:

  • Ist das grundsätzlich überhaupt möglich?
  • Ist der zu erwartende Verbrauch des Adapters ohne eigene Stromquelle so hoch, dass es den Akku vom iPod Nano 7g (220mah) zu schnell auffressen würde bzw. wovon hängt das ab?
  • Was würde ich alles dazu brauchen? (gerne konkrete Angaben bezüglich chip-bezeichnungen, elektronischen Bauteilen und Programmern)

Vielen Dank für jeden Beitrag dazu :-)

#7635413
Lesenswert?

Das sollte grundsätzlich möglich sein, In dem Link den Du gepostet hast wird im Prinzip alles erklärt um den Kopfhörer zu emulieren.

Die Auswertung der Tasten am Standardkopfhörer ist einfach, du brauchst nur einen Widerstand gegen plus und die Spannung am Controllpin messen.

Stromversorgung über die Controlleitung könnte mit einem sehr sparsamen Mikrocontroller und stromspaarender Programmierung funktionieren wenn Du eine schottkey Diode von der Controllleitung zu plus des Mikrocontrollers und einen einigermaßen Kondensator von plus nach Masse schaltest.

Gast #7635471
Lesenswert?

Frederic S. schrieb:

Das sollte grundsätzlich möglich sein, In dem Link den Du gepostet hast wird im Prinzip alles erklärt um den Kopfhörer zu emulieren.

Die Auswertung der Tasten am Standardkopfhörer ist einfach, du brauchst nur einen Widerstand gegen plus und die Spannung am Controllpin messen.

Stromversorgung über die Controlleitung könnte mit einem sehr sparsamen Mikrocontroller und stromspaarender Programmierung funktionieren wenn Du eine schottkey Diode von der Controllleitung zu plus des Mikrocontrollers und einen einigermaßen Kondensator von plus nach Masse schaltest.

Also zunächst mal vielen Dank für die Antwort.

Die Kopfhörer-Emulation ist tatsächlich nicht das Problem (das würde ich hinbekommen), sondern die Versorgung des Microcontrollers UND des angeschlossenenen Kopfhörers über die iPod Klinke (ohne extra Batterie), sowie das Messen der sich ändernden Widerstände der Klinken-Buchse.

Meines Wissens nach misst man Widerstände, in dem man einen kleinen Strom durchschickt und den Spannungsabfall prüft. Aber ist das der richtige Weg - denn hier ändert sich der Widerstand ja nur sehr kurz und kleine Ströme sind bei so einer knapp versorgten Schaltung sicher keine super Idee? Wie messe ich denn den Widerstand des Kopfhörer-Fernbedienungs-Drucks am besten?

Dieses Video hier bietet eine vergleichende Einführung in den MSP430: https://www.youtube.com/watch?v=9Zyp4sdSUNM

Aber irgendwie gibt es da viele Varianten und ich weiß leider nicht genau, welchen ich da am besten nehmen würde (Leistungs und Verbrauchsmäßig meine ich)

#7635606
Lesenswert?

Es gibt tausende von Kopfhörern/Ohrstöpseln, die zum Apple-Protokoll kompatibel sind, ich sehe nicht so ganz den Sinn, zu versuchen, selbst einen "Protokollübersetzer" zu basteln. Oder ist der spezifische "Android"-Kopfhörer/Ohrstöpsel, den Du da adaptieren möchtest, so absolut irrwitzig obergöttlich und einzigartig?

Du könntest auch die Kabelfernbedienung eines applekompatiblen Kopfhörers transplantieren, die kannst Du entweder aus einem vorhandenen Gerät extrahieren oder als Ersatzteil für einen der etwas besseren der tausenden Over-oder-On-Ear-Kopfhörer kaufen, die applekompatibel sind.

Willkürliches Beispiel:

https://www.amazon.de/dp/B07XX22MMR?th=1

Da müsstest Du nur statt des einen Steckers eine Buchse dranbasteln, und schon kannst Du Deinen vorhandenen Kopfhörer/Ohrstöpsel weiterverwenden.

(Und sowas gibt es natürlich auch viel, viel billiger, auch gleich mit 'nem Kopfhörer/Ohrstöpsel dran)

Gast #7635955
Lesenswert?

Harald K. schrieb:

Es gibt tausende von Kopfhörern/Ohrstöpseln, die zum Apple-Protokoll kompatibel sind, ich sehe nicht so ganz den Sinn, zu versuchen, selbst einen "Protokollübersetzer" zu basteln.

Auch vielen Dank für diese Idee. Die hatte ich (leider) auch schon... Zur Erklärung: NUR weil ein Hersteller schreibt, dass es kompatibel ist, ist das noch lange nicht der Fall. Und WENN die Kompatibilität tatsächlich gegeben ist, ist es oft nur unzureichend gelöst (sprich: Funktioniert nur alle 3 mal oder nur teilweise). Das von dir verlinkte Kabel hatte ich und es funktioniert mit dem iPod nicht richtig - die Qualität war auch nicht das, was ich mir vorgestellt habe.

Wie ich geschrieben habe: Dass das Projekt finanziell nicht rentabel oder vielleicht technisch nicht sehr sinnvoll erscheint, ist für mich zweitrangig - es geht erst mal primär um die Machbarkeit. Ich habe meine Gründe für diesen hohen Aufwand.

Harald K. schrieb:

Du könntest auch die Kabelfernbedienung eines applekompatiblen Kopfhörers transplantieren, die kannst Du entweder aus einem vorhandenen Gerät extrahieren oder als Ersatzteil für einen der etwas besseren der tausenden Over-oder-On-Ear-Kopfhörer kaufen, die applekompatibel sind.

Richtig, das könnte ich. Das ist auch aktuell meine einzige gangbare Lösung - allerdings NUR mit einer ECHTEN Apple EarPods Kopfhörer Fernbedienung akzeptabel - diese Klondinger sind einfach schlecht. Und: Ablöten kann man die nicht, man kann aber ein Stück Kabel dran lassen und die verlöten.
Problem dabei: Die Fernbedienungen sind nicht auf lange Haltbarkeit ausgelegt. Das sind billige Plastik-Teile die nach einer gewissen Zeit hakeln, kaputt gehen oder gar brechen - folglich braucht man einen Vorrat an defekten EarPods mit noch gangbarer Fernbedienung als Ersatzteilspender. Spaß macht das keinen.

Harald K. schrieb:

(Und sowas gibt es natürlich auch viel, viel billiger, auch gleich mit 'nem Kopfhörer/Ohrstöpsel dran)

Genau darum geht es. Ich will nicht billig - ich will haltbar, hochwertig und halbwegs preiswert - bestenfalls reparierbar.

Meine aktuelle Lösung sieht so aus, dass ich mir ein selbst hergestelltes geflochtenes TRRS-Kabel modifiziere und eine Apple-Earpods-Fernbedienung einlöte. Sieht scheiße aus, aber ist halbwegs haltbar und funktioniert, abgesehen von der Fernbedienung. Die geht alle paar Monate mal drauf. Damit kann ich einigermaßen leben, aber schön ist das nicht.

Ich hoffe, die Erklärung ist ausreichend detailliert. Es gibt noch viel mehr was mich an diesen Klon-Geräten und halbgaren Kauflösungen stört :-)

#7635959
Lesenswert?

Andreas schrieb:

Zur Erklärung: NUR weil ein Hersteller schreibt, dass es kompatibel ist, ist das noch lange nicht der Fall. Und WENN die Kompatibilität tatsächlich gegeben ist, ist es oft nur unzureichend gelöst (sprich: Funktioniert nur alle 3 mal oder nur teilweise).

Dann ist Dein iPod eine Mimose. Die von Dir geschilderten Probleme kenne ich bei keinem meiner verschiedenen Applegeräten, an denen ich kabelgebundene Kopfhörer eingesetzt habe.

(iPhone 4, iPhone 7 mit Lightning-TRRS-Adapter, iPad 3, iPad Pro 2018 mit USB-C-TRRS-Adapter, MacBook Pro 17" (2011), MacBook Pro 16" (2019) ...)

Mir sind EarPods auch schon kaputtgegangen, aber nie die Fernbedienung, sondern nur das Kabel am Ende des TRRS-Steckers, weil die die Belastung des Betriebs "iPhone steckt in Hosentasche und Kabel im iPhone" nicht überlebt haben.

Übrigens gab es von Apple auch inEars mit diesen Silikonstöpseln, die hießen "ME186LL/A" https://media.s-bol.com/qwYp5kPOj3y/1200x771.jpg

Gast #7636005
Lesenswert?

Harald K. schrieb:

Dann ist Dein iPod eine Mimose. Die von Dir geschilderten Probleme kenne ich bei keinem meiner verschiedenen Applegeräten, an denen ich kabelgebundene Kopfhörer eingesetzt habe.

Ohja. Der iPod Nano 7g ist tatsächlich ein sehr zickiges Stück Hardware - leider für mich unersetzbar (zumindest bisher). Ich kenne kein Gerät in der Größe, was Hörbücher und die Steuerung per Fernbedienung so gut unterstützt, wie das Ding.

Der hat sogar einen Lightning-Anschluss, aber Lightning-Kopfhörer funktionieren nicht (nicht mal Original Apple). An diesem Gerät ist Lightning anscheinend ausschließlich für die Datenübertragung implementiert.

Android Geräte sind ganz cool (besonders weil die auch Wifi Sync hätten), allerdings sind diese Geräte nicht nur wesentlich größer, sondern haben auch einen hohen Energiebedarf. Akzeptabel von Größe und Batterielaufzeit wäre für mich der Fiio M6 (den es neu leider nicht mehr zu kaufen gibt - ich hab aber n paar davon). Der ist sehr klein, leicht und hat Android 7 - Kopfhörer-Fernbedienungen unterstützt der auch. Alternativ der HiBy M300 - aber der ist schon fast wieder zu groß und schwer.

Ich hab auch schon mal angefangen eine App zu entwickeln (https://github.com/sandreas/ToneAudioPlayer) bin aber dann zu Flutter gewechselt, weil die Audio-Controls der Kopfhörerfernbedienung in C# keine brauchbare Library haben und die Apps insgesamt zu schwergewichtig werden (> 70MB). Aber der Zeitbedarf für die Entwicklung einer App ist enorm - wesentlich höher als für so einen kleinen Adapter. Weil es nix gab, das mir gefallen hat, habe ich auch schon https://github.com/sandreas/m4b-tool und https://github.com/sandreas/tone entwickelt - ich mein das mit den Hörbüchern also echt ernst :-)

Für alle, die meine bisherige Odyssee besser nachvollziehen wollen, ich hab da schon mal was gepostet, wo es um iPod Alternativen geht und warum keine davon für mich mit dem iPod mithalten kann:

So, nun, nach diesem Exkurs aber zurück zum Thema: Wie würde eine solche Schaltung aussehen und geht das ohne externe Energiequelle / Akku? :-) Falls nicht, könnte ich auch einen Akku akzeptieren, solange er mindestens 5 Tage durchhält. MSP430 dev board hab ich mir schon mal günstig besorgt.

Gast #7636103
Lesenswert?

Harald K. schrieb:

Blöde Frage: BT-Kopfhörer kommen nicht in Frage? Die haben auch 'ne Fernbedienung ...

Leider nein. Bluetooth hat einige Nachteile ggü. Kabel und trotz Bluetooth 4.0 saugt das die Batterie von den 10 Jahre alten Geräten doch recht zügig leer :-)

Ich hab mir einen iPod mit 600mah Batterie modifiziert (statt der Standard 220mah). Wenn der fertig ist, denke ich drüber nach :-P aber ich werd wohl trotzdem das Projekt rein aus Interesse weiter verfolgen.

Wie gesagt: Es geht mir auch um die Machbarkeit... weniger um eine "bessere" oder "einfachere" Lösung.

Wenn es so einen Adapter gäbe und der Open Source wäre, dann wären alle meine Probleme zwar auch erst mal gelöst, aber ich finde es auch interessant, mit solch niedrigen Strömen (Klinkenanschluss) einen Microcontroller zu betreiben...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren