HC-05 und HC-06 Bluetooth Module

Über den Beitrag

Über Bluetooth, Arduino und die HC-05 und HC-06 Bluetooth Module ist schon ausgesprochen viel geschrieben worden. Trotzdem hat es mich ziemlich viel Zeit gekostet mir diese Bauteile voll zu erschließen, da die  Informationen, die ich benötigt habe, z. T. in vielen verschiedenen Beiträgen verteilt waren. Hier nun der Versuch alles an einem Ort zu vereinigen. Folgende Themen möchte ich in diesem Beitrag behandeln:

  • Bluetooth vs. 433 MHz Funk
  • gängige Bluetooth Module
  • Schaltplan zum Ansteuern der Module
  • Einrichten der Bluetooth Module mittels AT Kommandos über:
    • Arduino IDE
    • Putty
    • DSD Tech Tool
  • Pairing von Bluetooth Modulen miteinander
  • Stromverbrauch und Reichweite

Welche Möglichkeiten sich über das Smartphone ergeben, werde ich wegen des Umfangs dieses Themas in einem separaten Beitrag später behandeln. 

Bluetooth vs. 433 MHz Funk

Für die kabellose Übertragung gibt es eine Reihe verschiedener Techniken. Neben Bluetooth kommen vor allem W-LAN, Infrarot und die (433 MHz) Funktechnik in Frage. Für die Kommunikation von Arduino zu Arduino wird man am ehesten zur 433 MHz Technik oder Bluetooth greifen. Dabei hat die 433 MHz Technik den Vorteil einer höheren Reichweite und die Module sind etwas günstiger zu haben. Es gibt durchaus auch Bluetooth Technik mit höherer Reichweite, aber die Standard Module sind eher auf Entfernungen von 10-20 Metern ausgelegt. Die Vorteile der Bluetooth Technik sind aus meiner Sicht die exklusiveren Verbindungen (d.h. man kann die Kopplung auf ein bestimmtes Modul beschränken) und vor allem die Möglichkeit mit Smartphones zu kommunizieren. Wer sich mehr mit den Details der Bluetooth Technik an sich beschäftigen möchte, der kann das z.B. auf Wikipedia tun. 

Gängige Bluetooth Module

In der Welt der Microcontroller haben sich vor allem die HC-05 und HC-06 Bluetooth Module etabliert. Sie sind für ca. 8 Euro bei Amazon oder Online Elektronikshops erhältlich. Neben HC-05 und HC-06 trifft man noch auf HC-08 und HM-10 Module. Letztere sind auch für IOS Betriebssysteme geeignet. Die HC-08 Module, die ich mir mal gekauft habe, konnte ich zwar über AT-Kommandos programmieren, aber weder mit meinem Android Smartphone noch untereinander koppeln. Insofern kann ich diese Teile nach meiner Erfahrung nicht empfehlen.

Die hier behandelten HC-05 und HC-06 Bluetooth Module (siehe Bild unten) sind im Grunde genommen Module von Modulen. Das jeweilige „Tochtermodul“ ist das grüne Teil auf dem blauen „Muttermodul“. Sucht man für HC-05 und HC-06 Bluetooth Module nach Datenblättern, beziehen sich diese meistens auf die „Tochtermodule“. Die Muttermodule nehmen einem Einiges an Verkabelungsarbeit ab, aber auch an Flexibilität.

links: HC-05 Modul von vorne und hinten, rechts: HC-06 Modul

Es gibt nicht das eine HC-05 oder HC-06 Modul, sondern verschiedene Versionen, die sich in der Handhabung leicht unterscheiden können. In einigen Beiträgen werden Module beschrieben, die noch einen „KEY“ Pin haben, mir sind diese aber noch nicht zwischen die Finger gekommen. 

HC-05 und HC-06 Bluetooth Module programmieren

Die Schaltung

Bevor man HC-05 und HC-06 Bluetooth Module für die Kommunikation verwenden kann, muss man gegebenenfalls einige Einstellungen über die sogenannten „AT-Befehle“ vornehmen. Dafür gibt es unterschiedliche Methoden. Zunächst möchte ich zeigen wie man das mittels Arduino bewerkstelligt.

3.3 Volt Beschränkung am RX-Pin

Die HC-05 und HC-06 Bluetooth Module werden seriell über ihren RX- und TX-Pin angesprochen. Die Stromversorgung der Module kann 3.6 bis 6 Volt betragen. Der RX-Pin hingegen ist eigentlich nur für 3.3 Volt ausgelegt. In meiner Schaltung weiter unten habe ich das mit einem Spannungsteiler gelöst. Alternativ kann man auch einen Level Konverter nehmen (gibt’s für < 1 Euro).  Oder man nimmt einen Arduino Due oder arbeitet mit den „nackten“ Microcontrollern und lässt alles mit 3.3 Volt laufen (braucht dann aber noch > 3.6 V an VCC). Aber ganz ehrlich, normalerweise ignoriere ich die Forderung einfach und arbeite mit 5 Volt. Und mir ist noch kein Modul kaputtgegangen. 

Die Schaltung ist für die HC-05 und HC-06 Bluetooth Module identisch. Der „State-“ und der „Enable-Pin“ am HC -05 bleiben unangeschlossen. Als Beispiel habe ich hier einen Arduino Nano verwendet. Pin 10 und Pin 11 des Arduinos sind mittels Software Serial als RX bzw. TX eingestellt.

Einstellung des HC-06 Moduls mittels AT-Kommandos

Vorbereitung

Ich beginne mit dem HC-06, da dieses etwas leichter einzustellen ist als das HC-05 Modul. Zunächst wird dazu der folgende Sketch auf den Arduino hochgeladen. 

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);

void setup() {
  Serial.begin(9600);
  Serial.println("Los geht's");
  mySerial.begin(9600); //38400 für hc-05
}

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

Spätestens dann wird das HC-06 Modul entsprechend der oben abgebildeten Schaltung mit dem Arduino verbunden. Wenn das Modul mit Spannung versorgt wird, sollte eine rote LED relativ hektisch blinken (mehrfach pro Sekunde). Es gibt Versionen, die zusätzlich eine blaue LED haben (z.B hc01.comV2.0) und eben diejenigen ohne (z.B. linvorV1.8).

Dann kann man über den seriellen Monitor die Einstellungen an den Modulen mit den AT-Kommandos vornehmen. Wichtig ist, dass am seriellen Monitor die Baudrate 9600 und „Kein Zeilenende“ eingestellt ist. Außerdem ist zu beachten, dass das HC-06 Modul im gepairten Zustand nicht mit AT-Befehlen ansprechbar ist, also wenn eine Bluetooth Verbindung besteht. 

Einstellungen für den HC-06 im seriellen Monitor

AT-Kommandos für den HC-06

Als ersten Test kann man dem Modul ein einfaches „AT“ senden. Als Antwort erhält man ein freundliches „OK“. Sendet man weitere „AT“-Kommandos so erkennt man, dass alle Antworten ohne Leerzeichen oder Zeilensprung aneinandergehängt werden. 

Dann möchte man vielleicht den Namen des Moduls ändern. Soll es zum Beispiel Karl-Heinz heißen, so sendet man ein

AT+NAMEKarl-Heinz    –>    Antwort: OKsetname  

Für die Änderung des Pins sendet man ein

AT+PIN<dein vierstelliger PIN>    –>    Antwort: OKsetPIN

Voreingestellt ist eine Baudrate (Datenübertragungsrate) von 9600. Will man diese ändern, kann man das über den folgenden Schlüssel ändern:

Schlüssel für die Baudrateneinstellung des HC-06 Moduls.

Zur Einstellung einer Baudrate von beispielsweise 9600 lautet der Befehl:

AT+BAUD4    –>    Antwort: OK9600

Aber VORSICHT – es könnte sein, dass man nicht mehr zurück kann wenn man eine zu hohe Baudrate wählt. So kann z. B. ein PC nur eine Baudrate von maximal 115200 liefern. Hat man eine höhere Baudrate auf HC-06 eingestellt, kann man dem guten Stück nicht mehr mitteilen, dass man eine niedrigere Rate möchte. Einen Hardware Reset gibt es auch nicht. Das kann das HC-05 Modul besser. 

Eine wichtige Einstellung ist die Rolle des Moduls, nämlich entweder Master („M“) oder Slave („S“). Hier die Einstellung als Slave: 

AT+ROLE=S    –>    Antwort: OK+ROLE:S

Wer die blaue LED aktivieren- oder deaktivieren möchte, kann das über das folgende Kommando tun:

AT+LED1    –>    Antwort: LED ON  / AT+LED0    –>    Antwort: LED OFF

Die Version seines HC-06 Moduls erhält man mit dem Befehl:

AT+VERSION    –>    Antwort: hc01.comV2.0 (Beispiel)

Schließlich kann man noch – auch wenn das die meisten nicht benötigen werden – das Paritätsbit einstellen. Das ist entweder „N“ für no check, „O“ für ODD (ungerade) oder „E“ für EVEN (gerade), z. B.:

AT+PN    –>    Antwort: OK None

Einstellung des HC-05 Moduls mittels AT-Kommandos

Vorbereitung

Das HC-05 Modul wird entsprechend der oben abgebildeten Schaltung mit dem Arduino verbunden. Der Sketch für die Kommunikation mittels AT Kommandos muss leicht abgeändert werden, da der HC-05 im AT-Modus immer die Baudrate 38400 hat. Entsprechend ist in Zeile 7 die 9600 durch eine 38400 zu ersetzen. Der Vorteil ggü. dem HC-06 ist, dass man sich nicht durch eine unglückliche Baudratenwahl ausschließen kann. Ein weiterer Unterschied ist, dass der HC-05 erst vom Pairingmodus in den AT-Modus gebracht werden muss, indem man die Stromversorgung trennt und den kleinen Taster oberhalb der Pinleiste gedrückt hält während man die Stromversorgung wieder herstellt. Dann kann man den Taster loslassen. Den erfolgreichen Wechsel in den AT-Modus erkennt man daran, dass aus dem hektischen Blinken der roten LED ein langsames Blinken im 2 Sekundentakt wird.

Zweiter AT-Modus

Aber leider ist die Sache noch ein wenig komplizierter, da es zwei AT-Modi gibt. Es gibt AT-Kommandos, die man nur im zweiten Modus ausführen kann. Dazu gehört z.B. das Kommando für die Abfrage des Namens. Den zweiten Modus erreicht man, indem man den Taster dauerhaft gedrückt hält – was natürlich denkbar unhandlich ist.  Alternativ legt man HIGH an den PIN 34 des Tochtermoduls. Dazu kann man ein Kabel anlöten (s. u.) oder man benutzt eine Miniklemme.

Ich habe auch HC-05 Module bei denen man in den zweiten AT Modus geht, wenn man den Pin „EN“ auf HIGH setzt. Bei anderen HC-05 Modulen bringt das hingegen nichts. Dort wiederum kann der Pin „EN“ genutzt werden um das Modul auszuschalten indem man ihn auf „LOW“ setzt. Ziemliches Durcheinander – ich kann nichts dafür! Probiert es aus mit Euren Modulen. Die gute Nachricht ist, dass man die Befehle aus dem zweiten AT-Modus normalerweise nicht vermisst. Den Namen des Moduls beispielsweise kann man auch im ersten Modus ändern, man kann ihn nur nicht abfragen.

HC-05 mit Anschluss für Pin 34

Umsetzung

Hat man alles verkabelt, den Sketch hochgeladen und den HC-05 in den AT-Modus gebracht, kann man ihn über den seriellen Monitor mit AT-Kommandos programmieren. Dabei stellt man dort die Baudrate auf 9600 (nicht 38400!) und „Sowohl NL als auch CR“ ein. Zum Testen kann man wieder ein „AT“ senden und erhält wieder ein freundliches „OK“ als Antwort. Im Gegensatz zum HC-06 wird jede Antwort in einer neuen Zeile ausgegeben. Außerdem ist der Befehlssatz größer, die Schreibweise etwas anders und der HC-05 ist gesprächiger. So kann man alle Einstellungen auch abfragen. Ein gewisser Komfort sind auch die Error Codes, die bei fehlerhaften Eingaben zurückgemeldet werden. Eine Liste der Error Codes findet sich weiter unten. 

AT-Kommandos für das HC-05 Modul

Kommen wir zu den wichtigsten AT-Kommandos. Der Pin heißt hier Password und wird wie folgt eingestellt:

AT+PSWD=<deine 4stellige PIN>    –>    Antwort: OK

Da die Antwort außer bei Abfragen immer „OK“ lautet, lasse ich diese Angabe von nun an weg. Der Pin wird folgendermaßen abgefragt:

AT+PSWD?    –>    Antwort: +PSWD:<deine 4stellige Pin>

Die Rolle (Master=1 oder Slave=0 oder Slave-Loop=2)  des Moduls stellt man so ein:

AT+ROLE=<0, 1 oder 2>  –>    Abfrage: AT+ROLE?

Im Slave-Loop Modus werden alle per Bluetooth empfangenen Daten wieder zurückgeschickt. 

Die Baudrate wird zusammen mit dem Paritätsbit und dem Stoppbit eingestellt, die ich beide auf „0“ lassen würde. Das Kommando für eine Baudrate von 38400 sieht dann so aus:

AT+UART=38400,0,0    –>    Abfrage: AT+UART?

Beim HC-05 gibt es verschiedene Connection Modes (CMODEs).  Im CMODE 0 (Default) koppelt sich das Modul nur dem Bluetooth Gerät  das die BIND Bluetooth Adresse besitzt (Erklärung folgt). Im CMODE 1 hingegen koppelt sich der HC-05 mit jedem verfügbaren Gerät,  vorausgesetzt (unter anderem) der HC-05 ist als Master und das Partnergerät als Slave eingestellt. 

AT+CMODE=<0 oder 1>    –>    Abfrage: AT+CMODE?

Ist die BIND Adresse beispielsweise 12:23:34:45:56:67 bzw. 1223:34:4556 in der NAP:UAP:LAP (non-significant, upper, lower address part) Schreibweise, erhält man bei Abfrage:

AT+BIND?    –>    Antwort: +BIND:1223:34:455667

Eingestellt werden kann die BIND Adresse folgermaßen:

AT+BIND=1223,34,455667 

Die eigene Adresse wird abgefragt mit:

AT+ADDR?   

Zum Schluss noch ein sehr sinnvolles Kommando, nämlich für das Zurücksetzen des Moduls auf Werkseinstellungen:

AT+ORGL

Weitere AT-Kommandos und Fehlercodes findet Ihr hier: 

AT-Kommandos und Error Codes für den HC-05

Und eine gute Beschreibung zu den Kommandos findet man hier.

Alternative Methoden zum Einstellen der HC-05 und HC-06 Bluetooth Module

Mit Arduino ohne SoftwareSerial Sketch

Dazu den BareMinimum Sketch aus den Beispielen hochladen, RX am Modul an RX (Pin 0) am Arduino, TX am Modul an TX (Pin 1) am Arduino. Dabei ist im Serial Monitor für den HC-06 die eingestellte Baudrate zu wählen, beim HC-05 immer die Baudrate 38400.  Der HC-05 ist natürlich auch hier in den AT-Modus zu bringen. Das schreibe ich jetzt nicht mehr jedesmal dazu. 

Ohne Arduino, mit Arduino IDE und USB-zu-TTL Adapter

USB-zu-TTL Adapter sind für wenige Euros erhältlich. Nimmt man ein Modell bei dem man die Spannung auf 3.3 Volt regeln kann, so braucht man auch keinen Spannungsteiler o.ä. mehr am RX Eingang. 

Verschiedene USB-zu-TTL Adapter zur Programmierung der HC-05 und HC-06 Bluetooth Module.
USB-zu-TTL Adapter

Hier ist die Verkabelung wieder „über Kreuz“, also RX an TX und TX an RX. Dann den Adapter an den PC anschließen und den entsprechenden Port in der Arduino IDE wählen. Die richtige Baudrate und das richtige „Zeilenmanagement“ einstellen und das war’s. Einen Sketch braucht man nicht.

Mit USB-zu-TTL Adapter und Putty

Wenn man die beliebte Terminal Software Putty verwendet, muss man zunächst die richtigen Einstellungen vornehmen. 

Putty Einstellungen (Session) für dieProgrammierung der HC-05 und HC-06 Bluetooth Module
Session Einstellung
Putty Einstellungen (Terminal) für dieProgrammierung der HC-05 und HC-06 Bluetooth Module
Terminal Einstellung
Putty Einstellungen (Serial) für die Programmierung der HC-05 und HC-06 Bluetooth Module
Serial Einstellung

Beim HC-05 wird die Antwort permanent ausgegeben, was sich mit einem „Enter“ stoppen lässt.

Es gibt natürlich auch viele andere, ähnliche Programme wie Putty. Ich habe z.B. USR-TCP232 Test probiert und das funktionierte auch. 

Mit USB-zu-TTL Adapter und dem DSD TECH Tool

Mit dem DSD-TECH Tool lassen sich nur wenige Einstellungen vornehmen, aber dafür muss man sich nicht mit AT-Kommandos herumschlagen.

DSD TECH Tool Programmoberfläche  für die Programmierung der HC-05 und HC-06 Bluetooth Module

HC-05 und HC-06 Bluetooth Module miteinander pairen

Im letzten großen Abschnitt will ich zeigen, wie man die Bluetooth Module miteinander koppelt (paired) um z.B. zwei Arduinos miteinander kommunizieren zu lassen. Ich habe bei den folgenden Versuchen ein Modul mit einem Arduino UNO angesteuert und das andere mit einem Arduino Nano. Die Schaltung ist prinzipiell dieselbe wie die oben abgebildete.

Noch interessanter ist eigentlich, dass man über Bluetooth seinen Arduino auch bequem mit einem Smartphones ansprechen kann. Da das aber diesen ohnehin schon langen Beitrag endgültig sprengen würde, hebe ich mir das Thema für einen separaten Beitrag auf. 

HC-06 mit HC-06 pairen

HC-06 Module zu pairen ist denkbar einfach. Man muss lediglich das eine Modul als Master und das andere als Slave einstellen und beide Module müssen denselben PIN haben. Und beide Module müssen natürlich dieselbe Baudrate eingestellt haben. Nachdem man die Einstellungen vorgenommen hat, muss man die Module evtl. noch einmal kurz vom Strom trennen. Dann aber sollten sie innerhalb weniger Sekunden pairen, was man daran erkennt, dass die rote und die blaue LED (sofern letztere vorhanden ist) auf den Modulen  durchgehend leuchten. 

„Ping-Pong“ Testsketch 

Mit dem folgenden Sketch kann man die Verbindung testen und „Ping-Pong“ spielen. Im Setup wird ein Gruß losgeschickt. Je nachdem, welcher Arduino zuerst gestartet wurde, läuft der eine Gruß ins Leere, der andere wird von der Gegenseite empfangen. Dieses hier ist die Version für den UNO. Auf den Nano spielt man dann eine Version mit einem Gruß an den UNO. Und dann geht es munter hin und her. Wird eine Nachricht empfangen, so wird diese am seriellen Monitor ausgegeben und die eigene Grußnachricht verschickt. 

#include <SoftwareSerial.h>
SoftwareSerial hc_06(10, 11);
String sendMsg = "Hallo HC-06 am Nano";
String receiveMsg = "";

void setup() {
  Serial.begin(9600);
  Serial.println("Los geht's");
  hc_06.begin(9600);
  hc_06.print(sendMsg);
}

void loop() { 
  if (hc_06.available()) {
    receiveMsg = hc_06.readString();
    Serial.println(receiveMsg);
    delay(1000);
    hc_06.print(sendMsg);
  }
}
Kommunikationstest - Ausgabe am Serial Monitor
So sieht’s dann am UNO aus

HC-05 mit HC-05 pairen

Zwei HC-05 Module zu pairen ist ein bisschen komplizierter, da es verschiedene Möglichkeiten gibt. Beide Module müssen natürlich wieder dieselbe Baudrate eingestellt haben. Zudem sollten beide Module denselben PIN (hier: PSWD) haben. Ich habe das Pairing teilweise auch ohne denselben PIN hinbekommen, allerdings kann ich nicht mit Bestimmtheit sagen, welchen Regeln das folgte. Die Einstellungen werden im AT-Modus vorgenommen, das Pairing erfolgt im Pairing Modus. Wenn man das Modul mit Spannung versorgt ist man automatisch im Pairing Modus.  

Pairing im Connection Mode 1

HC-05 Modul Nr. 1:

  • CMODE: egal, ROLE=0 (Slave), PSWD wie Modul Nr. 2

HC-05 Modul Nr. 2:

  • CMODE: 1, ROLE=1 (Master), PSWD wie Modul Nr. 1

Hat man diese Einstellungen gewählt und bringt beide Module in den Pairing Modus, sollten nach ein paar Sekunden die LEDs beider Module im Gleichtakt blinken. Sie tun das ca. alle zwei Sekunden mit einem kurzen Doppelblinken. Dann kann man die Verbindung mit dem o. a. Sketch testen. 

Pairing im Connection Mode 0

HC-05 Modul Nr. 1:

  • CMODE: egal, ROLE=0 (Slave), PSWD wie Modul Nr. 2

HC-05 Modul Nr. 2:

  • CMODE: 0, ROLE=1 (Master), PSWD wie Modul Nr. 1

Im Connection Mode 0 muss das Master Modul als BIND Adresse die Adresse des Slave Moduls haben. Es gibt zwei Möglichkeiten das zu bewerkstelligen.

  1. Man liest die Adresse des Slave Moduls aus und trägt sie im Master Modul ein (so wie weiter oben beschrieben).
  2. Man paired die Module zunächst im Connection Mode 1. Dadurch wird automatisch die richtige BIND Adresse eingetragen, denn das ist automatisch die letzte verbundene Adresse. Dann wechselt man im Master Modul auf Connection Mode 0 und friert damit die BIND Adresse sozusagen ein. 

Durch den Connection Mode 0 kann man sicher gehen, dass sich das Master Modul wirklich nur mit einem bestimmten Modul verbindet.  

HC-05 mit HC-06 pairen

Das ist – Gott sei Dank – wieder einfach. Man muss nur sehr aufpassen, dass man nicht durcheinander kommt mit den verschiedenen AT-Befehlen, Baud Raten (sie müssen natürlich abgestimmt sein), usw. 

HC-06 Modul:

  • ROLE=S (Slave), PIN wie PSWD des HC-05

HC-05 Modul:

  • CMODE: 1, ROLE=1 (Master), PSWD wie Modul Nr. 1

Stromverbrauch und Reichweite

Ich habe sowohl für den HC-05 wie auch für den HC-06 einen Stromverbrauch von ca. 4 mA gemessen. Dieser ging beim Senden kurzfristig auf 40 mA hoch. Diese Bluetooth Module sind gut geeignet für die Datenübertragung innerhalb eines Raums.  Im Nachbarzimmer hatte ich bei offener Tür nur noch teilweise Empfang. Ich würde schätzen, dass auf freier Strecke 15, vielleicht 20 m möglich sind, aber nicht mehr. 

67 thoughts on “HC-05 und HC-06 Bluetooth Module

  1. Hallo Wolfgang,
    Vorab danke ich Dir herzlich für die immer wieder sehr gelungene und informative Beiträge.
    Ich habe mit einem ESP32 an der Bluetooth Funktion experimentiert und musste feststellen, dass ein minimaler Sketch rund 80% vom Speicher einnimmt. Wenn ich jedoch den gleichen Sketch (mit den nötigen Anpassungen) mit einem Arduino 328 und HC-05 Modul mache, dann werden keine 15% vom Speicher benötigt. Irgendwie geht mir da die Rechnung nicht auf, da der ESP32 mehr Speicher für den Sketch zur Verfügung hätte.
    Ist Dir das Problem auch bekannt? Habe im Internet nichts vernünftiges gefunden.
    Liebe Grüsse aus der Zentralschweiz
    Matthias

    1. Hallo Matthias,

      ja, es ist schon erstaunlich, was die BluetoothSerial Bibliothek an Speicher belegt. Wenn man googelt, findet man an einigen Stellen etwas dazu, z.B. hier:
      https://forum.arduino.cc/t/why-does-this-little-program-occupy-80-storage-in-my-esp32-any-solutions/1189291
      In Kurzform: Bluetooth ist ziemlich komplex und braucht halt viel Speicher. Bei Verwendung der BT-Module ist das alles auf die Module ausgelagert. Du verwendest in dem Fall ja nur SoftwareSerial.

      VG, Wolfgang

      1. Hallo Wolfgang.
        Vielen Dank für die Rückmeldung. So sehe ich mich gezwungen, ein HC-05 Modul zu verwenden und die Bluetooth Funktion vom ESP32 zu ignorieren.
        Viele Grüsse
        Matthias

        1. Hallo Matthias,

          Wenn dir die verbliebenen 15 % Speicher nicht ausreichen, dann kannst du in der Arduino IDE unter Werkzeuge – Partition Scheme die Einstellung „Huge APP (3MB No OTA/1MB SPIFFS)“ auswählen, dann erhöhst du den Programmspeicher von 1310720 Bytes auf 3145728 Bytes, also mehr als doppelt so viel.

          VG, Wolfgang

          1. Perfekt! Vielen Dank!
            Jetzt muss der ESP32 nur noch machen, was beim PS4-Controller gedrückt wird und dann ist meine Game-Box fertig 🙂

  2. Hallo Wolfgang,

    erstmal vielen Dank für diesen hilfreichen und informativen Beitrag. Ich hatte eine Frage zur Umsetzung ohne den SoftwareSerial Sketch: Wo finde ich den BareMinimum Sketch. Es steht ja „in den Beispielen“ aber wo ist das denn?
    Vielen Dank für die Hilfe schonmal.

    Liebe Grüße
    Daniel

    1. Hi, damit sind die Beispielsketche in der Arduino IDE gemeint: Datei – Beispiele – Basics – Bare minimum o. ä. .
      Der Bare Minimum Sketch enthält ein leeres void setup(){} und ein leeres void loop(){}, sonst nichts. VG, Wolfgang

      1. Damkeschön! Jetzt stoße ich beim SoftwareSerial sketch leider auf das Problem, dass ich als Output kein OK o.ä. erhalte, sondern xx��x…
        Woran kann das liegen?

        1. Diese Symbole sind meistens ein Indikator dafür, dass die Baudraten der kommunizierenden Bauteile nicht übereinstimmen.

    2. Hi Daniel,
      „Bare Minimum Sketch“ meint, dass Du in der Arduino IDE „Datei Neu“ anklickst bzw . CTRL+N.
      Dann erhältst Du den Sketch:

      void setup() {
      // put your setup code here, to run once:

      }

      void loop() {
      // put your main code here, to run repeatedly:

      }

      Das dann einfach auf deinen ARDUINO raufladen…

  3. Hallo Zusammen,

    Info:
    Es gibt eine neue Version von den Modulen, zu erkennen an dem oberen Chip auf der Platine der ist um einiges kleiner. Die Version wird oft mit HC05 – New bezeichnet (AT+VERSION? ==> VERSION:2.0-20100601)

    Zum Problem: das Modul kann nicht wie gewohnt im AT- Modus angesprochen werden bzw. arbeitet fehlerhaft.

    Die Lösung: die Serielle Baud Rate „Serial.begin(9600);“ von 9600 auf 19200 umstellen dann klappt die AT Verbindung wieder wie gewohnt.

    @Wolfgang , bei Interesse kann ich Dir gerne ein Bild von dem Modul zuschicken.

    Gruß
    Achim

    1. Hallo Achim,

      vielen Dank, solche Hinweise sind sehr hilfreich! Das Bild hätte ich gerne (wolfgang.ewald@wolles-elektronikkiste.de). Und hast du auch eine Bezugsquelle?

      VG, Wolfgang

      1. Hallo Wolfgang,

        Die Module habe ich von Aliexpress (2,25€), bin gerade noch am Testen, es scheint dass die „Neue“ Version nicht unbedingt besser ist. Ab einer Baud Rate von > 19200 gibt es Übertragungsfehler mit 19200 läuft es.

        Bild ist unterwegs………

        Gruß
        Achim

      1. Dachte ich auch, zumindest für den AT Modus. Aber es kann natürlich sein, dass neuere Modelle mit neuer Firmware andere Eigenschaften haben.

  4. Hallo Wolfgang,

    Mein HC-05 am Arduino R3 erlaubt keine Kommunikation mit dem Smartphone per App (ArduinoBlueControl). Bei erstmaliger USB-Verbindung blinkt die LED am Modul schnell, die App meldet dann auch „Verbindung hergestellt“, auf AT Kommandos oder gar Voice Kommandos kommt keine Antwort. Nach „resetten“ (Resetknopf oberhalb Pinleiste und verbinden) blinkt die LED im 2 Sekundentakt, über USB kann dann aber noch nicht einmal eine Verbindung hergestellt werden.
    Spielt die Baudrate eine Rolle? Ich kann sie in der App nicht einstellen…..

    Danke für Antworten! Beste Grüße.

    Jürgen

      1. Hallo Wolfgang,

        danke für Deine schnelle Rückmeldung!

        – Die App ist die von Dir oben verlinkte.
        – Der HC-05 ist „nackt“ am Uno R3 angeschlossen, ohne Spannungsteiler.
        – TX an RX, RX an TX, sowie 3.3V und GND angeschlossen.
        – Andruino IDE meldet Uno am Port verbunden.
        – Zum Testen habe ich nun Deinen Sketch (s.o.) verwendet.
        – Baudrate auf 38400. Kompilieren und Upload problemlos wie immer.
        – Dann HC-0.5 aufs Dreadboard gesteckt. Modul blinkt schnell.
        – Nach Reset während Anschluss des USB-Kabels blinkt LED im ca. 2-Sekundentakt.

        Gruß.
        Jürgen

        1. Hallo Jürgen,

          ich habe mir das jetzt noch einmal angeschaut, einschließlich des ersten Kommentars. Du kannst keine AT-Kommandos über die App schicken. Genauer gesagt: kannst du schon, aber dann haben sie keine Wirkung. Entweder ist das Modul im AT-Modus und dann kannst du es mit AT-Befehlen über den seriellen Monitor einstellen, oder es ist im Verbindungsmodus und dann kannst du über die App Nachrichten schicken. Vergiss erst einmal die App. Nimm den software_serial_hc_06.ino Sketch, stelle dort Serial.begin(9600) ein und die die Baudrate 9600 im seriellen Monitor. Du kannst auch andere Baudraten einstellen, aber diese beiden Baudraten müssen übereinstimmen. Stelle mySerial.begin(38400) ein. Das ist essentiell. Bringe das HC-05 Modul in den AT-Modus. Tippe AT in den seriellen Monitor ein. Bekommst du ein OK? Wenn ja, dann würde ich mal die Rolle überprüfen (soll 0 = Slave sein), und Paritäts- und Stoppbit sollten auch 0 sein.
          Dann gehst du aus dem AT-Modus (einmal Stromversogung kappen) und startest den seriellen Monitor noch einmal neu. Dann rufst die App auf und verbindest dich mit dem HC-05. Das Modul sollte alle zwei Sekunden ein Doppelblinken zeigen. Mit der Konsole kann zumindest ich dann Nachrichten senden. Wenn ich auf den Joystick gehe, dann sehe ich im seriellen Monitor solche Nachrichten: {„x“:0,“y“:0,“a“:0,“f“:0,“b“:0}. Übertragung funktioniert also.
          Wenn das bei dir nicht geht, dann sage mir genau anwelcher Stelle.

          Ich habe mal den Beispielsketch ausprobiert (https://github.com/Helektrika/BlueControl/blob/master/BlueControl.ino), aber da fehlt die ArduinoJson.h. Da war auch seit 2018 keiner mehr dran. Und das Video zur App (siehe App Beschreibung auf GooglePlay) ist nicht mehr verfügbar. Mir scheint der Autor der App hat die Lust verloren.
          VG, Wolfgang

          1. Lieber Wolfgang,

            auweia, da hast Du eine Weile am PC verbracht! Herzlichen Dank für diese ausführliche Antwort. Ich mache mich daran und werde Dir Rückmeldung geben. Bis bald.

            VG Jürgen

          2. Lieber Wolfgang,

            ich habe den von Dir genannten Sketch übernommen und ebenso die Schaltung (s.o.). Baudraten (9600) wie empfohlen, auch mySerial.begin (38400) gesetzt. Ich bekomme über den seriellen Monitor auch nach Trennung der Stromverbindung keine Rückmeldung.

            Nach BT Verbindung über die App zeigt die LED ein Doppelblinken. Mehr geht nicht.

            Ich fahre fort mit meinem Projekt (Steuerung von Weichen mittels IR Sensor und Stepmotor) und verbinde die Aktoren und Sensoren per Hardware statt über BT. Manchmal löst sich der Knoten irgendwann von selbst … es sei denn Du weißt (bitte ohne viel Aufwand) spontan eine Lösung.

            Danke für Deine Mühe!

            Beste Grüße. Jürgen

            1. Viele Fehlermöglichkeiten gibt es eigentlich nicht. Wenn:
              – der Sketch so eingestellt ist wie beschrieben,
              – der serielle Monitor auf Baud 9600 eingestellt ist und auf „Sowohl NL als auch CR“,
              – die Verkabelung korrekt ist (Pin 10 –> TX, Pin 11 –> RX),
              – und man den Knopf auf dem HC05 drückt während man die Stromversorgung aktiviert,
              dann muss es eigentlich gehen. Es sei denn:
              – das HC05 Modul ist defekt oder man hat dir was falsches verkauft
              – ein Kabel ist kaputt (ist mir schon passiert)
              Mehr fällt mir nicht ein. Du kannst mir auch dein Modul zuschicken und ich schaue es mir an.
              VG, Wolfgang

              1. Lieber Wolfgang,

                nochmals danke für Deine Mühe. Toller Service!

                Ich habe alle Optionen sorgfältig durchgespielt. Es will nicht! Alle Sensoren und Aktoren laufen problemfrei, nur das HC05 nicht, auch nicht mit alternativen Schaltungen und Sketches. Ich werde einmal ein neues bestellen. Wer weiß, vielleicht habe ich es ja beim ersten Anschließen schon „zerschossen“?
                Dann lass uns jetzt den Faden hier schließen.

                Beste Grüße.

                Jürgen

  5. Hallo Wolfgang…
    Vielen Dank für die Mühe die Du Dir immer mit Deinem Tutorials machst.
    Ich versuche gerade einen ESP32 mit einem HC-05 zu koppeln, habe aber leider noch keine passende Tutorials gefunden. Hast Du Dich schon mal damit erfolgreich beschäfftigt?
    Viele Grüße

    Klaus-Dieter

    1. Hi, schau mal in diese Diskussion. Da ist ein Link zu einer Lösung drin. Hat wohl gewisse Einschränkungen, aber sollte funktionieren. Selber probiert habe ich es nicht.
      VG, Wolfgang

  6. Hallo,
    vielen Dank für die tolle Seite. Ich habe einen BT-05 umprogrammiert soweit so gut allerdings bleibt ein Problem:
    Ich kann über AT+PSWD? das Passwort auslesen aber nicht ändern mit AT+PSWD= xxxx ich habe leerzeichen vorn versucht usw. kein Erfolg.
    Haben Sie eine Idee?
    Vielen Dank im Vorraus!

    1. Hallo,
      ist ja komisch. Vielleicht eine spezielle Firmware? Mit AT+VERSION erhalte ich „2.0-20100601“. Welche Version haben Sie? Vielleicht setzen Sie das Passwort mal in Anführungsstriche? Bei mir geht beides, also mit und ohne Anführungsstriche.
      VG, Wolfgang

    2. Vielen Dank,
      die version ist 3.0-20170601 es hat jetzt mit AT+PSWD=“xxxx“ funktioniert.
      Guten Rutsch aus der Pfalz
      Theo

  7. Hallo,

    ich habe

    HC-05 Bluetooth

    installiert, die Software // SerialIn_SerialOut_004 geladen, — vor dem Anschluß der Spannung den Botton gedrückt und gehalten, die LED leuchtet 2 Sekunden und 2 Sekunden ist sie aus. Das ist der AT Modus. Im seriellen Monitor gebe ich AT und Enter ein. Es erscheint aber nicht das “ o.k.“ im Monitor. Habe ich etwas falsch gemacht?

    1. Hallo, was ist die Software „SerialIn_SerialOut_004“? Für den HC-05 ist der im Beitrag abgedruckte SoftwareSerial Sketch zu nehmen (software_serial_hc_06.ino). Wichtig ist allerdings die Baudrate auf 38400 abzuändern, also mySerial.begin(38400). Die Baudrate für Serial bleibt bei 9600. Die Baudraten für Serial und im Serial Monitor müssen gleich sein. Dann sollte es eigentlich gehen. Darüber hinaus kann man eigentlich nicht viel verkehrt machen, außer vielleicht noch RX und TV vertauschen.
      Viel Erfolg!
      VG, Wolfgang

      1. Danke, ———- ich checke nochmal, Habe den Code von az-delivery benutzt, dort steht „SerialIn_SerialOut_004“ und an 5 V angeschlossen am Nano. Werde aber nochmal alles durchgehen und dann Deine Software hochladen.

  8. Hallo Wolfgang,

    in meiner Liste mit Links zum Thema Elektronik/Mikrocontroller gibt es eine Rubrik mit der Bezeichnung Fundgrube. Da steht Deine Seite ganz oben 🙂

    Was mich in diesem Beitrag gewundert hat, ist die Verwendung des BT-Terminals. Meiner Meinung nach funktioniert das mit Putty besser, weil Putty nicht zwischen Ein- und Ausgabe-Fenster unterscheidet und man so einfacher ein CLI verwenden kann.

    Etwas umständlich ist nur das Herausfinden des entsprechenden COM-Ports. Den Port findet man bei Windows 10 unter Bluetooth/Weitere Bluetooth Optionen/COM-Anschlüsse. Dort gibt es dann „HC-05“ und „HC-05 `SPP Dev`“. Davor stehen die zugehörigen COM-Anschlüsse und dieses SPP Dev ist das was man nutzen kann. Den COM-Anschluss kann man dann einfach im Putty (oder einer anderen Terminal-Software) verwenden.

    Bei mir gibt es praktisch kein Projekt ohne CLI als „Wartungszugang“ und über BT ist das in vielen Fällen noch einfacher, weil man keine Anschlüsse aus dem Gehäuse rausführen muss.

    Viele Grüße
    Jörg

    1. Hi Jörg, erstmal danke für das Feedback! Das DSD Tech Tool habe ich nur zusätzlich erwähnt, da man sich dort nicht mit der Syntax der AT-Befehle beschäftigen muss. Also zum schnellen Einstellen vielleicht eine Alternative. Grundsätzlich würde ich auch eher Putty bevorzugen. Deswegen habe ich ja auch beide Wege vorgestellt. VG, Wolfgang

      1. Hallo Wolfgang, ich habe unter den falschen Artikel gepostet 🙁
        Ich bezog mich auf: https://wolles-elektronikkiste.de/arduino-mit-dem-smartphone-steuern
        Und hier meinte ich dieses BT-Terminal aus dem Windows Store.
        Es ging mir nicht um die Konfiguration der Adapter per Putty, sondern um die Verwendung des HC-05 als serielles Terminal mittels SoftwareSerial. Sozusagen als textmenubasierte Funkfernsteuerung im Terminal. Geht natürlich auch mit diesen seriellen Adaptern aber dann eben mit Kabel.
        Viele Grüße, Jörg

        1. Stimmt schon, Putty ist besser. Das Schweizer Taschenmesser sozusagen. Aber vielleicht auch ein bisschen abschreckend für weniger Erfahrene.

  9. Mal eine Frage meiner Seits,

    Hätte man ggf die Möglichkeit, den AT – Button auf den State bzw Enabled Pin zu legen?
    Frage dahingehend, da ich den AT – Modus gerne bei Bedarf über einen ATtinyx5 umschalten möchte, wärend ich mit meinem Handy verbunden bin und via Selbstgeschriebener App daten auf das Gerät via Bluetooth schreibe.

    Sprich…
    Neue Config via Bluetooth in den AVR schicken, AVR schaltet in den AT Modus, schreibt die neue Config rein und schaltet den AT wieder ab und vergleicht die Config.

    Grüße aus Lübeck VJ VamLykTan

    1. Hallo, da müsste ich selbst erstmal rumprobieren. Was hinzukommt ist, dass sich die Module, die ich ausprobiert habe, auch nicht alle gleich verhalten. Um per Programm in den AT-Modus umzuschalten, könnte man vielleicht die Stromversorgung mit einem Transistor ein- und ausschalten und das Knopfdrücken umgehen, indem man den AT-Knopf auch mit einem Transistor überbrückt.

  10. Hallo ja ich bin es wieder der mit der alten Bluet.Version auf dem Handy!!!!

    Zunächst mal Super das du uns an deinem Wissen teilhaben lässt!!!!

    Möchte jetzt da es mit dem HC-05 Modul geklappt hat eine bidirektionalen Verbindung
    zwischen zwei Unos+ Hc-05 1-2 Led“s und 2 Tastern aufbauen das heißt ich schalte vom 1. Uno
    auf dem 2.Uno die Led“s an+aus + umgekehrt.

    Von einer Richtung Uno+HC-05 Modul (im AT Master Mode) zum Slave Mode habe ich schon was gefunden.

    Aber müsste ich nach dem Senden des Uno mit HC-05 im Master Mode diesen dann in den Slave Mode
    bringen.
    Da reichen meine Kenntnisse leider nicht aus.
    Habt ihr irgeneine weiterführende Info für mich.
    Gruß Gerd
    Aus dem schönen Schwalmtal NRW

    1. Hallo Gerd,

      die Kommunikation sollte in beide Richtungen funktionieren. Du musst also nicht umschalten. Ein Slave kann auch dem Master etwas mitteilen. Hier ist Beispiel (hab auf die Schnelle nur was Englisches gefunden): https://howtomechatronics.com/tutorials/arduino/how-to-configure-pair-two-hc-05-bluetooth-module-master-slave-commands/

      Wir sind ja fast Nachbarn! Schöne Grüße von Wegberg nach Schwalmtal! Ohne Corona könnten wir das von Angesicht zu Angesicht besprechen. Vielleicht wird es ja bald besser, dann können wir das nachholen.

      VG, Wolfgang

  11. Zum Vergleich mit 433 MHz:
    Richtig ist, dass 433 oder 868 bessere Rechweiten liefern, locker 100m selbst bei etwas Bebauung,
    Aber diese frequenzen sind nicht für heftige Nutzung zulässig, strenge Regeln für Nuzungsdauer, einige Sekunden/Stunde abhängig von der Sendeleistung. Sonst setzt man alle Thermometer, Hausautomation etc ausser Gefecht!

  12. Zur Assembler-Programmierung:
    Wenn Du die UART im Arduino benutzt sieht das Programm aus wie in C,
    oder hast Du um die Uart frei zu lassen einen anderen Pin bitweise selbst getaktet?

    1. Zur Programmierung der Module habe ich die SoftwareSerial Funktion genommen, damit die UART frei bleibt für die Ausgabe am PC und für das Uploaden der Programme. Alles als „Fertigkost“ eingebunden, d.h. ich habe mich nicht darum gekümmert, wie die Simulation der seriellen Verbindung im Detail funktioniert.

  13. Hallo,
    seit mehreren Tagen versuche ich das Modul HC-08 in AT-Modus zu bringen, ohne Erfolg.
    Zu keinem Zeitpunkt ist eine Bluetooth-Kommunikation im Gang. Das Modul war bei mir noch nie gepaart.
    UART: 9600, 8N1 (LSB first)
    Egal ob direkt nach der Power ON, oder später. Ob mit EN High oder Low.
    Antwort auf ein AT-Kommando (ohne \r\n) ist immer „ERROR\r\n“.
    Nur wenn ich ein Kommando mit „\r\n“ oder auch einen beliebigen String z.B.: „Hallo\r\n“ über UART schicke, dann kommt „OK\r\n“ zurück.
    Aber auf „AT+VERSION\r\n“ kommt nur „OK\r\n“. M.E. das Modul kriege ich nicht in AT-Modus.

    In deinem Beitrag „hc-05-und-hc-06-bluetooth-module“ habe ich u.a. folgendes gelesen:
    „Die HC-08 Module, die ich mir gekauft habe, konnte ich zwar über AT-Kommandos programmieren, aber …“
    Könntest Du erklären wie DU es geschafft hast?
    Für Deine Antwort bedanke ich mich im Voraus
    Roman

    1. Hallo Roman, wie ich im Beitrag schrieb, habe ich die Teile auch noch nicht gepaart bekommen. Wenn der HC-08 auf AT mit OK antwortet, dann ist er im AT Modus, sonst würde er gar nicht antworten oder nur ein Error von sich geben. Viel weiter bin ich dann auch nicht gekommen. Und mangels einer BT Verbindung habe ich den HC-08 dann frustriert beiseite gelegt und nichts mehr damit gemacht. Deswegen empfehle ich sie auch nicht. Hier ist noch ein Youtube Video, vielleicht hilft das weiter:
      https://www.youtube.com/watch?v=iocL2Pq1UCA

    2. Ich habe nochmal geschaut. Also ich bekomme auch z.B. auf AT+VERSION eine Antwort (MLT-BT05-V4.0). Aber wie gesagt, ich komme dann nicht wirklich weiter. Ich habe auch die Einstellung mit Line Feed und Carriage Return.

  14. alles gut erklärt, danke…
    eine frage hätte ich noch:
    ich müsste den HC05 aus einem lipoakku mit 3,7V versorgen. Über den VCC-pin klappt es nicht. Ich dachte, ich könnte – statt der versorgung über den VCC pin die 3,7V über den anschlus 12 direkt an dem brick machen? Die anderen drei pins normal belegen (RX,TX,GND). Geht das?

    gruss
    georg

    1. Hallo Georg,

      das Gute an deiner Anfrage ist, dass ich noch einen Fehler in meinem Artikel bemerkt habe. Offiziell sollte man eine Versorgungsspannung zwischen 3.6 und 6 Volt nehmen und nicht zwischen 3.3 und 6 Volt wie ich schrieb. Mit 3.7 Volt sollte es eigentlich funktionieren. Ist aber im Grenzbereich für den Spannungswandler auf dem Modul. Und ja, man sollte den Wandler eigentlich umgehen können und direkt an das Hauptmodul gehen können. Ich habe es allerdings nicht ausprobiert. Einen Versuch ist es Wert. VG, Wolfgang

      1. hallo Wolfgang,
        erstmal ein gutes neues jahr, hauptsächlich ein gesundes…
        bevor ich anfange zu löten ein paar theoretische überlegungen:
        – der HC05 läuft an einem USB/TTL adapter tadellos
        – der akku (angegeben 3,7V / 2000mAh) bringt im leerlauf, also ohne last, 4.1V
        – beim einschalten mit angeschlossenem HC05 bricht offensichtlich die spannung zusammen, weil der HC05 viel strom zieht
        – wenn ich den spannungswandler mit der direkten einspeisung am pin 12 überbrücke, leuchtet wahrscheinlich z.b. auch die LED nicht, heisst, ich weiss nie ob die automatische verbindung zum slave stattgefunden hat…

        gibt es andere möglichkeiten die spannung aus dem akku beim einschalten zu stabilieren? Ich hab da mal was von einem kondensator paralell zum akku was gelesen?

        1. Hallo, dir auch ein schönes, frohes und gesundes 2021!

          4.1 Volt sind vielleicht schon etwas grenzwertig bei 3.3 Volt Sollspannung. Da würde ich vielleicht auch nicht mehr an den Pin 12 gehen. Ein Kondensator ist auf jeden Fall eine gute Idee um die Spannung beim Einschalten zu stabilisieren. Ich würde mal 10 MikroF zwischen VCC und Gnd probieren. Du könntest auch einen Step-up Konverter nehmen um die Spannung auf 5 V zu bringen. Allerdings irgendwie absurd die Spannung erst hochzubringen um sie dann mit dem Konverter auf dem Board wieder herunterzubringen. Das mit dem Kondensator ist ja schnell ausprobiert. VG,Wolfgang

  15. Hallo !

    Danke erstmal für die ausführliche Anleitung !

    Da ich Assembler-Programmierer bin, fehlen dazu natürlich noch ein paar kleine Infos, welche ich im Netz bisher nicht gefunden habe.
    Per Oszilloskop habe ich den Datenfluss des HC-05 mal ausgelesen und alles analysiert.

    Also… für Maschinensprach-Programmierer ist das Satzende „/r/n“ nichts Anderes, als die Zeichen (6) und (3) im ASCII-Zeichensatz.
    Daher wird nach jedem Befehlssatz h“B0″ und h“50″ mitgesendet.
    Ausgenommen vom ersten Startbit eines Satzes, welches mit einer „0“ beginnt, sind alle zweiten Startbits (also alle Wortenden) mit einem binären „10“ unterbrochen.

    Info am Rande: UART-Befehle werden umgekehrt übertragen, daher nicht mit dem Bit 7 beginnend, sondern mit dem ersten Bit.

    Ein vollständiger AT-Befehl sieht daher wie folgt aus:
    0 10000010 10 00101010 10 10110000 10 01010000 [A,T,(6),(3)]
    Also ein Start-Bit“0″, dann ein „A“, ein zweites Startbit „10“, ein „T“, ein zweites Startbit „10“, ein „(6)“ aus dem ASCII-Code, ein zweites Startbit „10“, und ein „(3)“ aus dem ASCII-Code. Danach wird die Leitung direkt wieder auf „1“ gezogen, also kein Extra-Stopbit.

    Ist leider im Netz so nicht zu finden, deswegen gebe ich hier mal meinen Schmarrn so drauf 🙂
    Hoffe, es bringt auch Jemanden etwas.

    Danke nochmal für die Erklärung der Module !!!

    LG… Chrisi

    1. Hallo Chrisi,

      vielen Dank, ich bin mir ziemlich sicher, dass es schon einige Leute auf der Welt gab die genau die Information gesucht und nicht gefunden haben. Vielleicht wir dann hier jemand fündig.

      Was ich noch suche, ist eine verständliche Einführung in das Bluetooth Profil HID (Human Interface Device), das von vielen Bluetooth Geräten verwendet wird. Dafür braucht man dann andere Module oder muss eine andere Firmware flashen. Nur Wenn da jemand etwas hätte, wäre ich dankbar.

      Mit Assembler habe ich mich bisher sehr wenig beschäftigt, habe aber großen Respekt vor Leuten, die sich damit auskennen!

      LG, Wolfgang

  16. 3.3V Beschränkung des RX Pins. Ich habe es so gelöst: vom Arduino (5V) einen 1k Widerstand und parallel zum RX Eingang eine blaue/weiße LED. Die LED hat einen Spannungsdrop von ca 3.2 Volt. Gleichzeitig hab ich die optische Rückmeldung für RX.

  17. Hallo Wolfgang,
    ich bin bei der Suche nach HC05/06-Problemen auf diese Seite gestoßen. Sehr informativ, danke.
    Vielleicht kannst Du mir bei folgendem Problem helfen: Ich habe hier diverse HC05 und 06 rumliegen und keiner tut, was er soll. Ich möchte damit einen kleinen Roboter steuern (OttO-DiY).
    Manche Module werden vom Handy garnicht gefunden, andere werden angezeigt, aber die Verbindung wird verweigert oder es heißt „kann nicht mit xx kommunizieren“ o.ä. Ich bin völlig ratlos und schon etwas verzweifelt. Getestet mit Samsung-J5, Redmi-6A (Android 8.1), Cubot Magic (Android 7). Nichts funktioniert.
    Hast Du einen Tip für mich?
    Gruß, Hajo.

    1. Hallo Hajo, Fehlersuche auf die Ferne ist nicht ganz so einfach. Als Erstes würde ich bei den Einstellungen in den Modulen suchen. Da würde ich empfehlen, die Teile mittels AT-Befehlen auf Werkseinstellungen zurückzusetzen. Dann könntest Du auch mal schauen, ob die Verbinndung per PC klappt. Wenn mir noch was weiteres einfällt, melde ich mich. Grüße, Wolfgang

      1. Hallo Wolfgang, es ist alles sehr mysteriös.
        Ich habe nach Deiner hervorragenden Anleitung die Module getestet, d.h. alle Daten abgefragt. Alles war richtig. Die zwei HC-06 wollen nicht, Namen „linvorV1.8“ und „SHC-06-20190901“.
        Aber einer der HC-05 spielt plötzlich mit. Die OttO-DiY-App läuft, ich kann den OttO steuern und die Verbindung bleibt stabil.
        Es hatte vor einiger Zeit auch mal mit einem HC-06 funktioniert, aber die Verbindung brach immer nach einigen Kommandos ab. Jetzt mit dem HC-05 scheint es endlich zu klappen. Jetzt kann ich weiterbauen.
        Ich habe zwar nichts verändert, es muss Dein magischer Einfluß gewesen sein…
        Danke. Gruß, Hajo.

        1. Hallo Hajo, erstmal schön, dass es zumindest mit einem Modul klappt. Das freut mich. Aber es hinterlässt natürlich einen schalen Beigeschmack, wenn man nicht weiß wieso. Vielleicht kommt ja noch die Erleuchtung. VG, Wolfgang

  18. Erstmal vorab: Unglaublich informativer und ausführlicher Beitrag. Danke dafür. Ich arbeite schon länger mit diesen Modulen, und muss aber trotzdem immer wieder nachschauen, wie und wo ich nun die Baudrate etc einstellen kann/muss. Dafür ist es sehr hilfreich, wenn es nur eine Quelle gibt.

    Außer meiner Dankesrede habe ich aber noch eine Frage: Kennst du eventuell auch Bluetooth-Module, die DTR / RTS mit dabei haben? So könnte man Arduinos/ESPs über Bluetooth programmieren, da ich hier ja den Reset kurz Low ziehen muss.

    Gruß Till

    1. Hi Till, vielen Dank für die Dankesrede! Leider kann ich mit den Teilen, die suchst nicht dienen. Ich kenne nur die Standardmodule. Aber ein interessanter Gedanke, Arduinos und ESPs „fernzuprgrammieren“. Schöne Grüße, Wolle

  19. Hallo Wolfgang,
    hast Du die Anregung von Gerd, eine Point to Multipiont-Verbindung zu testen, schon mal ins Visier genommen? Dieses Thema interessiert mich auch brennend.

    Gruß Eckard

    1. Hallo Eckard, offen gestanden noch nicht. Ich habe schlicht immer zu viel anderes vor. Ich verspreche lieber nichts mehr…

  20. Hallo Gerd, danke für die Anregung. Das habe ich tatsächlich noch nicht ausprobiert. Erscheint aber sehr sinnvoll. Kommt auf meine To-Do Liste!

  21. Hallo Wolfgang,

    zunächst besten Dank für den informativen Beitrag. Ich hoffe es hilft vielen Lesern!

    Hast Du schon eine Point-to-Multipoint-Verbindung getestet?
    Nach Spezifikation ist BT Ist dazu ja prinzipiell in der Lage, die Datenblätter schweigen sich jedoch meist darüber aus.
    Eine Anwendung wäre z.B. mehrere Sensoren an einem Empfänger anzuschließen.

    Viele Grüße
    Gerd

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert