How to flash genuine HM-10 firmware on CC2541 (make genuine HM-10 from CC41)

Great tuto!
I don't understand why you need a "USB to TTL converter for connect Arduino to the PC"?
Arduinos can connect directly no?

In case of Arduino UNO, just need an USB cable, yes, but for Arduino pro mini (This is the one that I used) you need an USB to TTL converter, also know under the name "FTDI" :wink:

You rocks! :slight_smile:

For information I use a arduino micro but to make it work you need to tell CCLoader that it's a leonardo by using this command :
"CCLoader.exe <Firmware.bin> 1" instead of a 0

Also with a voltage divider with resistor I couldn't make it works. So in last chance I tried by directly connecting the wires to the arduino pins and it works at first try :slight_smile:

For the missing crystal by now I don't see any problem, I even try to discover ibeacon in ROLE1 with the AT+DISI command and it works!

Does anybody with the full HM-10 firmware (including the bootloader) please get in touch with me, I'm pretty keen to reflash a couple of the CC41 devices I have been sent in error.

Hi all,

I have contacted the manufacturer of the HM-10 module, and the missing crystal is not a problem, as the manufacturer say:

Our firmware could check 32K and choose if use this when module is power on.

Good news !

@ArthurDented, check your PM :wink:

Hello,

Thanks Hexor for this tutorial and for sending me the firmware!

But sadly i can´t get it to work. I did everything like in your tutorial but when i start flashing the firmware it´s not responding....but when i press ctrl & c and startover again sometimes it´s starting. but only 1 apears than it´s over.
Do you got me an idea what is wrong? The connections on the cc2541 are soldered correctly and i got 2 modules which act the same way.

Thank you!

regards Ed

Do you use resistor to divide the voltage? For me it didn't work with that.

No, i used an arduino pro mini with an ftdi converter running at 3.3V. What setup did you use when it worked?

I used an arduino micro with nothing else. It means that I put 5v in the cc41 wich is not recommended but it worked

Thank you! I did it with my uno and it worked without a resistor.

But i got another problem...which code to connect on my phone?
I tried 0000 and 1234 but both didn´t worked.

1 Like

Hi,

I had also an issue with an Arduino pro mini 3.3V, don't know why...
Perheaps try to change the parameter '0' to '1' (I haven't try): CCLoader.exe <Firmware.bin> 0 1

For the BLE password, if you read the datasheet from the manufacturer, it's 000000 (6 x zero).

I tried it but it didn´t helped.

Thanks for the password.

Great tutorial, thanks!

Thank you for this tutorial and firmware!

THank you for your Job !

Hi Hexor,
thanks for the valuable information and also thanks to all collaborators.

My BT board is a CC41-A.
It is soldered on top of another board that only has 4 pins (TX, RX, Vcc and Gnd).

After a couple of days researching in the internet, I was able make the board to answer AT commands thru my arduino.

However, no matter what i do, the board refuses to pair with my phone (sony Z Ultra) nor my 2nd gen nexus 7 tablet.
Then i found this thread !!

By flashing a firmware there is a small chance that i may forever brick the BT board, so I just want to be sure that these CC41-A are actually useless with the factory firmware.
Will it only work by replacing the firmware ? Is this the only way right ?

Thanks a lot.

I'm trying to flash this firmware using an Arduino UNO and a CC2541 chip.

I have the CC2541 chip assembled the same way as demonstrated in this schematic.

The only difference is the Antenna, which at the moment is merely a wire, connected to the pins 25 and 26 and also to the ground. I have also connected the pins 7, 8 and 11 to the arduino Uno's D4, D5, D6, as required by this guide.

I have tried to connect these pins in a variety of ways:

  1. Using a voltage divider (with resistors) before connecting arduino's pins to the CC2541
  2. Using voltage regulators (78L33A) for each arduino output pin
  3. Connecting the wires directly to CC2541 pins

In all of these, it waited for Arduino to respond, which never happened.

The CC2541 was fed with 3.3V from the Arduino UNO, and its GND pin was connected to UNO's GND pin.

Is anyone have made this trick work with an arduino nano ?
thanks

Hi!

@myokomizo what do you mean by "pair to your phone". BLE HM modules can't be paired like any other BT module. You need to use special BLE serial application like "HMBLE Terminal".

@danielnora if I follow your schematic it seems that it's not the pin 7, 8 and 11 that have to be used but the 34 (P2_2), 35 (P2_1) and 20 (RESET_N).

@songotag I used an arduino micro, I had to use "CCLoader.exe <Firmware.bin> 1" instead of a 0

Flagada15,

Thank you for your input. I did notice what you said, but I had no different outcome when using the 20, 34 and 35 pins.

Daniel