HC-06 hc01.comV2.0



The latest zs-040 HC-06 modules have an updated firmware, hc01.comV2.0. This firmware has the following defaults:
– baud rate = 9600
– password = 1234
– nl/cr line endings not required.
– AT commands are required to be in upper case
– Firmware version = hc01.comV2.0
– Name = HC-06
– No parity
– SLAVE mode

Since the Bluetooth hardware is the same as the previous zs-040 HC-06s the Bluetooth specs are also the same. Bluetooth 2.0 EDR, SSP.
These use a slightly different BT module than the other zs-040 boards and there is a blue LED at the top left of the daughter board.


On these boards there are 2 LEDs. One red LED on the breakout board and a blue LED on the actual BT module (the small daughter board). The LEDs may seem to be linked but they are not. You can control the blue LED without affecting the red LED. See below.
When powered the LEDs flash quickly (I think the rate is 10 times a second) and the flash rate does not change when the modules are paired. When there is connection the LEDs change to constant on.

AT Commands

Replies do not contain end of line characters. This means when using a serial monitor everything appears on a single line. See the above screen shot.

Some of the basic AT commands are:

AT – connection test command. Returns OK

AT+BAUD AT+BAUD1 – sets the baud rate to 1200 and returns OK1200
AT+BAUD2 – sets the baud rate to 2400 and returns OK2400

Other possible baud rates are
1——— 1200
2——— 2400
3——— 4800
4——— 9600
5——— 19200
6——— 38400
7——— 57600
8——— 115200
9——— 230400
A——— 460800
B——— 921600
C——— 1382400
Be careful with speeds over 115200 when using a Windows computer.

AT+NAME Sets the name of the module. This is the name that is broadcast to other devices. Maximum length is 20 characters.
AT+NAMEmyBluetooth sets the name to myBluetooth, returns OKsetname

AT+PIN Changes the PIN/password.
AT+PIN9999 – changes the PIN to 9999, returns OKsetPIN

returns the firmware version – hc01.comV2.0

AT+LED turns off the on board LED. This is the blue LED on the small daughter board not the red LED on the larger breakout board.

AT+LED0 – turn off the blue LED, returns LED ON
AT+LED1 – turn on the blue LED, returns LED ON

AT+PN sets no parity
AT+PE sets even parity
AT+PO sets odd parity

The modules accept AT+ROLE commands but they don’t seemed to do anything.
AT+ROLE=S puts the module in to SLAVE mode, returns OK+ROLE:S
AT+ROLE=M puts the module in to MASTER mode, returns OK+ROLE:M
The commands are accepted and I originally thought this may mean the modules can be used as HC-05s but I get any of the usual HC-05 commands to work; ROLE, AT+ROLE, AT+ROLE=, AT+ROLE? doesn’t work.

Chinese Data Sheet
English Data Sheet. A different firmware version but the commands are the same.
Waven product page. This shows a slightly different hardware version to the ones I have but the commands are the same.


33 thoughts on “HC-06 hc01.comV2.0”

  1. Hi
    I have some HC-06s with this latest hc01.comV2.0 firmware. All AT commands work OK, & I can see the device from my Windows 8.1 machine.
    If I pair with the device, Windows thinks it has paired OK, but the 2 LEDs on the module continue to blink fast.
    The “Standard Serial over Bluetooth” ports show up in Window’s Device Manager, but I can’t send data to or from them. The fact that the LEDs are still blinking fast makes me thing the pairing isn’t completed at the HC-06 end.
    Any help appreciated.

    • The LEDs do not change when the device is paired. They remain flashing (I think it is 10 times a second).
      When a connection is made the LEDs become constant on (no flashing).

      • I have the same from eBay. I changed to 115200, name & PIN.
        Windows 10 detects, pairs but can’t connect. LEDs are flashing. I can see Port 5 and Port 6 (Dev B) added and both are set to 115200 but Printrun can’t connect via Bluetooth to my 3D Printer. Error 10049 when checking with BluetoothView tool.

        Android device can pair and connect when using Bluetooth Terminal either secure or insecure (LEDs not flashing anymore).
        So I am trying to find a tool that can help with Windows 10 connection.

        • Since these are Bluetooth 2/SPP connection is a 2 stage process.
          1. find and pair with the BT module. This creates a COM port in Windows
          2. Use a terminal app such as putty or the Arduino serial monitor to connect using the assigned COM port.

          • OK thanks. I solved it. When I choose Port 5 in Arduino serial monitor, connection followed pairing and LED blinking stopped.
            So I switched to Printrun connection settings to enable it. After enabling TCP streaming mode Bluetooth 115200 connection to my RAMPS board working now. JFYI.

            • Hi. sorry the late. can you explain better the steps you use for connect the printer (in my case ReARM+Ramps) and use it with pronterface?

              i what setup the same configuration


  2. Hi Martin, first of all sorry for my english. I use to do Otto and MiniZowi, if you don´t knoww it you can see it in youtube or in https://github.com/OttoDIY/OttoDIY, I have a HC 06 ZS-040 from China and I can´t pairing the robot and my movile in order to use Zowi App with it. My movile find de HC-06 but the Bt module dosn´t pair…
    What can I do? What could be de problem?
    Thank you so much.

  3. Good evening, which pin in this module can be use to tell arduino when its conected (paired) like others bluetooth modules?. I tried with STATE in de breackout, also with PINs 32 and 24 but the firmware blinks the leds, and i can’t use for my propouse cause i need a steady signal, no blinking one. Thank you.

  4. Hello Martyn,
    I am trying to send AT Commands to my HC-06 Bluetooth module using the following sketch:

    int times;
    int rxPin = 3;
    int txPin = 2;
    SoftwareSerial hc06(rxPin, txPin);

    String message; //string that stores the incoming message
    char ch;
    void setup()
     Serial.begin(9600); //set baud rate
     hc06.begin(9600); //set baud rate

    void loop() {
     // put your main code here, to run repeatedly:
       ch = Serial.read();

    But I do not succed in getting any reply….
    For example I send, through the IDE serial monitor the AT Command
    it does not reply with the OK string, even though now it is seen, by my mobile, no longer with the HC-06 standard name but with ‘SopwithCamel’.
    The same happens if, for example, I digit the command
    anything will happen.
    How could I get reply from my module ?

    • If the name is changing then you obviously have the correct format for the AT command, therefore, the only thing I can suggest is to check the connection from BT TX to Arduino RX and maybe use a different wire.

      • I am having the same problem. I have programmed hundreds of HC-06 using AT command codes over the last couple years. The latest batch of units I have received from two different suppliers do not respond to any AT commands. I have tried connecting with different settings and baud rates to no avail. Is there a newer firmware version that uses different command codes or settings?

  5. I have been using the ZS-040 HC-06 for some time on a number of projets. The latest few I bought do not respond to any AT commands other than AT+NAME. (Not even ATOK) What could the problem be?

    • They may have a different firmware. If the SMD Bluetooth modules do not have the HC logo they likely have the 2010 firmware, however, they should still work as above.

      Confirm you have communication working, use another module or an Android device and a terminal app, then try again with “AT” and “AT+VERSION”. Remember not to use line ending characters and to try different baud rates.

    • True, my commands (requires crlf at end of line) and replies:
      ATcr/lf -> OKcr/lf
      AT+VERSIONcr/lf -> VERSION:3.0-20170609
      AT+NAMEcr/lf -> +NAME:HC-06cr/lf
      AT+BAUD5cr/lf -> ERROR:(0)cr/lf
      AT+PIN1111cr/lf -> ERROR:(0)cr/lf

      • sry, update:
        AT+NAME=testcr/lf -> OKcr/lf
        AT+NAMEcr/lf -> +NAME:testcr/lf
        AT+UART=19200,0,0cr/lf -> OKcrlf
        AT+UARTcr/lf -> +UART:19200,0,0cr/lf

        some commands requires “=”

  6. Hi.
    In my experience working with the same device i can say two things which are important when working and configuring the device.

    I have the same model and version.
    1. The blue LED stays lit (stop blinking) only when you connect successfully to COM port.
    it’s not indication that you paired with the device.
    2. when entering the commands the device listen to input for 1 seconds only.
    so when entering commands you must copy paste them because the only command you can type in one seconds is AT the rest of the text will be ignored.
    3. when you pair with the device you get two COMM ports one for “outgoing” signals and the other for “incoming” you can see that in Windows Bluetooth settings under “COM ports”
    only one of the COM ports will work.

    Good luck.

  7. Hello All,

    I am student and working on HM10.
    My HM10 module version is 2.0 and i want upgrade.
    We are facing some difficulties for upgrade the new firmware.

    so please help me for short out this issue.
    thanks & regrads

  8. Iam student is currently working on hc -05 but i cant get the rssi value from the at commands any help will be appreciated , other commands work correctly except the (INQ)
    dose the version effect the at commands

    • Yes, the version effects the commands. There are many different HC-05s and some of them have slightly different firmwares.

      There is also a newer module with a version 3.xx firmware that I have not used yet.

  9. Hello,
    When you write SLAVE for this module HC06, what is the differents with
    HC05 whith is MASTER and SLAVE ?
    HC06 is only Receiver?

    i hope to reply Martyn.
    John and Sin

    • yes. The HC-05 can be either a master or a slave and the HC-06 is slave only.
      Hardware wise they are both the same. The HC-06 has a much simpler firmware which makes it easier to use.

  10. Hola estoy buscando la forma de encontrar la direccion que se obtiene supuestamente despues de meter el comando AT+ADDR pero no me responde a este comando, quiero saber si es que en este modulo no es posible determinar la direccion, pues la necesito para poder vincular el HC-06 a un HC-05 en el cual se debe ingresar el comando AT+BIND=Direccion.

  11. Hello I am looking for a way to find the address that is supposedly obtained after entering the AT + ADDR command but it does not respond to this command, I want to know if it is that in this module it is not possible to determine the address, because I need it to be able to link the HC-06 to an HC-05 in which the command AT + BIND = Address must be entered

  12. I have been using HC06 for years without problem: they did not ask for a password (unless I specifically define a password using AT+PINàxxx).
    The problem is that the new HC06 have a firmware WITH a password (usually 1234 or 0000).
    this put the mess in my application that do not detect these HC06 and ws not designed to send a password.
    Is it possible to remove the password, OR to flash the firmware to an older version (this look difficult I think…).
    Thank you,

  13. Anyone have firmware for one of these? I have an HC-05 but need to run at 1200 bps….not an option. Apparently this version of HC-06 firmware can do 1200 bps? If so, I’d like to flash it into my 05 in attempt to do serial at 1200bps.


Leave a Reply to Alejandro Cancel reply