TonUINO bekommt Bluetooth

Mittlerweile gibt es bei fast allen Geräten Bluetooth, nur nicht beim TonUINO.
Nach vielen Überlegungen mit mehr oder weniger komplexen Lösungen bin ich zu einer ganz simplen Variante mit „ganz normalen“ Schaltern und einem fertigen Bluetooth-Modul (für wenige Euro) zurück und habe einen Breadboard-Aufbau nach folgendem Schema mit einem KCX_BT Modul gemacht:


Die Schalter sind noch nicht dabei, sondern werden z.Zt. durch Steckbrücken simuliert.

Die Audio Eingänge des KCX sind ausreichend hochohmig, wenn das Modul stromlos ist, so dass für die normale Wiedergabe über Lautsprechen kein Einfluss erkennbar ist.
Wird das KCX Modul mit Spannung versorgt, geht es automatisch in den Pairing-Mode und verbindet sich über BT in wenigen Sekunden mit einem erreichbaren Audio-Gerät.
Dabei sollten nicht mehrere Geräte in Reichweite sein, da ansonsten das Pairing eher zufällig mit einem der Geräte erfolgt.
Hat bereits einmal ein Pairing stattgefunden, wird allerding dieses Gerät immer wieder bevorzugt genommen.
Bei erfolgreichem Pairing geht der Link-Pin des KCX auf HIGH und steuert die LED an.
Die BT-Übertragung ist ganz OK, allerdings durch leichte Störgeräusche überlagert, die offenbar durch das KCX selbst verursacht werden. Hierzu stehen noch Versuche aus, die Spannung am KCX mit einem Kondensator zu glätten. Zu berücksichtigen ist auch, dass der gesamte Breadboard-Aufbau ausschließlich über die USB-Buchse des Arduino versorgt ist - also wahrlich keine optimale Bedingung.
Erfreulich: Da die DAC-Anschlüsse des DF-Players an die Lautstärkeregelung gekoppelt sind, funktioniert die Regelung der BT-Lautstärke ebenfalls über die gewohnte TonUINO-Bedienung.

OB und WIE es mit dem BT-Projekt bei mir weiter geht steht noch in den Sternen, da aktuell bei Ben (noch) kein BT-Bedarf besteht. Das KCX-Modul ist allerdings so klein, dass man jederzeit „nachrüsten“ könnte.

3 „Gefällt mir“

Danke für den Schaltplan - ich muss noch ein paar Teile nachbestellen, aber ich versuch das mal so nachzubauen :innocent:

Update 1 zu TonUINO bekommt Bluetooth

Untersuchungen zu den Störgeräuschen und Filtermassnahmen an der Versorgungsspannung haben ergeben, dass die Störgeräusche nicht aus dem KCX-Modul kommen sondern vom DF-Player (Chip MH2024K24SS) selbst durch den Datenverkehr mit dem Arduino erzeugt werden. Bei sehr aufmerksamem Hören sind die Geräusche auch im Lautsprecher vernehmbar, wenn sonst keine weiteren Beschaltungen gemacht sind.

Umschaltung bei Bluetooth-Pairing
Der im DF-Player verwendete NF-Verstärker hat einen Shutdown-Eingang, über den der Verstärker abgeschaltet werden kann. Von einer Modifikation des Players habe ich allerdings abgesehen und mich entschlossen, mit einem ganz ähnlichen Baustein (LM-4871) einen Stereo-Verstärker aufzubauen, der diurch das CONNECT-Signal des KCX-Moduls bei erfolgreichem Pairing abgeschaltet wird.

Mit dem LM4871 und nur wenigen zusätzlichen Bauteilen recht einfach. Leider war der Verstärker nur als SMD-Bauelement beschaffbar, weshalb ich mich lange nicht getraut habe damit weiterzumachen.
Nach einem ermutigendem Lötvideo habe ich es nun getan und 2 dieser Bauelemente auf ein Breakoutboard gelötet.


Das hat tatsächlich funktioniert, wie in dem Video beschrieben (gelötet habe ich mit einer 5 mm breiten Spitze!) und ich habe zumindest einen der Verstärker auf meinem Breadboard in Betrieb genommen

Verbunden mit dem TonUINO-Aufbau mit KCX-Modul (siehe ganz oben) zeigt dass

  • der Sound absolut vergleichbar zum Verstärker des DF-Players ist
  • der Verstärker sauber vom CONNECT-Signal des KCX-Moduls abgeschaltet wird, sobald eine BT-Verbindung besteht
    nach Trennung der BT-Verbindung der Verstärker wieder eingeschaltet wird

Es also keine Bedienung erfordert, zwischen BT und Lautsprecher zu wechseln.

1 „Gefällt mir“

Update 2 zu TonUINO bekommt Bluetooth

BT geht „huckepack“ auf den DF-Player

Die Größe des KCX_BT-Moduls hat mich verleitet, einen sehr kompakten Aufbau als Huckepack auf einen DF Player zu machen:

Die wenigen Anschlüsse lassen sich mit etwas Geschick und feinem Schaltdraht direkt von oben an die Stiftleiste des Player löten.
Die Halterung des SD-Karte wird mit einem Stückchen Isolierband geschützt, damit es nich zu Kurzschlüssen kommen kann, sollte das KCX-Modul die Oberfläche berühren.
Bei diesem Aufbau habe ich in Kauf genommen, dass die Stereo-Kanäle am KCX Modul vertauscht sind. Ansonsten hätten die beiden DAC-Leitungen ge-kreuzt werden müssen.
7.3.1 Die Umsetzung
Zunächst wurden ca. 2 cm lange Schaltdrahtstücke auf der Oberseite des DF Players direkt an die Pins gelötet. Vorheriges Verzinnen des Schaltdrahtes reichte aus, so dass die Stücke ohne weitere Zugabe von Lötzinn verlötet werden konnten.

Es hat sich als vorteilhaft erwiesen, die Schaltdrahtstücke (beginnend vom Ground Pin des Players bis zu Pin 1) stufenweise abzulängen, da sich dadurch das Einfädeln in das KCX-Modul erheblich erleichtert.

Durch den Versatz von 2,54 mm Raster auf 1,27 mm Raster konnte ich das KCX Modul nicht so dicht über den Player setzen, wie beabsichtigt, sondern es verbleibt ein Abstand von 5 – 6 mm zum Player.
Der verwendete Schaltdraht verfügt in der Summe der Verbindungen über ausrei-chend mechanische Festigkeit, so dass (m.M.) eine spezielle Befestigung des KCX-Moduls nicht nötig ist.

Inbetriebnahme und Ergebnis
Nach Korrektur meines Baufehlers (Pin 7 des Players ist Ground und nicht Pin 6, wie zunächst gelötet!) gind das KCX-Modul problemlos in Betrieb und koppelte sich sofort mit dem angebotenen Bluetooth-Lautsprecher.
Da bei diesem einfachen Aufbau noch keine automatische Abschaltung des Laut-sprechers, der am DF-Player betrieben wird, vorgesehen ist, spielen z. Zt. beide Lautsprecher, wenn gekoppelt. Dabei ist folgendes zu bemerken:
• keine Beeinträchtigung von Klang oder Lautstärke des eingebauten Laut-sprechers durch die Verbindung mit dem KCX-Modul (gekoppelt oder nicht gekoppelt macht keinen Unterschied).
• Die am Breadboard-Aufbau festgestellten Störgeräusche treten nicht mehr auf. Selbst bei geringer Lautstärke mit BT-Kopfhörer sind keine Störgeräu-sche mehr wahrnehmbar.
• Gleichzeitiger Betrieb des eingebauten Lautsprechers zusammen mit einem BT-Lautsprecher ist zwar technisch problemlos möglich, akustisch aber nicht zu empfehlen, da durch die BT-Übertragung eine (technisch bedingte) Zeitverzögerung im Audiosignal entsteht, so dass der Hörgenuss etwas be-einträchtigt ist.
Hier das „DF-KCX-Päckchen“ betriebsfähig und quasi einbaufertig auf meiner Pla-tine montiert:

Was noch zu tun ist

  • Am einfachsten sollte ein simpler Schalter eingebaut werden, um den internen Lautsprecher des TonUINOs abschalten zu können.
  • Die CONNECT-Taste des KCX-Moduls muss herausgeführt werden (das Modul hat dazu einen Anschluss vorgesehen), da sie zur Kopplung mit einem neuen (unbekannten) BT-Gerät benötigt wird. Die Kopplung mit einem bereits bekannten BT-Gerät erfolgt automatisch ohne Benutzereingriff, sobald das Gerät eingeschal-tet und kopplungsbereit ist.
  • Das KCX-Modul bietet ein LINK-Signal (logisch HIGH) bei erfolgreicher Kopplung mit dem dann ein MOSFET zum Abschalten des internen Lautsprechers gesteuert werden kann.
  • Dieses Signal kann aber auch als „Shutdown“ für einen kleinen Verstärker ver-wendet werden (siehe Update 1), durch den der TonUINO dann sogar stereotauglich wird.
2 „Gefällt mir“

Wahnsinns Arbeit und doch scheint es leicht Nachbaubar.
Ist dir Brücke zum GND notwendig oder ist das schon im BT Modul verbunden?

Hallo @NoBl ,

danke fürs teilen. Die Huckpacklösung finde ich sehr genial. Reicht es denn, das BT-Modul Huckepack auf dem DF-Player anzuschließen und die Aufbauten aus deinen vorherigen Posts sind damit hinfällig? LG

Ist dir Brücke zum GND notwendig oder ist das schon im BT Modul verbunden?

Habe ich nicht ausgemessen / kontrolliert aber wegen der Störgeräusche auf meinem Breadboard vorsichtshalber eingelötet.

Der Aufbau, der auf dem Breadboard zu sehen ist, ist auf der gezeigten schon Platine realisiert.
Hier geht es nur noch um die zusätzliche Bluetooth-Funktion und ev. den Verstärker.

Im Prinzip reicht das so, ist aber eine ganz rudimentäre BT Lösung ohne jeden Komfort (Lautsprecherabschaltung). Siehe auch den Abschnitt „Was noch zu tun ist“
Im nächsten Schritt werde ich den Stereoverstärker auf dem Breakoutboard fertigstellen und anstelle des im DF-Player integrierten Verstärkers betreiben. So habe ich dann Stereosound am TonUINO und kann zudem die Verstärker (die internen Lautsprecher) über das LINK-Signal abschalten.

Als nächster Schritt im Plan:
Das KCX-Modul lässt sich von Sender- auf Empfängerbetrieb umschalten. So könnte dann der TonUINO auch als Bluetooth-Latsprecherbox (Stereo!) genutzt werden. Zum Beispiel für Spotify, Youtube usw. wenn die eingebaute Karte gerade nicht das richtige parat hat.

Hallo @NoBl, danke für die ausführliche Erläuterung.

Aktuell schwebt mir die Funktion vor allem als Sender vor in einem Tonuino2Go ohne Lautsprecher. Hier benötige ich kein Stereo Signal und der Kopfhöreranschluss dürfte auch weiterhin mit einem Signal versorgt werden.

Wie ich es bisher verstanden habe, reicht die Huckepack Version dafür. Werde ich bei Gelegenheit mal ausprobieren.

Ich bin aber trotzdem gespannt auf deine weiteren Updates…:grinning:

Du brauchst noch einen Taster von CONNECT gegen Masse, um das Modul für ein neues BT-Gerät in den Kopplungsmodus zu schalten. Dieser Taster „löscht“ dann quasi die Daten eines bereits gekoppelten Gerätes und macht das Modul bereit zur Kopplung mit einem anderen Gerät. Der Taster liegt parallel zu der Pair-Taste auf dem Modul.

1 „Gefällt mir“

Hallo NoBI, klasse Lösung! Ich bin ganz ähnlich vorgegangen. Cool, dass ich hier noch Tips finde. Vielleicht kann ich ja trotzdem noch ein paar hilfreiche Details Beitragen.

Ich wollte eigentlich eine Logik in den Tonuino-Code einbauen, die das KCX-BT-Modul über die serielle Schnittstelle ansteuert, so dass man mit einem zusätzlichen Taster das BT-Modul ein- und den Verstärker des DFPlayer Mini ausschaltet. Das hätte den Vorteil, dass man das BT-Modul abschalten kann und den Stromverbrauch entsprechend reduzieren kann. Außerdem wird die Bedienung für die Kids einfacher, weil man mit einem einfachen Taster à la Flip-Flop zwischen BT und Lautsprecher umschalten kann. Zusätzlich könnte man über Long-Press oder Doppelklick des Tasters weitere Funktionen über die serielle Schnittstelle steuern, z. B. Koppeln mit anderen Geräten.

Die serielle Schnittstelle des KCX-BT-Moduls bietet einen Befehl zum Ausschalten (s. z. B. hier), eingeschaltet wird das Modul dann wieder, wenn am Pin 11 des BT-Moduls Masse anlegt. Mit der Nutzung von ein paar zusätzlichen Pins auf dem Arduino wäre solch eine Software-basierte Lösung grundsätzlich möglich. Ich habe allerdings in Kombination mit der von mir verwendeten CubieKid-Platine keine Möglichkeit gefunden, einen weiteren seriellen Port für das BT-Modul zu öffnen (Hardware Serial wird schon für Logging genutzt, SoftwareSerial für die Ansteuerung des DFPlayerMini, AltSoftSerial nutzt die bei CubieKid schon belegten Pins 8 und 9 des Nano, NeoSWSerial geht auf dem Nano nicht). Falls hier jemand einen Hinweis hat, dass das doch geht, bitte gerne melden!

Aktuell lasse ich das BT-Modul einfach dauerhaft eingeschaltet, der Stromverbrauch liegt ohne Kopplung bei ca. 45 mA. Vielleicht baue ich später noch einen Hardware-Schalter ein, der die Stromversorgung des BT-Moduls trennt, mal sehen. Eine LED zum Anzeigen des Koppelzustandes wäre ebenfalls nett.

Ich habe zum Experimentieren einen Nano mit zusätzlichen langen Headern nach „oben“ verlötet, so dass ich dort einfach Kabel mit Steckerleiste aufstecken kann. Für die Stromversorgung nutze ich die 5V- und GND-Pins des Arduino. Ich habe diesem Thread folgend eine Entkoppelung der Stromversorgung mit einem B0505S-1WR3 eingebaut, keine Ahnung, ob das wirklich notwendig war, bei Dir scheint es ja auch ohne zu gehen.

Das Audio-Signal hole ich ebenfalls über verlängerte Pins vom DFPlayer.

Für die Abschaltung des Verstärkers auf dem DFPlayer Mini habe ich die von Dir schon angerissene und hier oder hier beschriebene Lösung gewählt. Dazu habe ich den entsprechenden Widerstand auf dem DFPlayer Mini entlötet und eine Litze angelötet. Wenn an der Litze „high“ anliegt, schaltet sich der Verstärker ab. Das erschien mir aus Stromspargründen eleganter als den Verstärker dauerhaft laufen zu lassen und das Lautsprecher-Signal mechanisch zu trennen [edit: Nach nochmaligem Nachdenken bin ich mir gar nicht mehr sicher, ob das viel Strom spart, denn wenn das Lautsprecherkabel getrennt ist, wird ja kaum Leistung vom Verstärker abgerufen, oder?]. Das High-Signal kann man entweder über einen digitalen Ausgang am Arduino erzeugen, oder noch einfacher wie von Dir beschrieben über das Link-Signal auf dem BT-Modul.

Bei meinem KCX-Modul war es im Testaufbau notwendig, AGND und DGND zu verbinden, ansonsten wurde ein Störsignal auf dem BT-Audio-Ausgang erzeugt. Ob das beim Einbau im Tonuino noch notwendig ist, kann ich nicht sagen.

1 „Gefällt mir“

Gerne hätte ich den DF-Player entsprechend modifiziert aber leider hat sich bei der Serie meiner DF-Player das Board-Layout so geändert, dass der 0 Ohm Widerstand nicht mehr vorhanden ist. Das neue Board-Layout habe ich noch nicht soweit analysieren können, dass ich in der Lage wäre Pin 1 des Verstärkerbausteins separat anzusteuern.

Deshalb der Versuch / das Bestreben mit funktionsgleichen Bausteinen gleich eine Stereo-Endstufe aufzubauen, die ich dann über das LINK-Signal stumm schalten kann.

Das LINK-Signal vom KCX_BT reicht übrigens für die Stummschaltung und gleichzeitig kann es (bei mir eine grüne) eine LED treiben. Klappt auf dem Breadboard prima.

Nachdem meine Teile endlich alle da sind hab ich das auch ausprobiert. Leider hab ich nicht unbedingt das richtige Material aber geht schon.

Verbindung geht. Leider hab ich ein richtig hässliches brummen. Habe den Speaker schon abgesteckt aber brummt immer noch am Kopfhörer.

In dem anderen Thread hab ich von dem B0505S-1W gelesen. Den hätte ich auch, aber trotz schaltplan keinen Plan wie ich den dazwischen setze :man_shrugging::man_facepalming: hat jemand eine Idee?

Hast Du AGND und DGND auf dem Bluetooth-Modul verbunden? Ich hatte auch ein starkes Brummen auf dem Signal aus dem Bluetooth-Modul (im Kopfhörer), das ging weg, sobald ich die zwei Kontakte mit einer Drahtbrücke (die mit der gelben Isolierung auf meinem Foto weiter oben) verbunden hatte.

Das Datenblatt für das DC/DC-Modul B0505S-1W findest du hier. Du musst einfach die Stromquelle an den linken beiden Kontakten anschließen und den Stromeingang des Bluetooth-Moduls an den rechten beiden Kontakten (natürlich auf Polung achten, s. Datenblatt). Ich habe dann noch zwei Kondensatoren aus der Tabelle im Datenblatt zur Glättung parallelgeschaltet. Ich bin mir aber nicht sicher, ob das alles wirklich notwendig ist, mein Eindruck war, dass die Verbindung von AGND und DGND wesentlich war.

1 „Gefällt mir“

Das kann ich nur bestätigen! Weitere Untersuchungen haben ergeben, dass auf dem KCX-Modul AGND und DGND nicht miteinander verbunden sind. Hatte bei mir keinen Einfluss, da ich gleich zu Beginn der Tests diese Verbindung schon direkt auf das Modul gelötet hatte (siehe Bild und Bild).

Anmerkung:
Im Audiobereich sind Störgeräusche (insbesondere Brummen) meist durch schlechte Masseverbindungen verursacht. Diese können entweder zu dünn oder aber auch zu lang sein. Besonders bei mehreren Masseverbindungen ist darauf zu achten, dass nicht irgendwo ein „Ring“ entsteht. Masseverbindungen sozusagen einen geschlossenen Kreis bilden. Dann haben wir (wie man das nennt) eine typische „Brummschleife“. Diese Brummschleifen können auch durch Anschluss externer Geräte erst entstehen (in der Praxis manchmal sogar über den Schutzleiter - hier natürlich nicht, da wir vom Netz getrennt sind).