HC-05 can't enter command mode

Hi.

I tried everything I know of to enter to command mode. My connection schematic can be seen at the following link.

HC-05 connection guide-ish

I do everything the guy says. I used the normal RX and TX connections, switched them before powering the board and completely removed them on multiple trials. But no luck.

I even soldered a 3.3V power supply to the pin #34 as told in the following link. Still no luck.

Soldering power input to force the module into command mode

I always push the button on the module before powering up. Please show me a way to properly put this thing into command mode.

I am using Arduino Nano.

Looking forward to hearing from you.

I wrote a small tutorial about putting the HC05 into AT mode. This works for me. It wrorks for every one of the 8 HC05 modules that i have. Here it is: >> Setting HC05 (ZS-040) to AT mode

Followed your instructions. Couldn't resolve the issue. Appreciate the help

Do you have "Pin34(PIO11)" wired out - or are you trying to game the pushbutton instead?

Tried both. No wiring on Pin34 as of now, just trying the pushbutton game.

I also have a HC-06 which went straight into the command mode as soon as I delivered 5V to its EN pin, with the same Arduino board. On the other hand, nothing happens when I plug the EN pin of HC-05 to either 3.3V or 5V.

Put KEY pin to HIGH and after that turn power on. Or actually you put KEY and power ON simultaneously if powerizing those pins from the same power source. I work this way when I manually set the HC-05 to the slave or to the master. It would also be good to put unused input pins to some voltage level so that unused input pins won't work as antennas.

Edit Later : I remembered wrong when I mentioned to put EN pin to high before turning power on. Correct name for the pin is KEY on my HC-05 modules.

Edited Later 2:

Before using HC05 module for programming pursposes I manually configure it using usb to serial converter and some terminal program (e.g. Putty, CuteCom). It means, that I send AT-commands manually written with keyboard to terminal program. HC-05 receives those commands from usb-to-serial converter. When HC-05 is correctly configured, it can be used in real environment. Sure there are other ways to do configure HC-05 modules like Arduino seems to have. Here is the link how this non-Arduino way happens:

Putting 5V on the EN pin can damage the HC05. Though the supply voltage is 5V, the inputs are not 5V tolerant. Same with the HC05 RX pin. There should be a voltage level shifter between 5V Arduino TX pin and the 3.3V HC05 RX pin.

EN != Pin34

Hi, @gokturkcinel

Can you please post some pictures of your project?
So we can see your component layout.

Thanks... Tom.. :smiley: :+1: :coffee: :australia:

No it didn't. An HC-06 goes into AT mode as soon as you deliver 5v at VCC. Further, and while HC-05 and HC-06 can use the same breakout board, I have never seen an HC-06 with all six pins provided, i.e. one at EN, so each of the above suggests you actually have an HC-05 operating in the normal manner.

I suggest you forget about AT mode for the moment, consider if you really need it anyway, and pair all your Blueteeth with your phone and see how they identify, this to ensure that nobody is any doubt as to which is which. A kosher HC-06 identifies as LINVOR.

If you find that what you think is an HC-06 isn't, you might find that what you think is an HC-05 also isn't, or it is suss.

I might also point out that an HM-10 is in AT mode by default, just like an HC-06. Further, there are HM-10s on ZS-040 breakout boards, complete with buttons that don't do anything.

No, Nick. You're just playing the detective.

My HC-06 does NOT have 6 pins provided, the empty pin which corresponds to EN on HC-05 is hollow, to which you can simply put your jumper in! My HC-06 blinks in 2 s intervals only when I do this.

As for the late sections of your comment, the HC-05 (and not the HC-06) does NOT appear on my phone's Bluetooth search. Please inform me if your detective skills has a solution for that one as well.

Tried it. No luck

Thanks. Applied high voltage to each on multiple different trials. Couldn't succeed


Hi @TomGeorge,

Here is a picture. I added some info. Hope it is clear. The blue arrow points to what I figured to be Pin#34 and soldered a 3.3V and 5V power supply on different occasions. Didn't lead to a result.

Thank you for taking the time. Looking forward to hearing from you.

Best wishes,

Göktürk

I have mine set up exactly this way -

And I use this sketch -

//  Uses hardware serial to talk to the host computer 
//  and software serial for communication with the 
//  Bluetooth module
//  Intended for Bluetooth devices requiring 
//  line end characters "\r\n"
//
//  Pins   Arduino    BT
//           5V       VCC
//          GND       GND
//           D9       RX (via voltage divider)
//           D8       TX 
//
//  When a command is entered in the serial monitor 
//  (on the computer) the Arduino will relay it to the 
//  bluetooth module and display the result.
//
 
#include <SoftwareSerial.h>
SoftwareSerial BTserial(8, 9); // RX | TX
 
const long baudRate = 38400; 
char ch =' ';
boolean NL = true;
 
void setup() 
{
    Serial.begin(19200);
    Serial.print("Sketch:   ");   Serial.println(__FILE__);
    Serial.print("Uploaded: ");   Serial.println(__DATE__);
    Serial.println(" ");
 
    BTserial.begin(baudRate);  
    Serial.print("BTserial started at "); Serial.println(baudRate);
    Serial.println(" ");
}
 
void loop()
{
  // Read from the Bluetooth module and send to the Arduino Serial Monitor
  if (BTserial.available())
  {
    ch = BTserial.read();
    Serial.write(ch);
  }
 
  // Read from the Serial Monitor and send to the Bluetooth module
  if (Serial.available())
  {
    ch = Serial.read();
    BTserial.write(ch);   
    // Echo the user input to the main window. The ">" character indicates the user entered text.
    if (NL) 
    { 
      Serial.print(">");  
      NL = false; 
    }
    Serial.write(ch);
    if (ch == 10) 
    { 
      NL = true; 
    }
  }
}

If you use the pushbutton method then you lose the use of one hand,
but here goes -
Upload the sketch (Do Not Connect +5 to HC05, yet)
Open Serial Monitor (config for 19200, "Both NL&CR")
Press and hold (and do not release) HC pushbutton
Connect +5
Serial Mon -- Type AT and click Send (Result OK)
Serial Mon -- Type AT+VERSION? and click Send (Result +VERSION:4.0-20190728)

I don't have my HC05 stuck in the breadboard. I have jumper-leads going from it to a breadboard (which has the resistors on it). That made it easier to work the pushbutton.

Before i started using the EN to 3.3V to enter AT mode I would use a small alligstor clip to hold the button down the whole time. That would allow at least partial use of AT mode.

Really....
And you are just playing at being cryptic.

None of this alters the fact that an HC-06 is in AT mode by default - no extra wires needed anywhere. What you seem to describe, not necessarily fact, is an HC-05 working exactly as it should, but on a board meant for an HC-06.

And you still haven't mentioned how any Blueteeth have identified on the phone.

OK, that's working for me, too.

SerialMonitor should be Ready;
3V conn'd to EN, possibly Reset the Uno, then conn HC to 5V.

I also used the EN method with an HC05 w/o a pushbutton. It has a pin labelled 'KEY' and its own on-board 3V. I jumped KEY to 3V and with SerMon ready, conn'd 5V and it was in AT mode.
Since it allowed me to change ROLE from 0 to 1 (and back) then it must be a HC05 (+VERSION:2.0-20100601)

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.