Hallo an alle,
mein neuestes Spielzeug ist ein Bluetoothmodul mit einem CC2541 Chip.
Mein Problem ist, dass ich zwar mittels AT-Befehlen auf das Modul zugreifen kann und auch mit der "Serial Bluetooth Terminal 1.31" App Eingaben an den Arduino senden kann, aber nichts vom Arduino an die App senden kann.
Der momentane Aufbau besteht aus einem Mega2560 und dem über Serial1 angeschlossenen Modul (TX und RX über einen Spannungswandler).
State und EN sind nicht angeschlossen.
Als Sketch verwende ich den "SerialPassthrough sketch"
void setup() {
Serial.begin(9600);
Serial1.begin(9600);
}
void loop() {
if (Serial.available()) { // If anything comes in Serial (USB),
Serial1.write(Serial.read()); // read it and send it out Serial1 (pins 0 & 1)
}
if (Serial1.available()) { // If anything comes in Serial1 (pins 0 & 1)
Serial.write(Serial1.read()); // read it and send it out Serial (USB)
}
}
Im Serial-Monitor ist Sowohl "CR als auch NL" eingestellt, in der App "Newline CR+LF".
Ich hab schon gefühlte 1000 Beiträge gelesen und ausprobiert, aber immer ohne Erfolg.
Wo liegt mein Denkfehler bzw. muss ich eventuell noch etwas anderes mittels AT festlegen?
Im Moment habe ich mit AT+DEFAULT alles auf Anfang gesetzt.
Ich habe Dein Posting jetzt dreimal gelesen und nach dem Datenblatt des von Dir genannten ICs geguckt (wäre nett, wenn Du das [und die anderen Komponenten] verlinken könntest), verstehe aber nicht so recht, was Dein Problem ist. Im Datenblatt, das ich gefunden habe, war jedenfalls von AT-Befehlen nicht die Rede. Insofern wäre wohl noch ein Datenblatt zu Deinem Modul hilfreich.
Die Verkabelung ist im Prinzip folgende:
Tx Modul <-> Level Shifter <-> Rx1-Arduino
Rx Modul <-> Level Shifter <-> Tx1-Arduino
VCC <-> 5V
GND <-> GND
EN nicht angeschlossen
State nicht angeschlossen
Das Modul hab ich geschenkt bekommen und es ist auch nichts aufgedruckt, was auf den Hersteller usw. hindeuten könnte.
Ich glaube es sollte ein HM-10 sein, es scheint aber beim Scan als "BT05" auf
Das einzige das aufgedruckt ist:
VCC + GND: Power 3.6-6V
Tx + Rx: Level 3.3V
Deshalb habe ich auch keine spezifisch für dieses Produkt gemachte Anleitung, bzw. Datenblätter gefunden.
Der Chip an sich hat halt den Aufdruck CC2541.
Da ja die die Kommunikation an sich zu funktionieren scheint, gehe ich mal von einer richtigen Verkabelung aus.
Wie weit der EN-Pin von Bedeutung ist, fische ich auch noch im Trüben.
Auf einer Seite wurde erwähnt, er wäre für einen erweiterten AT-Befehlsatz wichtig....
Apps habe ich eben auch schon einige ausprobiert.
Allerdings hat bis jetzt nur die "Serial Bluetooth Terminal 1.31"-App das Modul überhaupt angezeigt und sich anstandslos ohne Pin verbunden.
Nur das Android-System hat noch das Modul als BT05 angezeigt, sich dann aber nicht unter Eingabe des Pins pairen lassen.
Der Pin ist übrigens 6-stellig. Ich konnte ihn zwar mit AT ändern, aber immer nur auf einen anderen 6-stelligen Pin.... komisch.... ist der nicht normalerweise 4-stellig?
Die Terminal Settings werd ich heut Abend noch mal kontrollieren.
Im Anhang sind Bilder des Schaltplans und des Moduls von beiden Seiten.
Da die Kommunikation hardwareseitig zu funktionieren scheint, frag ich mich, ob ich in den Moduleinstellungen was kontrollieren/ändern muss, damit es auch ans Handy sendet.
Ein Serial1.write("xy"); müßte für eine Kontrolle doch richtig sein????
Es funktioniert mit dem Sketch vom Ausgangspost auf Anhieb.
Nachrichten werden in beide Richtungen "durchgereicht". Also vom Seriellen Monitor der Arduino-IDE zur jeweiligen App am Smartphone und umgekehrt.
Funktioniert sowohl mit einem HC-05 als auch mit HM-10 Modul (das wäre eigentlich CC2541).
Im Bild zu sehen ist HC-05 (beide Module sind aber "Pin-kompatibel").
Ich habe aber keinen Pegelwandler benutzt, sondern nur einen Spannungsteiler (1kOhm, 1.8 kOhm) auf der Mega-TX-Leitung. Das ist bei den geringen Übertragungsraten ausreichend und verringert die Kabelzahl.
Je mehr Kabel am Breadboard desto größer die "Ausfallwahrscheinlichkeit".
Als App verwende ich "Arduino bluetooth controller" bzw. "BLE console" (Android).
Das Modul hat ja einen Spannungsregler drauf (auf 3,3 Volt) der Bluetooth-Chip läuft mit 3,3 Volt.
Die Signalpegel sind 3,3 Volt.
Ist auch groß am Modul aufgedruckt:
Power 3.6 - 6V
Level: 3.3 V
Hallo,
jetzt hab ich die Schaltung so aufgebaut wie uxxom (mit einem Spannungsteiler).
Das Ergebnis ist das selbe.
Handy -> Arduino
läuft perfekt
Arduino -> Handy
keine Daten
Dann "Arduino bluetooth controller" ausprobiert.
Beim Versuch des Pairings wird ein Pin abgefragt, es wird dann aber abgebrochen.
Jetzt frage ich mich, ob es vielleicht an der Firmware liegt.
Vielleicht sind ja verschiedene Werte falsch gesetzt?
So sind die mit AT+HELP gelisteten Befehle zum großen Teil nicht ausführbar bzw. ergeben nur eine Error-Meldung.
Kann folgende Meldung etwas helfen?
+UUID=FFE0
+CHAR=FFE1
Ich habe das Bild deines Moduls mal genauer mit meinem BLE-Modul (HM10) verglichen. Das ist gar nicht so einfach, weil das Modul zum Großteil in einem kaum durchsichtigen Kunststoffgehäuse steckt und nur die Anschlüsse herausschauen.
Jedenfalls schaut das Modul das ich habe deinem sehr sehr ähnlich.
Habe auch die App heruntergeladen, die du verwendest (Serial Bluetooth Terminal 1.31) und auch damit funktioniert der "Datenfluss" in beide Richtungen.
Und sorry, ich habe vergessen zu erwähnen, dass "Arduino bluetooth controller" mit BLE Modulen nicht funktioniert, sondern nur mit "klassischem" Bluetooth.
Aber es war ja auch gar nicht so klar, ob dein Modul überhaupt ein BLE Modul ist oder nicht.
Ob es an der Firmware liegt - ja könnte sein. Ich habe den sehr umfangreichen Thread (144 Beiträge), den du verlinkt hast nur überflogen.
Es gibt ein AT-Kommando zum "Factory-Reset", vielleicht mal ausprobieren?
Restore all setup value to factory setup:
AT+RENEW
Hallo uxomm,
ja, den AT+RENEW hab ich auch schon gemacht.
Hat aber nicht funktioniert..... das Modul will AT+DEFAULT.
Setzt das Modul zwar in den Ausgangszustand, ändert am Problem aber gar nichts.
Mein letzter Versuch war nun einen "leeren" Sketch rauf zu laden und den Modul-Tx direkt an den Arduino-Tx0 und den Modul-RX mit einem kleinen Widerstand (um den Port zu schützen) direkt an den Arduino-Rx0 zu hängen.
Soweit funktioniert das auch, aber eben immer mit dem alten Problem.
Nun hab ich mich für Plan C entschieden: Ein HM-10 bestellen und mit dem mal testen!
Wenn das auch nichts bringt, kommt doch noch Plan B zum Zug: Firmware flashen!
Erstmal vielen Dank für Eure Geduld und Hilfe!!!!
LG Reinhard
PS.: Für eventuelle Geistesblitze bin ich immer zu haben .....
Die Verkabelung habe ich nach Post #144 gemacht: https://forum.arduino.cc/index.php?topic=393655.135
Als Windows-Programm auf einem Win10-64-PC habe ich die CCLoader.exe und nicht die CCLoader_x86_64.exe.
Das einzige was noch zu lösen war: die Led, die nicht mehr blinkt.
Also habe ich den Tip von Post #123 angewandt: https://forum.arduino.cc/index.php?topic=393655.120
Das Ganze mit AT+RESET abschliessen.
Nun leuchtet die Led bei einer Verbindung und ist sonst aus (kein Blinken).
PS.: Noch mal DANKE an alle für Eure Unterstützung!