HC-05 At Command Mode - but Not in FULL AT cmd mode => can not use AT+INQ or AT+INIT

I have been trying to get the HC-05 / zs-040 to see other Bluetooth devices - from Arduino Nano.

See:
https://www.martyncurrey.com/connecting-2-arduinos-by-bluetooth-using-a-hc-05-and-a-hc-06-pair-bind-and-link/

I am using Arduino Nano :

Ard: BT:
+3.3V -> +Vcc
-Gnd -> Gnd-
+3.3V -> EN (go into AT Mode)
p10 -> (R1K) -> TX -> ( R2K -> -Gnd )
p11 -> RX
+3.3V -> p34 (go into FULL AT Mode)

But, even though, I am in AT Cmd Mode, it is Not in FULL AT Cmd Mode.
Some cmds like AT+INIT, AT+INQ, etc - do not work or respond.

EN enable pin is tied to the +3.3V source.
p34 is connected to +3.3V via soldered jumper wire to the breadboard.
And, I hold BT button on power-up.
BT LED blinks at 2sec hz.
See below :
https://www.martyncurrey.com/arduino-with-hc-05-bluetooth-module-at-mode/

Mini AT Cmd modes do work and reply :
AT+RMADD , AT+ROLE , AT_CMODE , AT-NAME , etc ...

But, AT-INIT, AT-INQ, AT-PAIR, AT-BIND, etc - do Not work / reply.

-- I also did connect the p34 to +3.3V via soldered jumper wire to the breadboard.
-- And, I hold BT button on power-up.
But, this does not help. I tested 2 HC-05 boards - still no luck.

Lost on this.
What am I missing ?

Can we assume you have looked at this?

Well, I listed that link in my comment ,

  • so obviously yes.

I stated that p34 was connected to +3.3V.
I also hold the BT button on power-up.

-- It blinks at about 2sec hz.

Do you have anything else in particular ?

Code used :


// : BT_HC05_Master_to_BT-KEYBOARD : //

/*
Ard: BT:
+3.3V -> +Vcc
-Gnd -> Gnd-
+3.3V -> EN (go into AT Mode)
p10 -> -> R1K -> TX -> R2K -> -Gnd
p11 -> RX
+3.3V -> p34 (go into FULL AT Mode)
*/

// - use menu: "old Bootloader Atmega328"
// Bluetooth-Devices : W10: DeviceManagerApp:Bluetooth: M7 : Properties:Details:BluetoothDeviceAddress
// Bluetooth-Keyboard : BT Address = 232F099F0001

//

#include <SoftwareSerial.h>

//

SoftwareSerial mySerial( 10 , 11 ); // RX, TX

//

void setup()
{

Serial.begin(9600);
Serial.println( "\r\n- BT_HC05_Master_to_BT-KEYBOARD - \r\n" );

pinMode( 9 , OUTPUT ); digitalWrite(9,LOW); digitalWrite(9,HIGH);

mySerial.begin( 38400 );

Serial.println("A> Enter AT commands: \n");

mySerial.write( "AT+NAME=John\r\n" );
mySerial.write( "AT+NAME?\r\n" );
mySerial.write( "AT+PSWD?\r\n" );
mySerial.write( "AT+RNAME?\r\n" );
mySerial.write( "AT+VERSION?\r\n" );
mySerial.write( "AT+ADDR?\r\n" );
mySerial.write( "AT+ROLE?\r\n" );
mySerial.write( "AT\r\n" );

Serial.println("");

;

Serial.println("B> connect to BT:KEYBOARD (232F0990001) ");

mySerial.write( "AT\r\n" );
mySerial.write( "AT+RMAAD\r\n" );
mySerial.write( "AT+ROLE=1\r\n" );
mySerial.write( "AT+RESET\r\n" );
mySerial.write( "AT+CMODE=0\r\n" );

mySerial.write( "AT+INQM=0,5,9\r\n" );
mySerial.write( "AT+INIT\r\n" );
mySerial.write( "AT+INQ\r\n" );

mySerial.write( "AT+RNAME?232F,09,9F0001\r\n" );

mySerial.write( "AT+PAIR=232F,09,9F0001\r\n" );

mySerial.write( "AT+BIND=232F,09,9F0001\r\n" );

mySerial.write( "AT+CMODE=1\r\n" );

mySerial.write( "AT+LINK=232F,09,9F0001\r\n" );

mySerial.write( "AT+RNAME?\r\n" );

;

Serial.println("\nAT");

mySerial.write( "AT\r\n" );

Serial.println("");

}

//

void loop()
{

if( mySerial.available() )
{
Serial.write( mySerial.read() );
}

if( Serial.available() )
{
mySerial.write( Serial.read() );
}
}

May not be the cause of the problem, but clearly contrary to instructions, and therefore probably not a good idea.

Just tried tying BT Vcc->+5V.
-- No difference

Also used code : HC-05_02_38400
No difference.
Tried: AT+INQM, AT+INQ, AT-INIT, etc - no response

Tried AT+ cmds repeatedly , while holding BT button.
Such as :
AT+PSWD?
Result :
+PSWD:NO KEY OK
AT+INQ
Result :
(no response)

--

AT+PSWD=1234
Result:
FAIL

--

AT+VERSION?
+VERSION:hc05V2.3_1e OK

That link shows there is a great variation of software in the same board id when made by different companies. Does your board fit any if the boards that have limited capability?

I seem to recall that a recent thread had this and the conclusion was that the module was actually a BLE device.

Purchased from here :

https://www.aliexpress.us/item/3256807225418049.html

The chip looks like the same chip sold anywhere, even all through ebay.


AT+VERSION?
+VERSION:hc05V2.3_1e OK


B> AT+NAME?
B> AT+VERSION?
B> AT+RMAAD 
B> AT+ROLE=1 
B> AT+RESET 
B> AT+CMODE=0 

B> AT+INQM=0,5,9 
B> AT+INIT 
B> AT+INQ 

B> AT+RNAME?232F,09,9F0001
 
B> AT+PAIR=232F,09,9F0001 
B> AT+BIND=232F,09,9F0001 
B> AT+CMODE=1 
B> AT+LINK=232F,09,9F0001 

B> AT+RNAME? 

AT

+NAME:HC-05
+VERSION:hc05V2.3_1e OK
OK
OK
OK
FAIL
FAIL

-- AT+ Cmds (mini) working here : RMAAD , ROLE , RESET , CMODE , RNAME , VERSION
-- AT+ Cmds (full) ignored : INQM , INIT , INQ , PAIR , BIND , LINK

I read (I do not know) that full mode is entered if you power-on without holding the button/pin34, then after power-on hold the button/pin34 while entering AT mode commands.

I tried holding the button while entering the commands also.
Still No result

Photo of my test circuit :

+3.3V -> p34
I have it soldered there all along.
(Yellow wires next to the antenna - tied to EN-pin and +3.3V )

Tested Voltages :
arduino 3.3V pin => +3.26V
BT RX pin => +3.12V
BT pin34 => +3.26V
(and BT EN pin is connected to p34 + arduino 3.3V pin)

Pull the wire Put a SPST on the Pin34 wire. I think that is "holding the button."

BLE ?

AT+PSWD=123456
OK

AT+PSWD?
+PSWD:123456 OK

-- so now what ?
Can I still link as Master ?

Bluetooth, low energy.

I figured that.

How do I get to Full AT Cmds ?

AT+INQ ... etc still do not work.

Except :

AT+BIND?
+BIND=00:00:00:00:00:00

AT+STATE?
+STATE:PAIRABLE OK

martyncurry web site has them.

No. No Full AT Cmds - just Mini.

Power up : with EN pin loose NC => blinks at 2hz
I connect p34=3.3V / NC => blinks at 2hz
I connect EN=3.3V / NC => blinks at 2hz

  • mini AT Cmds , but no Full AT Cmds

Power-up with EN=3.3V => blinks at 1hz
p34 no => blinks at 2hz

  • mini AT Cmds , but no Full AT Cmds

I connect p34=3.3V => blinks at 2hz

  • mini AT Cmds , but no Full AT Cmds

Disconnect EN => blinks at 0.5Hz

  • mini AT Cmds , but no Full AT Cmds

HC-05 :
-- always replies to Mini AT cmds,
-- but always ignores Full AT cmds.
Blinking at 2hz / 1hz / 0.5hz - makes no difference.

Tried all combos of EN / p34 -> +3.3V / NC - at Power-up , and after.
-- no difference other than the blink rate.

I have run through these tests with (3) different Bluetooth modules now - all same results.

Actually, once these chips go into AT mode,
-- I can not bring them out.
Even Gnd to Key EN pin on Power-up - still in AT mode.

-- Maybe the pin34 has changed ?

Check continuity from the button to Pin 34.
Check voltages at the button pin when not pressed, and when pressed.

For reference:

That being a response suggests it is a BLE device. Kosher HC-05s have a four-digit password.