Go Down

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


Thanks for that first time I used a voltage converter and it did not work connected direct to the uno and it worked. It now show HMSoft
Great tutorial glad I found the topic


Hi, great tutorial. thanks.
how can I flash cc2541 with cc debugger ? it only accept hex file.


I have a reverse question: how to flash hex file (HM-10_CC2541_Experimental.hex) with CCLoader? Bytes in the beginning don't seem to match at all.

Upd: used http://hex2bin.sourceforge.net for converting intel hex format to binary, binaries look similar now (though the latter is smaller). Haven't tried to flash it yet.

Upd2: flashed HM-10, works fine. Tried to flash HID firmware, it won't pair for some reason https://geekhack.org/index.php?topic=62236.msg2300518#msg2300518

Upd3: it works fine now http://imgur.com/a/KWmz6


Nov 13, 2016, 10:25 pm Last Edit: Nov 13, 2016, 11:35 pm by hotforms Reason: Update situation
Hi, I make the update to HM-10 firmware using the main tutorial, now I connect using Android, that now show the name "HMSoft", but for some reason that I don't know, is very hard to make "AT" command work, before a lot of trying sometimes this work, but just respond with OK for all command i try to send.
For sample, if I send "AT+NAMETest" they return "OK" but don't change de name and nothing change.
If I try another commands, the same result, just return "OK".

Someone have the same problem?
What can I do to fix it?

I will try re-flashing to see if this work well.

UPD: I try again re-flashing and nothing, the same situation my Android connect but I can't send or receive commands and any "AT" command work. Now I don't receive any OK.


Normally you must bought the "CC debugger" from TI for flash CC2541 chips, but it's also possible to use an
Hello and what about CC2540 firmware files ?

Many "fake" HM-10 clones especialy those from HC especially HC-08 (they are stated that HM-10 is clone of their HC-08 ROTFL) does have CC2540 instead of CC2541, so i would be glad if someone would post firmware for that rev.

HM-10 were also sold with CC2540 IC onboard so firmware should exist. but there is none on the net as far as i was searching for it.


I upgrade my cc2141(hc05) firmware to hm-10. My board

1. I see my board on my android phone. It name "Hmsoft".
2. I can connect to device with 000000 pin in android bluetooth device manager.
3. I cant't connect to device in any bt serial program on my phone
4. I can't receve any answer on AT commands. Before firmware upgrade I have answer on AT commands, and see bolutek link on AT+HELP command.

How I ca send AT commands on new firmware?


ani idea what I do wrong ?
Pins 7,8,11 soldered on CC2541
I try 5v, 3,3v with and without resistor on pin 12 always same response.


I tried flashing the firmware on my CC2541 but no success. CCLoader was stuck on "Waiting for respond from Arduino". I tried using both Arduino Mega and Arduino Nano. I was using level converter to connect module and Arduino.
What am I doing wrong?

It seems I have figured it out. I have a HM10 clone which has 6 pins. I was originally powering the module through those pins (5V and ground). Now I tried powering the module directly using 3.3V (on pin 12, right below reset) and it worked perfectly.


Hi  simsas18:

I also have a HM10 BLE 6pins clone which may be seen by BLE smartphone applications but does not respond to AT cmd:
Question: how do you connected the CC2541 pins to Arduino?
I tried like that: GND<->GND  , Tx<->Rx, Rx<->Tx and Bluetooth module Vcc to arduino 3.3v as well as 5v and not work

What it is wrong?


I tried sending AT commands from smartphone to module but the module was sending them to arduino, not responding to them. I only got responses to AT commands if I sent them from arduino.

I connected them just like you did. I used 5v for Vcc.
Also, you should use logic level converter or resistor divider to connect arduino's TX and module's RX because  module's tx and rx are 3.3v level (if you use 5v arduino).


I used to get stuck with flashing firmware HMSoft to CC41-A (ZS-040) by ATMega168 Nano V3 with CH340 USB. No further respond on "Waiting for respond from Arduino ..." when running ccloader.exe in Windows 8.1

After a lot of time to debug the problem, I detect the exact reason is ccloader.ino cannot go over this statement on loop() function

  if (Serial.available()==2) {.....}

because Windows serial sends two bytes too fast, the Nano can only catch one byte Serial.available()

I modified the loop() function

 while(!Continue)     // Wait for starting
   digitalWrite(LED, HIGH);
   digitalWrite(LED, LOW);
      if(Serial.read() == SBEGIN) // check only 1 byte
      digitalWrite(LED, HIGH);
       Verify = Serial.read();
       Continue = 1;
       Verify = 0;  // no verify
       Serial.read(); // Clear RX buffer

I flash successfully the clone HM-10 with new HMsoft firmware without neither voltage divider resistor nor any capacitors on Reset pin.   :)  :)  :)

The clone HM-10 maybe not same LED pin so there is no blinking LED to indicate paired status, but you can query it with AT command or pairing.


I'm very new to Bluetooth BLE, I have a JDY-08 and I'm trying to use it the same way that you would use a HC-05/06.

Is it possible to use one this way? if so, does it support the standard SPP?

Any advice is appreciated.


I'm able to connect 2 MiniPro using CC2541 / HM-10 fake BLE module once firmware updated.
I'm able to run AT commands, at 9600 and 57600 bps
But I can't succeed running this BLE module at 115220 bps with correct data transfer : it's quite unstable :-(
Even trying to add some delays for example...
Did anybody tried to run the CC2541 at this rate (updated HM-10 firmware or original CC2541 firmware) ?


 :)  After some days of struggling I switched from pro/mini 3.3v/8MHz(w/ serial dongle cp2102) to Uno(ch340) w/ direct connection and it worked out fine! FML!! :-\   

I'm on mac I needed to compile it from source with
Code: [Select]
gcc -o ccloader main.c.



Go Up