PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bluetooth BLE 4.0 - CC41-a zu HM-10 umwandeln



Cysign
30.11.2015, 02:29
Hallo zusammen, für ein aktuelles Projekt suche ich ein möglichst kleines und energiesparendes Bluetoothmodul.
Bisher bin ich um ehrlich zu sein hauptsächlich auf die üblichen Verdächtigen HC-05 und HC-06 gestoßen.
Außerdem habe ich das CC2541 gefunden, welches dank BLE wohl energiesparender zu sein scheint.

Gibt es denn keine gängigen, kompakteren Module?
Wenn ich an Intel Curie denke, muss es ja möglich sein, ein Bluetoothmodul samt PCB-Antenne in kleinerer Bauform umzusetzen...

Cysign
02.12.2015, 22:10
Nachdem ich gesehen habe, dass es das CC2540 auch als einzelnen IC von TI gibt, dachte ich, dass es nicht schaden kann, mit so nem Mosul mal rumzuspielen.
Vom HC-06 bin ich gewohnt, dass man es einfach anschließt (Strom, Masse und RX/TX) und man es dann einfach nach der Eingabe des Standardpassworts (1234) nutzen kann.

Beim CC2540 hingegen kann ich das Bluetoothmodul nicht mit meinem Smartphone koppeln.
Das Modul (wird grade nur mit Stom versorgt, die RX/TX-Leitungen sind nicht verbunden, aber auch wenn sie verbunden sind, ändert sich nichts an dem Verhalten) gibt sich als CC41-A zu erkennen. Beim Koppeln vom Galaxy S4 aus (Android 5.0.1, Bluetooth 4.0) bekommen ich nur "Fehler - Kopplung von CC41-A abgelehnt".
Hat jemand zufällig Erfahrungen mit dem Modul/Chip?
Ich such jetzt schon seit ner Stunde im Netz aber ich habe das Problem noch nirgends gefunden.

morob
03.12.2015, 09:06
welches modul hast du oder nackten chip?
gibt es keine anleitung für dieses modul?

Cysign
03.12.2015, 11:50
Ich hab von aus das Bucht das Modul: 171988143980
Anleitungen hab ich schon einige gefunden und ausprobiert.
Ich vermute fast, dass es momantan am Pegal hapert. Mein Nano möchte auf 5V kommunizieren, das HS-10 auf 3,3V. In einigen Tutorals wird das Modul dennoch einfach so an den Arduino angeschlossen und funktioniert (ist ja beim HC-05 nichts anderes).
Ich hab mir jetzt mal n paar Pegalwandler auf Basis des BSS138 bestellt. Sollte ich das HS-10 schon gegrillt haben, kann ich von Glück reden, dass ich zwei bestellt hatte ;)

Wenn ich AT sende, antwortet das Modul nicht mit OK, sondern mit einer Kette von Zahlen. Ich dachte zunächst, dass ich vllt. RX/TX vertauscht hätte, aber wenn ich das (softwareseitig, da ich SoftSerial verwende) vertauscht, bekomme ich immer -1 zurückgegeben statt der Zahlenfolge.

morob
03.12.2015, 12:29
ich würde sagen du hast die falsche baudrate/geschwindigkeit.

Cysign
03.12.2015, 17:22
Danke für den Tip. Damit werd ich gleich mal rumspielen.
Ansonsten habe ich mir vorhin auch mal einen Pegelwandler besorgt, damit ich den Chip nicht grille, falls ich es nicht schon getan habe ;)

//Edit: Gibt es eigentlich ne Art Faustformel zur Berechnung der richtigen Baud-Rate? Bzw. woraus setzt sich die Rate eigentlich zusammen?

Cysign
04.12.2015, 00:09
Hmmm....also bisher hab ich mit dem Ändern der Baudrate keinen Erfolg gehabt.
Die Ausgabe sieht immer noch wie folgt aus:

Send something in serial-monitor or in bluetooth-terminal
Here we go
69
82
82
79
82
61
50
48
49
13
10
69
82
82
79
82
61
49
48
49
13
10
-1
-1
-1
-1




#include <SoftwareSerial.h>
SoftwareSerial softSerial(2, 3); // RX, TX

void setup()
{
Serial.begin(9600);
softSerial.begin(115200);
delay(100);
softSerial.println("U,9600,N"); // Temporarily Change the baudrate to 9600, no parity
// 115200 can be too fast at times for NewSoftSerial to relay the data reliably
softSerial.begin(9600); // Start bluetooth serial at 9600

Serial.println("Send something in serial-monitor or in bluetooth-terminal");
delay(1000);

softSerial.println("AT");
delay(1000);
softSerial.println("AT+NAMEfunnylilbluetooththing");
Serial.println("Here we go");
delay(500);

// Reset all settings.
softSerial.write("AT+RENEW");
delay(300);

//AT+ROLE1 = slave
//AT+ROLE0 = is master
softSerial.write("AT+ROLE1");
delay(300);

//AT+PASSxxxxxx sets the password xxxxxx (6 characters)
softSerial.write("AT+PASS000001");
delay(300);

//The work mode only works for the Master HM-10.
//AT+MODE0 = Transmission Mode
//AT+MODE1 = Remote Control Mode
//AT+MODE2 = Modes 0 + 1
softSerial.write("AT+MODE0");
delay(300);

//AT+IMME0 = wait until "AT+START" to work
//AT+WORK1 = connect right now
softSerial.write("AT+IMME0");
delay(300);

softSerial.write("AT+BAUD9600");
delay(300);

//AT+START = AT+WORK
softSerial.write("AT+START");
delay(300);
}

void loop()
{
if (softSerial.available())
softSerial.print("AT");
delay(500);
Serial.println(softSerial.read());
if (Serial.available())
softSerial.println(Serial.read());
}



Ich wär momentan froh, wenn ich einfach auf ein AT ein OK bekommen würde...

//Edit: Der Chip auf meinem Modul ist übrigens ein CC2541.

- - - Aktualisiert - - -

Komisch....jetzt spuckt mir das HM-10 ein OK aus mit diesem Code:

#include <SoftwareSerial.h>
//SoftwareSerial softSerial(6, 5); // RX, TX HC-05
SoftwareSerial softSerial(2, 3); // RX, TX HM-10

void setup()
{
Serial.begin(9600);
softSerial.begin(9600); // Start bluetooth serial at 9600
Serial.println("Send something...");
delay(300);

softSerial.println("AT");
delay(300);
/* softSerial.write("AT+ROLE0");
delay(300);
softSerial.write("AT+PASS000001");
delay(300);

softSerial.write("AT+MODE2");
softSerial.write("AT+WORK1");
delay(300);
*/
}

void loop()
{
if (softSerial.available())
Serial.write(softSerial.read());
if (Serial.available())
softSerial.write(Serial.read());
}

Blöd nur, dass ich es bluetoothseitig vom Smartphone oder PC nicht finden kann.

- - - Aktualisiert - - -

Finally it works!


#include <SoftwareSerial.h>
//SoftwareSerial softSerial(6, 5); // RX, TX HC-05
SoftwareSerial softSerial(2, 3); // RX, TX HM-10

void setup()
{
Serial.begin(9600);
softSerial.begin(9600); // Start bluetooth serial at 9600
Serial.println("Send something...");
delay(300);

Serial.println("AT");
softSerial.println("AT");
delay(500);

Serial.println("AT+NAMEansgar");
softSerial.println("AT+NAMEansgar");
delay(500);

Serial.println("AT+PASS000001");
softSerial.println("AT+PASS000001");
delay(500);


Serial.println("AT+ROLE0");
softSerial.println("AT+ROLE0");
delay(500);

Serial.println("AT+MODE2");
softSerial.println("AT+MODE2");
delay(500);

Serial.println("AT+WORK1");
softSerial.println("AT+WORK1");
delay(500);
}

void loop()
{
if (softSerial.available())
Serial.write(softSerial.read());
if (Serial.available())
softSerial.write(Serial.read());
}


liefert im Serial-Monitor folgendes zurück:


Send something...
AT
AT+NAMEansgar
AT+PASS000001
AT+ROLE0
AT+MODE2
AT+WORK1
OK
+NAME=ansgar
OK
+PASS=000001
OK
+ROLE=0
OK


(die Ausgabe ist war was durcheinander....aber hauptsche es funktioniert erstmal! Jetzt weiß ich immerhin, dass ich den Chip nicht mit 5V gegrillt habe :cool: )

Probleme hat das softSerial.write() gemacht, wobei ich gestern getestet hatte, ob alles mit write() oder print() funktioniert. Scheinbar ist wirklich ein println() nötig!

- - - Aktualisiert - - -

Arrrrgh....doch nicht.
Er hat kurzzeitig reagiert auf die AT-Commands.
Aber nun nicht mehr. Jetzt bekomme ich keine Antwort mehr vom Modul.
Also habe ich mal mein Austauschmodul angeklemmt....und da bekomme ich mit exakt dem selben Code wieder so ne komische Zahlenabfolge.
Ich werd jetzt mal die Delays hochschrauben und sehen, obs daran liegt.

//Edit: Infos zum HM-10 gibts übrigens hier: http://www.jnhuamao.cn/showNews.asp?id=87

Cysign
12.01.2016, 00:04
Ich vermute langsam, dass das eine Modul nen Defekt aufweist.
Beim zweiten Modul kann ich die AT-commands senden und erhalte auch als Feedback ein OK.



#include <SoftwareSerial.h>
SoftwareSerial softSerial(10, 11);
// RX, TX
void setup()
{
Serial.begin(9600);
softSerial.begin(9600);
Serial.println("Taraaaa");
delay(30);

softSerial.println("AT"); //OK if it's connected properly
delay(30);

softSerial.println("AT+BAUD4"); // Sets Baud to 9600
delay(30);

softSerial.println("AT+NAMEBRUNO"); // set name
delay(30);

softSerial.println("AT+ROLE1"); // ROLE1 slave - ROLE0 master
delay(30);

//softSerial.println("AT+MODE0"); // transmission mode, master only
//delay(30);

softSerial.println("AT+PASS000001"); // set password
delay(30);

//softSerial.println("AT+IMME0"); // wait for AT+START to work
//delay(30);

//softSerial.println("AT+START"); // start
//delay(30);

}

void loop()
{
if (softSerial.available())
Serial.write(softSerial.read());
if (Serial.available())
softSerial.write(Serial.read());
}




liefert mir soweit folgendes zurück:


Taraaaa
OK
+BAUD=4
OK
+NAME=BRUNO
OK
+ROLE=1
O
+PASS=000001
OK

Cysign
12.01.2016, 02:12
Oh man...das Modul raubt mir noch den letzten Nerv.
Nachdem ich nun einige Zeit verschiedene AT-Commands ausprobeiren konnte (keins hat zu einer erfolgreichen Verbindung zum Smartphone geführt), antwortet auch dieses Modul nun nicht mehr.
Da ich kein bis dato ungenutzten Commands verwendet habe, frage ich mich grade, ob der Speicher auf dem Modul nur eine sehr, sehr begrenzte Anzahl an Writes durchhält.
Ich denke, ich bewege mich zwischen 50-200 Schreibzugriffen. Eigentlich sollte der verbaute Speicher eher 10000 Schreibzugriffe aushalten, aber anderst kann ich mir das Versagen der beiden Module nicht erklären.

Ich hab noch drei Ersatzmodule, die ich auf die Breakoutboards der zwei defekten auflöten könnte. Allerdings würde ich lieber gerne die Ursache für das Versagen wissen, bzw. die beiden endlich ordentlich verwenden können.


//Edit: Ok, da ich weiter kommen wollte, habe ich das Modul auf einem Breakoutboard getauscht.
Und eben habe ich das schönste AT-Kommando überhaupt rausgefunden:
AT+HELP

Das neue Modul reagiert darauf mit folgendem Output:


************************************************** ******************
* Command Description *
* ---------------------------------------------------------------- *
* AT Check if the command terminal work normally *
* AT+RESET Software reboot *
* AT+VERSION Get firmware, bluetooth, HCI and LMP version *
* AT+HELP List all the commands *
* AT+NAME Get/Set local device name *
* AT+PIN Get/Set pin code for pairing *
* AT+PASS Get/Set pin code for pairing *
* AT+BAUD Get/Set baud rate *
* AT+LADDR Get local bluetooth address *
* AT+ADDR Get local bluetooth address *
* AT+DEFAULT Restore factory default *
* AT+RENEW Restore factory default *
* AT+STATE Get current state *
* AT+PWRM Get/Set power on mode(low power) *
* AT+POWE Get/Set RF transmit power *
* AT+SLEEP Sleep mode *
* AT+ROLE Get/Set current role. *
* AT+PARI Get/Set UART parity bit. *
* AT+STOP Get/Set UART stop bit. *
* AT+START System start working. *
* AT+IMME System wait for command when power on. *
* AT+IBEA Switch iBeacon mode. *
* AT+IBE0 Set iBeacon UUID 0. *
* AT+IBE1 Set iBeacon UUID 1. *
* AT+IBE2 Set iBeacon UUID 2. *
* AT+IBE3 Set iBeacon UUID 3. *
* AT+MARJ Set iBeacon MARJ . *
* AT+MINO Set iBeacon MINO . *
* AT+MEA Set iBeacon MEA . *
* AT+NOTI Notify connection event . *
* AT+UUID Get/Set system SERVER_UUID . *
* AT+CHAR Get/Set system CHAR_UUID . *
* -----------------------------------------------------------------*
* Note: (M) = The command support slave mode only. *
* For more information, please visit http://www.bolutek.com *
* Copyright@2013 www.bolutek.com. All rights reserved. *
************************************************** ******************


AT+VERSION liefert

+VERSION=Firmware V3.0.6,Bluetooth V4.0 LE

Allerdings hätte ich statt "3.0.6" eher sowas wie "540" (oder darunter) erwartet.

Cysign
12.01.2016, 06:05
Okay, beim Rumspielen mit der Baud-Rate habe ich irgendwann keine Reaktion vom Modul mehr bekommen (einfach gar keine Reaktion mehr).
Also habe ich im Datenblatt des HM-10 nachgesehen, welche Baudraten es gibt.

0 9600
1 19200
2 38400
3 57600
4 115200
5 4800
6 2400
7 1200
8 230400

Deafult: 0 (9600)

Da ich AT+BAUD2 eingegeben hatte, habe ich diese Baudrate natürlich als erstes versucht.
Erfolgreich 'wiederbeleben' konnte ich mein HM-10 jedoch mit einer Baud von 4800, welche eigentlich mit AT+BAUD5 eingestellt werden sollte.
Scheinbar liegt hier das Problem, denn auch mein anderes HM-10, welches ich als verloren glaubte, konnte ich mit der selben Baudrate 'wiederbeleben'.

Also im Arduino
softSerial.begin(4800);, dann wieder BAUD4 (9600) einstellen und danach wieder zurück zu
softSerial.begin(9600);

Allerdings ist es mir nach wie vor nicht geglückt, mein Handy mit dem Modul zu koppeln.


//Edit: Scheinbar ist die Kommandoliste unter AT+HELP nicht komplett. AT+TYPE kommt dort zum Beispiel gar nicht vor.

//Edit2: So wies aussieht, ist mein vermeitliches HM-10 gar keins. Bolutek nennt sein Modell nämlich CC-41A. Was die Unterschiede zum HM-10 sind (bis auf den einen optischen) weiß ich noch nicht. Auch ist mir bisher nicht bekannt, ob ich irgendwie die Firmware des HM-10 darauf nutzen kann.

Laut https://forum.arduino.cc/index.php?topic=334466.0

Although both modules look very similar, CC-41A requires that AT commands are terminated by LF+CR and there are differences in the command set.


Interessanter Link zum CC41-A:
https://rydepier.wordpress.com/2015/10/22/comparing-the-hm10-and-ble-cc41a-bluetooth/

Leider funktionieren die hier dokumentierten ATA-Befehlr nicht uneingeschränkt:
https://halckemy.s3.amazonaws.com/uploads/document/file/94325/FE85NGOIH90OKGT.pdf

Cysign
12.01.2016, 08:22
Soweit ich nun herausgefunden habe, soll man das CC41-A auch mit der Firmware des HM-10 bespielen können.
Bzgl. des Pinouts vom CC Debugger zum Modul:
https://flashandrc.wordpress.com/2014/08/26/bluetooth-hid-firmware-tested-on-hm-10/

Den CC Debugger kann man auch per Arduino emulieren:
https://github.com/RedBearLab/CCLoader

Nun muss ich nur noch rausfinden, woher ich ein Dumb einer installierten Firmware bekomme und wie ich diese aufspiele ;)

Cysign
13.01.2016, 04:12
Ich habe nun noch etwas bzgl. des HM-10 und des CC2541-A recherchiert und es geschafft, eine Firmware des HM-10 auf dem CC2541 basierend aufzutreiben.
Zum Flashen kann man wohl das Tool namens Flash Prorgammer von Texas Instruments nutzen.
Da ich keine Hex-Datei, sondern eine Bin habe, kommt die GUI damit aber nicht klar. Mit dem SmartRF Studio 7 wurde allerdings der Command Line Interface-Client nicht mitinstalleirt, weshalb ich manuell noch einmal den Flash Programmer vond er TI-Seite runterladen musste. Und siehe da, ich habe eine SmartRFProgConsole.exe .

Von der Commandozeile aus kann ich nun SmartRFProgConsole aufrufen und mit dem Parameter X sehe ich

C:\TI\flaprog\Flash Programmer\bin>SmartRFProgConsole X

Texas Instruments SmartRF Flash Programmer v1.13.7-no-mfc
---------------------------------------------------------
Device:CC Debugger ID:0100 (fwId:05CC, fwRev:0044) Chip:CC2541

Meine Firmware habe ich unter C:/hm10stock.bin abgelegt.

Mit den entsprechenden Parametern wird meine Firmwaredatei nun eingelesen und laut CLI auch erfolgreich aufgespielt:

C:\TI\flaprog\Flash Programmer\bin>SmartRFProgConsole S EWP=1 F="C:\hm10stock.bin"

Texas Instruments SmartRF Flash Programmer v1.13.7-no-mfc
---------------------------------------------------------

0100: Writing flash...
0100: Flash page written successfully

Allerdings nach einem Reset des Moduls und dem Auswerten der AT-Kommandos habe ich festgestellt, dass es nach wie vor auf die Kommandos der CC41-A-Firmware hört. Das Flaschen war also nicht erfolgreich.
Auch wundert mich, dass die Ausgabe des erfolgreichen Flaschens immediately kommt. Hier scheint keine Kommunikation zwischen CC Debugger und dem CC2541-Chip stattzufinden.


//Edit: Ich habe mit dem Parameter SI die Übertragung der Firmware nun verlangsamt und dabei festgestellt, dass die Status-LED des Moduls beim Flashen einen Augenblick dunkler leuchtet. Scheinbar findet doch eine Übertragung statt.

//Edit2:

Mittels

C:\TI\flaprog\Flash Programmer\bin>SmartRFProgConsole.exe S CE

Texas Instruments SmartRF Flash Programmer v1.13.7-no-mfc
---------------------------------------------------------

0100: Erasing entire flash...
0100: Chip erased OK

konnte ich den CC2451 vollständig löschen, was auch einen Moment gedauert hat im Gegensatz zum Aufspielen der Firmware. Das Modul lauchtet hat nun eine dauerhaft dunkler leuchtende LED.
Auch per Serialkommando konnte ich verifizieren, dass keine Reaktion mehr erfolgt.

Der erneute Versuch die Firmware aufzuspielen ist erneut gescheitert.
Aber immerhin weiß ich nun, dass das Flash-Programm mit dem CC Debugger und dem Chip zusammen funktioniert - zumindest zum Löschen ;)

Cysign
14.01.2016, 19:01
Sodalachen, nach etlichen Stunden der Verzweiflung habe ich es nun geschafft, die Firmware des HM-10 auf meinem CC41-A zu installieren.

Hierzu habe ich nicht den TI CC Debugger genutzt, mit welchem man wohl für gewöhnlich per Smart RF Studio / Flash Programmer Firmware installieren kann, denn die HM-10 Firmware, die ich finden konnte, ist nicht damit kompatibel.

Zum Einsatz kam das oben bereits verlinkts CCLoader.
Hierzu spielt man den Sketch auf einem Arduino auf. In der Ino steht die Pinbelegung:



// Debug control pins & the indicate LED
int DD = 6;
int DC = 5;
int RESET = 4;
int LED = 13;


Die entsprechende Belegung am HM-10 / CC41-A Modul kann man dem Bild unter https://flashandrc.wordpress.com/2014/08/26/bluetooth-hid-firmware-tested-on-hm-10 entnehmen.

Als nächstes platziert man die gewünschte firmware.bin und die CCLoader.exe im selben Verezichnis, prüft, welchen Com-Port der angeschlossene Arduino nutzt und startet per Kommandozeile den CCLoader, was dann wie folgt aussehen kann:


C:\>CCLoader.exe 3 hm10stock.bin 0
Copyright (c) 2013 RedBearLab.com
CCLoader.exe version 0.5
Comport : COM3
Bin file: hm10stock.bin
Device : Default (e.g. UNO)

Comport open!
<Baud:115200> <data:8> <parity:none> <stopbit:1> <DTR:off> <RTS:off>

File open!
Block total: 512

Enable transmission...
Request sent already!
/************************************************** ******************/
* If there is no respond last for 3s, please press "Ctrl+C" to exit!
* And pay attention to :
* 1. The connection between computer and Arduino;
* 2. The connection between Arduino and CC2540;
* 3. Whether the device you using is Leonardo or not;
* 4. Other unexpected errors.
/************************************************** ******************/

Waiting for respond from Arduino...

Uploading firmware...

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 Upload successfully!
File closed!
Comport closed!


C:\>
Hierbei wäre
3 = Com3
hm10stock.bin = die gewünschte Firmware
0 = Parameter, der zwischen zwei Arduino-Typen unterscheidet

PS: Bei mir ist es so, dass der Arduino beim ersten Aufruf nicht reagiert. Beende ich per Strg+C die Ausführung und starte sie erneut, kann ich die Firmware problemlos flashen. Also nicht verunsichern lassen ;)




C:\>CCLoader.exe
Copyright (c) 2013 RedBearLab.com
CCLoader.exe version 0.5
Invalid parameters.
Usage: CCLoader.exe <com number> <bin file> <device>
Example: CCLoader.exe 2 abc.bin 0
<device>: 0 -- Default (e.g. UNO)
1 -- Leonardo

C:\>


Nachdem nun etwa 1-2 Minuten bis zu 512 Blocks hochgezählt werden, konnte ich mein CC41-A wieder Seriell ansprechen und die LED begann wieder gemütlich vor sich her zu blinken.

Und nachdem ich festgestellt habe, dass mein Arduino Mega SoftSerial auf den Pins 5&6 nicht unterstützt und dann wieder zurück zu 10&11 gewechselt hatte, konnte ich das Modul per AT mit der Einstellung des ArduinoIDE-Serial Monitors "No line ending" ansprechen.

Wichtig ist nun, dass im Code kein println, sondern nur print verwendet wird:


softSerial.print("AT");
delay(50);

Wichtig: Sollte die v520 installiert sein, ist es nicht ratsam das Kommante AT+RENEW auszuführen. Dies führt zu einer Dauerschleife mit der Ausgabe der URL des Firmwareherstellers.

www.jnhuamao.cnwww.jnhuamao.cnwww.jnhuamao.cnwww.j nhuamao.cnwww.jnhuamao.cn
Leider 'hört' das Modul dann auch nicht mehr auf AT-Kommandos, weshalb der Vorgang des Flashens der originalen Firmware wiederholt werden muss.

Auf das Kommando AT+VERR? antwortet mein Modul nun mit HMSoft V520.


Upgrade auf aktuelle Firmware

Als nächstes schließe ich das Modul mit einem FTDI Usb2Serial-Wandler an und übermittle das Kommando
AT+SBLUP und erhalte OK+SBLUP als Bestätigung.
Die LED des Moduls leuchtet nun permanent schwach, was den Updatemodus der Firmware bestätigt.

Auf der Webseite www.jnhuamao.cn (http://www.jnhuamao.cn) kann man unter Downloads nun ein Firmwareupgrade herunterladen.
Dieses Bundle beinhaltet einerseits das Update (HMSoft.bin), dazu das Update-Tool (HMSoft.exe) und eine Readme, die isch als Changelog entpuppt.

Das Tool ist recht rudimentär gehalten, so wählt man in der GUI die Firmware aus, gibt die (Com-) Portnummer an, an der das Modul hängt, und startet den Updagradeprozess.

Bei mir brach beim ersten Versuch das Upgrade ab (timeout). Ich konnte das Update jedoch problemlos direkt erneut starten und habe daraufhin die aktuellste Firmware im Modul per AT+VERR? auslesen können: V540.


Nun sollte man das Modul noch einmal mit AT+RENEW resetten und sich über den geglückten Wandel von CC41-A zu HM-10 freuen :)



Aktuelles Dump erstellen

Besitzt man nun die Tendenz, sich etwas mehr mit den CC254x basierten Modulen befassen zu wollen, so ist es empfehlenswert, ein Dumpfile des nun installierten und geupdateten Firmware zu erstellen.
Hierzu nutzt man das TI-Tool SmartRF Flash Programmer.

Per Kommandozeile navigiert man zum Verzeichnis des SmartRFProgConsole.exe und mittels
[code]
S R F="C:\TI\flaprog\hm10v540.hex"
[Code]
kann ein Hex-Dump der aktuellen Firmware erstellt werden.
Der Vorteil der Hex-Datei ist, dass diese auch über das grafische Interface des SmartRF Flash Programmer eingespielt werden kann, also per Mausklick und ohne, dass man sich durch die Kommandozeile hangeln muss.

PS: SmartRFProg.exe wird beim SmartRF Studio 7 mitinstalliert. Benötigt man jedoch das Kommandozeilenwerkzeug SmartRFProgConsole.exe, so muss man das Tool SmartRF Flash Programmer nochmal einzeln von der TI-Webseite herunterladen und installieren.

Zum Testen habe ich meinen Chip erneut gelöscht und per GUI die nun erzeugte Hexdatei erfolgreich aufgespielt.
Im Gegensatz zur CC41-A Firmware kann ich die Kopplung mit meinem Smartphone mit der HM-10 v540 nun erfolgreich abschließen.

Georgius
22.01.2016, 12:05
Auch wenn es nichts mehr bringt, die Zahlen am Anfang heißen nur
ERROR=201
ERROR=101

pafleraf
09.02.2016, 08:16
Hey Cysign,

Es scheint gar nicht so einfach zu sein, die Firmware vom HM-10 in der komplette version aufzutreiben... Meinst du es wäre denkbar, entweder die von dir hergestellte hm10v540.hex, oder vielleicht die v520 als bin zu schicken? Ich verzweifle auch bald an diese bolutek Module... AT-Befehle nehmen sie schon, allerdings konnte sie weder mit meinem iPhone 6, noch mit dem macbook pro verbinden. Die scheinen komplett unsichtbar zu sein. Oder meinst du ich habe sie schon gegrillt?

inka
19.02.2016, 10:32
hi Cysign,

zunächstmal großes lob und danke für die von dir zur verfügung gestellten informationen, so fiel es mir etwas leichter mit den gestern angekommenen (fertigen) HM-10 modulen zu experimentieren. Eigentlich CC41-A modulen. Das wusste ich bei der bestellung noch nicht.

Das mit den baudraten war schon mal ein ganz wichtiger hinweis zum wiederbeleben...

ich habe das hier (die zuordnung von 1-9 und der baudraten) gefunden- da passt es jetzt:

1---1200 / 2---2400 / 3---4800 / 4---9600 / 5---19200 / 6---38400 / 7---57600 / 8---115200 / 9---230400 / default:4---9600

was bei mir an den original modulen funktioniert hat:

at
at+role
at+addr
at+pass
at+inq (nur bei master)
at+conn1 (die lfd.nr. des gefundene slaves)

beim abfragen so wie es da steht, beim ändern mit dem parameter direkt anschliessend

at+pair funktioniert nicht, das heisst, die module finden sich nach abschalten nicht wieder. Schade :-(

übrigens funktioniert die abfrage/eingabe in dem IDE terminalfenster, wenn die verd... baudrate stimmt...

Ob ich das mit dem aufspielen der HM-10 firmware machen möchte weiss ich nicht. Ich weiss nicht ob sich der aufwand wirklich lohnt, abgesehen davon habe ich linux, da ist vieles in der richtung sowieso noch schwieriger...

Eine frage noch: wie erkenne ich die "echten" HM-10? Am preis? An was anderem? Ich bräuchte zumindest eines, um mit den EZ-link von adafruit kommunizieren zu können (auch upload zum arduino) - und das ging mit dem CC41 nicht, die haben sich einfach nicht gefunden...

inka
11.03.2016, 08:41
hallo,

bei weiteren versuchen habe ich festgestellt, dass beide module inzwischen auf die abfrage "AT+ADDR" mit "+ADDR=00:00:00:00:00:00" antworten. Andere abfragen bzw. änderungen bei ROLE, BAUD usw. funktionieren, änderungen sind auch möglich, allerdings wird bei "AT+INQ" kein slave gefunden. RESET, bzw. RENEW bewirken keine änderung der adresse. Kennt das jemand? Wie ist das mit der adresse zu beheben?

Cysign
30.03.2016, 00:20
Sorry, ich hatte die letzten Wochen viel um die Ohren.

Zunächst einmal: Die Hex-Datei hm10v540.hex für das CC2541 kann ich gerne per Mail versenden. Schickt mir hierzu einfach euere Mailadresse per PN.
Ich habe die Hex-Datei bereits an zwei Leute verschickt, die damit erfolgreich ihr Modul umwandeln konnten.

Das originale HM-10 hat scheinbar, soweit ich das auf Fotos erkennen konnte, einen Quarz auf der Platine mehr. Ob das ein sicheres Erkennungsmerkmal ist, weiß ich nicht - ich habe selbst bisher kein originales HM-10 in den Händen gehalten.


Bzgl. Linux wäre es sicherlich interessant zu wissen, wie man dort die Firmware flashen kann.
Da die von mir beschriebene Variante wirklich einfach und schnell geht, kann man das aber bestimmt mal eben irgendwo an nem Windows-Rechner machen.

Wenn man mehrere Module umwandeln will, würd eich eine Holzwäscheklammer nehmen, gezielt Löcher reinbohren, Pogopins einsetzen und verkabeln.
Somit kann man die Wäscheklammer als Adapterkabel nehmen und muss nicht an jedem Modul einzeln zum Flashen rumlöten, so wie hier:
http://www.youtube.com/watch?v=BBqsVKMYz1I&t=5m10s

Pogo-Pins bekommt man für unter 2$ über Aliexpress ;)

inka
01.04.2016, 12:25
hallo Cysign,

das HM-10 was ich bestellt (http://www.banggood.com/KEYES-HM-10-6-Pin-Transparent-BLE-Bluetooth-V4_0-Serial-Port-Module-With-Logic-Level-Translator-p-1023524.html) habe ist nun eingetroffen (hat auch diesen zweiten quarz in der nähe der antenne), allerdings läufts nicht so wie erwartet:

- ist angeschlossen 5V/GND und TX-RX gekreuzt

- blinkt ca. 2x / sec
- wird vom PC-bluetooth dongle gefunden, ist aber für weitere aktionen (pair, add device...) nicht erreichbar, es kommt nur die meldung "host ist down"...

auch über den seriellen monitor der arduino IDE wird zwar der port mit /dev/ttyUSB1 aufgeführt und ist auch anwählbar, reaktion auf AT befehle, egal bei welcher baudrate, erfolgt keine...

ich habe auch noch einmal Deinen leidensweg bei der umprogrammierung (vielen dank übrigens für das hexfile...) sorgfältig und langsam durchgelesen, das kann ich nicht.

Inzwischen bin ich soweit auch "etwas mehr geld" (das EZ-Link modul von adafruit war ja auch nicht billig) für ein funktionierendes BT-modul auszugeben, nur welches?
Adafruit schreibt es muss mindestens BT 2.1 sein, das habe ich schon garnicht gefunden, nur 2.0 (HC-05) und eben HM-10 BLE mit 4.0. Welches modul könnte sonst noch passen?

Unregistriert
01.04.2016, 22:36
Engslish version:
Sorry I don't speak Allemande, I'm French...
I also try to burn the original HM-10 firmware on a CC41, but where I can find the firmware ?
I have found the download page, but when I burn the firmware, the CC2541 dosen't work (http://www.jnhuamao.cn/download_rom_en.asp?id=)
Thanks for your help

Version en francais:
Désolé, je ne parle pas Allemet, je suis Francais...
J'essaye de flasher un module CC2541 avec le firwmare du HM-10, mais où puis-je trouver le firmware ?
J'ai trouvé la page de téléchargement, mais quand je flash le firmware, le CC2541 ne fonctionne pas (http://www.jnhuamao.cn/download_rom_en.asp?id=)
Merci pour votre aide

Hexor
03.04.2016, 12:38
Deutsch-Version (die obige Meldung ist von mir) ;)

Leider spreche ich nicht Allemande, ich bin Französisch ...
Ich versuche auch, die ursprüngliche HM-10 Firmware auf einem CC41 zu verbrennen, aber wo ich die Firmware finden kann?
Ich habe die Download-Seite gefunden, aber wenn ich brennen die Firmware, die CC2541 dosen't Arbeit (http://www.jnhuamao.cn/download_rom_en.asp?id=)
Danke für ihre Hilfe

gnuismo
13.04.2016, 13:22
while (1) {
softSerial.listen();
while (softSerial.available() > 0) {
char inByte = softSerial.read();
Serial.write(inByte);
}
if (Serial.available()){
while (Serial.available()){
char c = Serial.read();
softSerial.write(c);Serial.write(c);
}
Serial.println("->");
softSerial.println("");
}
}

Sehr schwierige Frage Zufalls

gnuismo
13.04.2016, 21:38
AT+BAUD1: 1200bps
AT+BAUD2: 2400bps
AT+BAUD3: 4800bps
AT+BAUD4 9600bps (velocidad por defecto)
AT+BAUD5: 19200bps
AT+BAUD6: 38400bps
AT+BAUD7: 57600bps
AT+BAUD8: 115200bps

Esto de no tener documentación del bicho es un rollo

Unregistriert
17.04.2016, 22:53
hallo ich habe das modul AT-09 Bluetooth 4.0 Uart module of transceiver CC2541 compatible HM-10

ich kann keine at befehle senden und kann auch keine firmware flashen


was kann ich machen


mfg

Cysign
14.05.2016, 22:57
Hi foreign fellows,

I'm providing the hexfile for private use as far as the author of the firmware doesn't prohibit me dealing it out. Feel free to register and send me your mailaddress to receive the hex-file.

Cysign
16.05.2016, 23:43
@hexor: The jnhuamao website only provides an update-file. It's not a firmwaredump you might use to change from CC41-A (or maybe AT-09) to HM-10. For this purpose you need a working dump for your IC (i.e. cc2541).
With my firmware dump I was able to convert my CC41-A to an working HM-10. I even could use the update on the jnhuamao-website to update my converted module.
Feel free to send me your mailaddress by pn to receive the dump by email.

syssi
22.08.2016, 22:19
Hi,

ich habe ebenfalls versehentlich CC41-Module gekauft und war mit Hilfe dieser Anleitung in der Lage die HMSoft-Firmware zu flashen. Danke an Cysign für seine Vorarbeit. Mit diesem Post möchte ich das Vorgehen noch einmal zusammenfassen und ggf. ein paar Informationen nachtragen, welche mir gefehlt haben:

1. Mein Bolutek-Model habe ich über die Pads DC, DD, RESET, sowie VCC 3.3V und GND an einen Arduino Nano angeschlossen, auf welchen ich vorab den CCLoader-Sketch geflasht habe. Somit spart man sich den Kauf eines teuren CC Debuggers von Texas Instruments, welcher für gewöhnlich genutzt wird um einen CC254x zu beschreiben. Mit Hilfe eines selbst kompilierten Kommandozeilen-Tools schreibt man anschließend über den Arduino die Firmware auf das Modul.

Den Kommandozeilen-Parameter zur Wahl zwischen unterschiedlichen Arduino-Versionen gab es in der Linux-Version nicht. Deshalb habe ich den Quellcode der Windows- und Linux-Version verglichen. Das fehlende Feature habe ich portiert und als Push-Request an den Autor geschickt. Es wurde bereits heute vom Autor akzeptiert und ist in der aktuellen Version enthalten. Mit diesen Änderungen war ich in der Lage das Modul unter Linux zu flashen:



$ git clone https://github.com/RedBearLab/CCLoader
Klone nach 'CCLoader'...
remote: Counting objects: 33, done.
remote: Total 33 (delta 0), reused 0 (delta 0), pack-reused 32
Entpacke Objekte: 100% (33/33), Fertig.
Prüfe Konnektivität... Fertig.
$ cd CCLoader/SourceCode/Linux
$ gcc -o ccloader main.c
./ccloader /dev/ttyUSB0 ~/CC2541hm10v520.bin 1
Comport open:
Device: Leonardo

Baud:115200 data:8 parity:none stopbit:1 DTR:on RTS:off
File open success!
Block total: 512
Enable transmission...
Request sent already! Waiting for respond...
Begin programming...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 Program successfully!
File closed!
Comport closed!


Wichtig bei der Binärdatei handelt es sich nicht um die HMSoft.bin (253952 Bytes) der Herstellerseite, sondern um eine Firmware inklusive Bootloader mit der Größe von 262144 Bytes. Wer Spaß daran hat, kann die beiden Dateien mal mit einem Hexeditor vergleichen. Man kann die unterschiedlichen Blöcke gut voneinander unterscheiden. Zwischen ihnen ist etwas Padding, sowie am Ende der Datei. Cysign war so nett mir die Datei inkl. Bootloader zur Verfügung zu stellen. Später habe ich sowohl die V520 als auch die V540 noch hier finden können:

https://iegget.no/wiki/technology/electronics/microcontrollers/cc2541/
https://forum.arduino.cc/index.php?topic=393655.0

Ich habe trotzdem den Weg gewählt erst die Version 520 zu flashen, da sich es sich bei beiden BIN-Dateien um eine Firmware für den CC2540 handelt. Auf der HMSoft-Seite finden sich jedoch auch Downloads für den CC2541. Vermutlich sind die Unterschiede nur marginal und zum Glück bootet die Version CC2540-V520 auf meinem CC2541 sauber, jedoch ist meine Hoffnung mögliche Probleme ausschließen zu können, wenn ich im nächsten Schritt über das HMSoft-Update-Tool das Modul aktualisiere.

2. Nach dem erfolgreichen Flash-Vorgang per CCLoader habe ich die Pads DD, DC und RESET wieder von ihren Kabeln befreit. Dafür wurde ein serieller Wandler (FTDI mit 3.3V Pegel) an RXD und TXD geklemmt. Bei 9600 Baud und einem gesendeten "AT" ohne Zeilenumbruch meldete das Modul bereits ein OK. Auch die Abfrage der aktuellen Firmware-Version wird mit einem V520 quittiert. Nun schickt man ein "AT+SBLUP" um das Modul in einen Update-Modus zu versetzen. Im folgenden kam ich leider dann doch nicht drum herum ein Windows zu booten, da das Update-Tool (HMSoft.exe) nur für Windows zur Verfügung steht. Geflasht habe ich die HMSoft.bin von der chinesischen HMSoft-Seite aus dem ZIP-Archiv CC2541 V540. Mein Vorgehen ist vergleichbar mit dieser Anleitung: https://suryaigor.wordpress.com/2016/02/05/upgrading-firmware-to-hm-10-cc2541-ble-4-0/ Jedoch habe ich nicht die Dateien aus dem verlinkten Git-Repository verwendet, da es sich laut Checksumme um die V540 für den CC2540 handelt.

Das wars. Langfristig würde ich gerne dem CC2541 die Signalstärke von iBeacons in meiner Umgebung entlocken. Leider liefert ein AT+DISC? nur die Hardware-Adresse der BLE-Geräte aus meiner Umgebung. Möglicherweise bringt V542 neue Features oder noch schöner wäre, wenn sich langfristig eine quelloffene Firmware finden lässt, die sich ebenfalls per CCLoader auf das Modul schreiben lässt. Bis dahin!

Gruß syssi

- - - Aktualisiert - - -

Nachtrag: Ich habe ein Feature in der V540 uebersehen, naemlich "AT+DISI?". Mit den folgenden Befehlen lässt sich dem Modul eine Liste der iBeacons plus Signalstärke aus der Umgebung entlocken:


AT+ROLE1
AT+IMME1
AT+DISI?
Die Antwort des Moduls sieht dann so aus:


OK+DISIS
OK+DISC:00000000:00000000000000000000000000000000: 0000000000:D04F7xxxxxx6:-066
OK+DISC:00000000:00000000000000000000000000000000: 0000000000:880F1xxxxxx3:-068
OK+DISC:00000000:00000000000000000000000000000000: 0000000000:880FxxxxxxxA:-052
OK+DISCE
Die Returns habe ich in die Antwort geschrieben zur besseren Übersicht. Schön wäre gewesen, wenn das Modul selbst Zeilenumbrüche nutzen würden. ;-)

Cysign
21.09.2016, 15:37
Wow, danke für deine Mühe!

ProstetnikJeltz
22.09.2016, 12:05
Hallo Cysign,

könntest du mir bitte die Firmware mit BL schicken ?
Würde mich riesig freuen.
Aktuell habe ich noch das Problem, dass sich die CCLoader.ino nicht kompilieren lässt.
Ich habe es mit der IDE 1.0.6 und der 1.6.1 versucht.
Mit welcher Version ist denn deine ino durchgelaufen ?
Verwende einen originalen UNO, kein Saintsmart, was aber auf das Kompilieren keinen Einfluss haben sollte :) .

Schöne Grüße aus Freising
Uli

Cysign
22.09.2016, 15:00
Wie bereits geschrieben, musst du mir dazu deine Mailadresse zukommen lassen ;)

Bzgl. des Kompilierens musst du dir mal die Fehlerausgabe anschauen und dann nach Stichworten googeln, bzw. im Arduino-Forum oder im Repository der Source mal nachfragen. Das würde in diesem Thread über die Thematik hinausgehen, sorry.

Unregistriert
28.09.2016, 11:30
Hallo,
bin den Anweisungen in dem 'Erfolgsbericht' von syssi gefolgt - hatte aber selbst leider keinen Erfolg!
Wenn ich mir das Pinout des HM-10 im Datenblatt anschaue und mit dem Achschluss-Schema auf
flashandrc.wordpress.com/2014/08/26/bluetooth-hid-firmware-tested-on-hm-10/
vergleiche, dann sind die PINs P2_2 (Debug clock) und P2_1 (Debug data) angeblich gar nicht
auf die entsprechendenm Löt-Pads herausgeführt!?
-> github.com/nickswalker/ble-dev-kit/wiki/HM-10-Pinout

Muss ich also direkt an den CC2541 heran?
Und noch eine Frage:
Wurden die Arduino-Pins (CCLoader) zum flashen direkt mit dem CC41-A("HM-10") verbunden
oder wurde ein Level-Shifter (5->3.3V) verwendet?


Hier noch das Ergebnis nach Aufruf von ccloader von der Commandline:


Comport open:
Device: Leonardo

Baud:115200 data:8 parity:none stopbit:1 DTR:on RTS:off
File open success!
Block total: 512
Enable transmission...
Request sent already! Waiting for respond...

Vielen Dank für jeden hilfreichen Hinweis!

Cysign
29.09.2016, 15:11
Ob Debug-Clock und Debug-Data angeblich per Datenblatt herausgeführt sind oder nicht, spielt keine Rolle.
Du weißt nicht, ob der Hersteller deines Moduls sich an die Vorgaben gehalten hat, aber du weißt, dass er den Chip auch programmieren musste.
Und das wird er ebenfalls über die Lötpads mit Pogopins gemacht haben ;)

Ich meine, ich hätte einen Pegelwandler verwendet. Die kosten aus Asien nur ein paar Cent. Und wenn du zufällig ein paar BSS138 zur Hand hast, kanst du dir die auch schnell selbst zusammen bauen.

Unregistriert
29.09.2016, 20:09
Hallo Cysign,
vielen Dank für die Unterstützung! Ich war inzwischen erfolgreich (sogar ohne Pegelwandler). Die Anleitung von syssi ist ja eigentlich auch ziemlich gut.
Kurioserweise ist bei mir ccloader erst dann durchgelaufen, wenn parallel zur Konsole mit dem Aufruf von ccloader eine Verbindung zu ttyUSBx über einen
seriellen Monitor (moserial) aufgebaut war. Dachte eigentlich, das würde ccloader selbst erledigen.

An dieser Stelle noch eine Grundsatzfrage zu diesem Modul (jetzt mit firmware v540): Ich kann nun zwar eine erfolgreiche Verbindung mit dem HM-10 als
Master (Role1) zu einem Bluetooth-Brustgurt zur HF-Messung aufbauen, aber es gibt ja offenbar keine Möglichkeit, die notwendigen GATT-Commands zur
Abfrage der vom Gurt zur Verfügung gestellten Services (die ja über die BT HRM Spec. definiert sind) abzusetzen. Nur müsste das Modul dem Gurt ja erst
mal mitteilen, daß es damit beginnen soll, periodisch die HF zu senden.
Mit einem BT-Dongle am PC und gatttool funktioniert das.

Falls also noch jemand einen weiterführenden Tipp dazu hat, wäre ich sehr dankbar!

Gruß