Bluetooth Modul über serielle Schnittstelle ansprechen?

Hallo!

Ich bin dabei einen Tonuino mit Bluetooth zu bauen (Bisher noch im Breadboard Stadium).

Als Bluetooth Modul habe ich mir das KCX-BT Modul bestellt. Mir ist auf gefallen, dass es eine serielle Schnittstelle gibt. Je nach Version des Moduls kann man damit wohl mehr oder weniger machen. Details habe ich hier gefunden:

https://www.electro-tech-online.com/threads/kcx_bt_emitter-low-cost-bluetooth-bt-audio-module.158156/

Bei der Version 1.7 (die ich habe) kann man wohl nicht nur einstellen mit welchem Bluetooth Gerät sich das Modul verbindet, sondern auch Lautstärke abfragen/ändern Play/Pause abfragen/ändern, etc.
Bisher scheint es ja so zu sein, dass man bei Bluetooth zwei Lautstärkeregler hat, den vom DFPlayer und den vom Bluetooth-Modul. Wenn der Arduino aber mit dem Modul sprechen könnte, dann könnte er im Bluetooth Betrieb den DFPlayer fix einstellen und die Lautstärke über das Bluetooth Modul regeln.

Hat das schon jemand ausprobiert? Mir fehlt noch ein Pegelwandler 5V/3.3V um damit zu spielen.

Bei einem Arduino Nano ESP32 müsste man ja noch Resourcen dafür haben, oder?

Hast du den Thread schon gesehen

Hier wird die serielle Schnittstelle aber nicht verwendet.

Wenn du die serielle Schnittstelle zusammen mit dem Esp32 verwenden willst, hast du das Problem, dass die Spannungen nicht passen. An den Pins des Esp32 liegen 3.3V, das Modul verlangt aber 5V an der seriellen Schnittstelle.

Ich glaube auch nicht, dass die serielle Schnittstelle einen Vorteil bringt, es geht alles auch ohne.

Nein, den Threads hatte ich noch nicht gesehen.

Dennoch hatte ich mir sehr wohl die Steuerungsmöglichkeiten über die serielle Schnittstelle angesehen und verworfen weil:

  • mir die Steuerung über ein Gerät ohne Display zu aufwändig/umständlich erschien
  • ggf. Rückmeldungen vom Modul in Sprachansagen umgesetzt werden müssten
  • Ich für die BT-Funktion des TonUINO keinen wirklichen Mehrwert gesehen habe.

In der Praxis funktioniert das KCX-Modul auch ohne die Steuerungsmöglichkeiten über die serielle Schnittstelle vollkommen zufriedenstellend. Einzig kommt es zu Kopplungsproblemen, wenn mehrere kopplungsbereite BT-Geräte in Reichweite sind, da nicht vom Nutzer bestimmt werden kann, mit welchem Gerät die Kopplung vollzogen wird.

Hat jedoch bereits eine Kopplung bestanden, so wird diese vorzugsweise wieder hergestellt, unabhängig von anderen kopplungsbereiten Geräten. Somit war das beschriebene Verhalten in der Praxis nie ein wirkliches Problem.

Aus diesen Gründen würde ich eine Steuerung über die serielle Schnittstelle durch den TonUINO nicht ernsthaft weiter betreiben.

Danke für euer Feedback. Den Thread hab ich gelesen. War die Inspiration den KCX-BT zu kaufen.

Ich habe jetzt ein paar Experimente gemacht:

Sowohl der DF-Player, als auch die getesteten Bluetooth-Kopfhörer/Boxen haben die Möglichkeit die Lautstärke zu ändern. Wenn ich den DF-Player ganz leise stelle und Bluetooth ganz laut, dann leidet die Tonqualität ziemlich. Kann natürlich auch an der Verkabelung liegen, die bisher frei fliegend ist, aber für optimale Qualität muss natürlich der Eingang des Bluetooth-Moduls gut ausgesteuert werden. Je leiser umso schlechter das Signal/Rausch Verhältnis.

Außerdem ist es etwas verwirrend, weil die minimale/maximale Lautstärke nicht mehr eindeutig ist.Wie gehen eure Nutzer damit um? Kommen die damit zurecht?

Play/Pause ist ähnlich. Am Kopfhörer kann man auf Pause drücken, der DF-Player spielt aber weiter.

Ich hatte die Hoffnung, dass ich über die Serielle Schnittstelle das Verhalten verbessern kann, also habe ich das Modul über einen USB-Seriell-Wandler an den Rechner angeschlossen und geschaut was geht. Für alle die auch damit experimentieren wollen ein paar Hinweise (Ich habe V1.7 laut Beschriftung auf der Rückseite, je nach Version ist das anders):

  • Baudrate: 115200
  • Entgegen der Aussagen im oben von mir verlinkten Thread hat mein Modul CR/LF als Zeilenende benötigt
  • Alle Befehle müssen in Großbuchstaben geschrieben werden

Wie im Thread angehängten Dokumenten beschrieben, kann bei der Version 1.7 nicht nur eingestellt werden, mit welchen Gegenstellen sich das Modul verbinden soll, sondern es gibt auch Befehle für Lautstärke und Play/Pause. Damit kann mal tatsächlich die Lautstärke anpassen und die Tonübertragung pausieren und auch die aktuelle Lautstärke und Play/Pause Zustand auslesen.

Leider ist es aber so, dass das Modul nicht in der Lage ist das was der Kopfhörer macht mit dem eigenen Status zu synchronisieren. (Warum auch immer, mein Telefon schafft das ja auch.) D.h. dann hätte man 3 Stellen an denen man die Lautstärke ändern kann oder die Wiedergabe. Das verbessert die Situation jetzt nicht gerade… Selbes gilt für Play/Pause.

Tipp: Falls jemand einen Kopfhörer hat, der versucht anzusagen mit wem er verbunden ist: Man kann auch den Namen ändern, dazu muss aber der RX/TX Jumper temporär gebrückt werden, dann kann man das ändern. Mein einer Kopfhörer der das macht kann, kann aber “Tonuino” nicht aussprechen :smiley:

Das ist ein Ärgernis, verursacht durch den DF-Player. Der Player erzeugt sog. “digital noise” mit einem konstanten, lautstärkeunabhängigen Pegel. Ist das Nutzsignal sehr leise gestellt, ist der Effekt deutlich hörbar, bei größeren Lautstärken kaum noch wahrnehmbar.

Hier wäre es ein wirklicher Vorteil, wenn der DF-Player mit hoher Lautstärke arbeiten kann und die effektive Lautstärke auf der BT Seite wieder heruntergeregelt würde.

Z. Zt. gibt es wenig Feedback dazu. Der TonUINO ist allerdings in der Lage, unterschiedliche Einstellungen für Lautsprecher und Kopfhörer zu speichern. Vielleicht gibt es die Möglichkeit, die Kopfhörereinstellungen zu verwenden, wenn BT eingeschaltet ist. Dazu müsste @Boerge1 in den Programmcode schauen und die Möglichkeit ausloten.

Moin!

Bei uns gibt es die von dir geschilderten Probleme gar nicht!
Sowohl die benutzen (Ur-alt) Airpods als auch die JBL Variante können die Lautstärke gar nicht regeln. Der ab und zu gekoppelte Lautsprecher kann das zwar, aber da ist das Rauschen kein Problem. Beim Koppeln und Trennen eines Bluetooth Gerätes wird der DF-Player beim mir Software seitig auf seine im Eeprom eingestellte Startlautstärke gesetzt, so dass es keine „böse Überraschung“ gibt.
Da das Bluetooth in einem WalkUINO seinen Dienst tut, ist das Teil eh „am Mann“ und die Bedienung folgt dementsprechen nur am Gerät nicht an Bluetooth. Bluetooth ersetzt hier sozusagen nur das Kabel.