Go Down

Topic: How to flash genuine HM-10 firmware on CC2541 (make genuine HM-10 from CC41) (Read 145588 times) previous topic - next topic


I have the cc2541 and I tried to follow the steps but for some reson it didn't work and now the module is not responding, the led always on (low light) and it not respond to AT commands as it did before.
I tried reset with the PIO0 pin, didn't help.. :(
Any idea? :smiley-roll:
Me too, only low led ON without any response, I don't know if because I used arduino pins without logic converter? Or something else?

Is there is a way to know if it is firmware problem or hardware problem?


Me too, only low led ON without any response, I don't know if because I used arduino pins without logic converter? Or something else?

Is there is a way to know if it is firmware problem or hardware problem?
It is works now fine, I really don't know how the problem solved I tried to upload the firmware again desperately hoping it work but the problem still not solved then I start trying other firmwares and before I start upload any firmware I was holding the wires in their pins and run CCLoader command but the command failed, however in same time the module worked fine.

Maybe the problem was related to reset module (pin11) after upload  the firmware ???


Hello, i bought some BT cc41-a and would convert their firmware to get the BT HM-10. I don't have arduino but i own a CC Debugger and i already made the hardware connection to the BT. I would like to have some suggestion for the firmware to be used and for the software for to convert the source code and to flash it. Thanks


Is anyone have made this trick work with an arduino nano ?
For those trying to flash hm10 using Arduino Nano clones - it is important to connect a 10uF capacitor between RESET and GND pins of Nano - see the photo.

For those trying to flash using Linux:
1/ compile ccloader ( /CCLoader-master/SourceCode/Linux/main.c from the zip archive):
gcc main.c -o ccloader
2/ run it:
./ccloader /dev/ttyUSB0 CC2541hm10v540_from_hexor.bin 0

The flashing is quite slow, takes about 5min and pauses couple of times in the process. But it worked for me - many kudos to Hexor!!! I did not use 5v->3.3v level shifting - connected the 5v nano pins directly to DD and DC pins of CC2541.

After flashing the HM10 module announces itself as HMSoft (used to be BT05) and paired with android easily using pin 000000.

Hexor - you are the Man!


I have an AT-09 (HM-10 copy..) that shows up as name BT05.
I can connect with my iPhone app "Bluetooth Serial" and comm via terminal, so i know it works.

I have identified it as AT-09 through this website: http://www.martyncurrey.com/bluetooth-modules/

There is no joy with this thing. Seems it can not be flashed.
It has never responded to AT commands. This thing is a piece of junk.

Does anyone know how to buy HM-10 direct from manufacturer?


Don't give up too soon. I have exactly the same module and I flashed it successfully. See my other post. For AT commands use Arduino serial monitor at 9600, no CR, no LF.


Somehow i'ts not working for me. Using an Arduino Uno.

The prompt keeps telling me "illegal comport number"

The IDE sees the arduino as COM4 and I close the IDE afterwards so it can never interrupt with the comport.

Using the line: CCLoader.exe COM4 CC2541hm10v540.bin 0

At first I thought maybe a virtual machine problem but its not.... Can anyone help me?

Edit: yeah... I'm stupid. Just needed to enter "4" instead of "com4"... lol. Thanks for the sharing! Going to test them out now!


For me, it says "Uploading firmware" and then it gets stuck somewhere between 1 and 4. I've tried this on a Mini Pro (3v3) and a Mega2560. The mega told me that the serial communication stops. My guess is that the Arduino is waiting for data and gets stuck in the "while (!done)" loop.

Anyone got any idea?
Currently installing Cygwin and the required GCC-packages to be able to recompile the Windows application and debug it. So frustrating.


Never mind that issue. The Arduino wasn't 3v3, it was actually 5v but the usb-to-TTL was set to 3v3 volt. After changing that, it flashed just fine. But it won't respond to any AT-commands now :/ Tried reflashing the firmware but did no good.

EDIT: Ops, missed the reset pin. It's now responding to AT-commands.



for me it keeps saying "illegal comport number"

my arduino uno com port number is 19 (i've checked in the ide), but when i opened the ccloader source code, the com ports are just up to 16:

HANDLE Cport[16];
char comports[16][10]={"\\\\.\\COM1",  "\\\\.\\COM2",  "\\\\.\\COM3",  "\\\\.\\COM4",
                       "\\\\.\\COM5",  "\\\\.\\COM6",  "\\\\.\\COM7",  "\\\\.\\COM8",
                       "\\\\.\\COM9",  "\\\\.\\COM10", "\\\\.\\COM11", "\\\\.\\COM12",
                       "\\\\.\\COM13", "\\\\.\\COM14", "\\\\.\\COM15", "\\\\.\\COM16"};

what should i do?


Also have AT-09 CC2541, module was working fine at first, but I have sent AT+RULE2 and now I cant get it back to 0.

Tried burn firmware using Arduino Zero but I stuck on

$ CCLoader /dev/tty.usbserial Firmware.bin
Opening comport...
Comport open!
Read portsettings...
Changing portsettings...
Baud:115200 data:8 parity:none stopbit:1 DTR:off RTS:off
File open success!
Block total: 512
Waiting for Arduino setup...
Remain: 5
Remain: 4
Remain: 3
Remain: 2
Remain: 1
Enable transmission...
Request sent already!Waiting for respond...

have tried Pro Micro and Windows version of CCLoader, still nothing :|

After couple retries to burn firmware, device seems to be die, Power led is always on, no activity at all :(


firmware link is not working only.. Can anyone tell me the way for get into the link


I got the firmware to work on my AT-09 board(pin 7,8 and 11) with direct connections to Uno. After more than 10 tries, the board finally responded to AT command without CR and LF. However, the LED on the breakout board does not work any more. Anyone has ideas?


I've gone through the steps and it tells me its completed and I can send the AT command and response comes back OK, How can I confirm the new firmware is installed ?



Go Up