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

Today at 06:49 pm
Hii... I faced a peculiar problem while trying to configure my AT-09 BLE Device's baud rate. I used the AT+BAUD2 which has set it to a baud rate of 2400 but now when I run any AT+ Command it prints ERROR twice on the console. But when I just use AT to check the connection the device returns ok. What might be the cause of this problem can anyone please help?

Can you do this in a Mac?

I have been trying to use your guide but I have not been able to do it on my Mac. Do you know what is the command in the terminal?

Hi all,

First of all, thanks for the instructions for flashing the modules.

Unfortunately, I had several issues with flashing the firmware on a module and, too sad, jailed one of mine... but finally, I was successful!
Perhabs my solution is helpful for someone.

My configuration:
Win 7 64-bit
USB-UART CP2104 converter
Arduino Pro Mini 3V3 8MHz

First, I was not able to run CCLoader.exe nor CCLoader_x86_64.exe. Windows responds with a compatibility issue.

Solved by using DevC++ and recompiled the source code from github. This was easier than it sounds!

Second, the CCLoader was not able to comunicate with the Arduino properly. Waiting for respond from Arduino...

I assumed, that the issue is the serial baud rate. I reduced the speed in the C source code and the Arduino source code to 19200. Unfortunately, this did not solve the issue.
Checked the connection and found, that I did not disconnect the DSR pin from the Serial converter to the Arduino (it resets the arduino to upload the sketch). Ich checked the C code and believed, it is disabled. However, I disconnected it and this did the trick.
Well, when checking the Arduino code, I also commented the line required for Leonardo boards. I was wondering, why this is not the default.

I checked, if the Pro Mini 3V3 is able to run at 115200 baud and it looks like, this is indeed too fast for it. Well, upload is slow, but for one or two modules it is fine.

I attach my files and hope, it helps. Good luck!

Cheers,
iBuddy

CCLoader_Win7-64_19200.zip (131 KB)

iBuddy85:
Hi all,

First of all, thanks for the instructions for flashing the modules.

Unfortunately, I had several issues with flashing the firmware on a module and, too sad, jailed one of mine... but finally, I was successful!
Perhabs my solution is helpful for someone.

@iBuddy85, thank you so much - this has been driving me crazy but your method worked for me! Windows 10 Pro, Arduino IDE 1.8.7, Pro Mini 3.3V with FTDI clone USB-Serial. Had already tried Uno direct and the modified Serial sketch further back in this thread. Didn't use capacitor on reset. Did follow ALL the steps in your method. Thanks again.

I have also a clone module, connect the pins from arduino 4,5,6 to 7,8 and 11 to BT module and nothing. no update for the firmware. What can i do? Hope somebody will help me
With the actual firmware, my S7 oreo said" pairing rejected to BT05"

kutysam:
Hi guys, i managed to flash HM10 onto my AT09 [...]

After powering up, PIO4 will be 1. Don't ask me why, but this greatly decreases power!

Thanks for your help! I did some digging on my AT-09 board.
On right side, only PIO1 to PIO4 are really connected to the inner module.
PIO4 is linked to ... 3v3! So it helps to keep it on.

kutysam:
Here is a fix.
AT+BEFC080
AT+AFTC088

PIO2 is connected to State pin.
PI08 is connected to LED (but not connected to the castellated module).
PI09 is connected to State pin (but not connected to the castellated module).

I modified the fix :
AT+BEFC080
AT+AFTC28C

I need a HEX file for the CC debugger.
Version v540 runs but no AT commands via terminal possible.
I work directly with a CC2541 chip
Maybe then it goes with AT over terminal
Please Help me

iBuddy85:
Hi all,

First of all, thanks for the instructions for flashing the modules.

Unfortunately, I had several issues with flashing the firmware on a module and, too sad, jailed one of mine... but finally, I was successful!
Perhabs my solution is helpful for someone.

My configuration:
Win 7 64-bit
USB-UART CP2104 converter
Arduino Pro Mini 3V3 8MHz

First, I was not able to run CCLoader.exe nor CCLoader_x86_64.exe. Windows responds with a compatibility issue.

Solved by using DevC++ and recompiled the source code from github. This was easier than it sounds!

Second, the CCLoader was not able to comunicate with the Arduino properly. Waiting for respond from Arduino...

I assumed, that the issue is the serial baud rate. I reduced the speed in the C source code and the Arduino source code to 19200. Unfortunately, this did not solve the issue.
Checked the connection and found, that I did not disconnect the DSR pin from the Serial converter to the Arduino (it resets the arduino to upload the sketch). Ich checked the C code and believed, it is disabled. However, I disconnected it and this did the trick.
Well, when checking the Arduino code, I also commented the line required for Leonardo boards. I was wondering, why this is not the default.

I checked, if the Pro Mini 3V3 is able to run at 115200 baud and it looks like, this is indeed too fast for it. Well, upload is slow, but for one or two modules it is fine.

I attach my files and hope, it helps. Good luck!

Cheers,
iBuddy

This was a awesome find and ty for the recomplie :slight_smile:
Works perfectly on win 10 64 bit.
I however was using a UNO to update and had to add a 10uf capacitor between gnd and reset to avoid resets of the UNO. Hope this helps someone else trying to flash :slight_smile:

Hi Iv just done this too my module and I think it's bricked it

I have just noticed my phone is picking the bluetooth module up but it's not responding to any AT commands

Hi,

I have followed all the steps from original post with my AT-09 clones. My modules look like this

.

When powered on, the led is always on - is this a problem? I have two other problems - the module does not appear in any other device (several phones, RPi3) - before the update I was able to connect to the module out-of-box.

Is there any change in pins? I cant get the serial communication to work. One of the bottom right-angle pins is for TX, other for RX - should these still work? VCC and GND right-angle pins seem to work. I am not able to use any AT commands or connect to the module.

I used Arduino Nano clone for the process of flashing, it finished succesfully without any complications.

Thanks for help.

1 Like

Hi,

I’ve also got a HM-10 clone from Alibaba and went through with this guide and the update process was a breeze. Connecting with the module from the phone was easy after, but I among many other can’t get AT commands at all to work. While using a FTDI converter can’t get the updated module to respond to AT commands, it just send them as text to the Bluetooth console on my phone. I can send text both ways without any problems. I have two modules and only one is updated so I’ve confirmed what worked before and after that way.

Has anyone figured out how to get it to work? :slight_smile:

Hello everyone,

I'm having the same problem as some of you... I've got a cheap clone with cc2541. I struggled to update the firmware following this subject, and finally succeded. Module is now seen with "HMSoft" name on my phone. But now, every command I send just answer OK... I tried AT+HELP, AT+NAME? but I only receive OK as an answer...

Anyone can help me ?

johweb:
Hello everyone,

I'm having the same problem as some of you... I've got a cheap clone with cc2541. I struggled to update the firmware following this subject, and finally succeded. Module is now seen with "HMSoft" name on my phone. But now, every command I send just answer OK... I tried AT+HELP, AT+NAME? but I only receive OK as an answer...

Anyone can help me ?

Hey ! I found the answer... :slight_smile:

Step 1 : upload an empty sketch to arduino
Step 2 : module connected to arduino, RX to RX, TX to TX (and of course, ground and 3.3V)
Step 3 : launch arduino ide
Step 4 : plug arduino to computer WITH the module button pressed
Step 5 : launch serial monitor and send AT commands !
Step 6 : enjoy !

Torsten85:
But now it seems like the state pin isn't working anymore. Is there a way to bring this function back? Which pin on the chip (not the daughter board) should indicate an active connection?

(Also the onboard led is always off...)

See #78 from kutysam. He has a fix for the LED. Worked on my clone.

Also this link tells you how to fix the STATUS pin. I didn't try but seems reasonably easy : Should you throw away your CC41 HM-10 clones now that Android 8 is here? | Arik Yavilevich's blog

Hi,
thank you for this tread :slight_smile:
i update firmware of a cc41a (zs-040 board) with hm10 firmware with bootloader V540 with ccloader
and i upadte with last firmware of hm10 V704 with hmsoft.

to fix the led blinking before connect and fix after connect (i have a zs040 board):

AT+BEFC008
AT+AFTC088

Now all is ok
i don't need state pin... then i don't search an issue for it

flash the clone successfully, the AT+DISK did not work, use AT+RENEW. The module was reset to the factory settings, but does not respond to commands, tried to flash the error “no chip detected”

To all those Who believe their AT-09 clone doesn't work after this upgrade:

Simply change the serial setting to 9600 Baud (default) and "no line break"

Hi there,
can I use firmware from this web site -> http://www.jnhuamao.cn/download_rom_en.asp?id=66
Or I have to use firmware from attachment?

Reason why I ask is because I don't understand this part

"*You need the full firmware, not the firmware provided by the manufacturer as this firmware is only usefull for UPGRADE a genuine HM-10 wich have already a bootloader."