I am trying to communicate with the HC-05 Bluetooth module for quite long time now, but with no success.

I am using the Nodemcu(V3) ESP8266 module.

I connect the HC-05 to Nodemcu in following sequence:

HC-05             Nodemcu
-----             -----------
RX       -->      Pin 1 (Tx)
TX       -->      Pin 3 (RX)
Vcc      -->      +3.3V
GND      -->      GND 

For starters, i want to check if my Nodemcu is communicating properly with my HC-05 module.

I have written the following code to read the response of AT commands:

#include <SoftwareSerial.h>
SoftwareSerial BTserial(3, 1); // RX | TX
char Bluetooth_Name = ' ';

void setup() 
    // Arduino IDE serial monitor

    // HC-05 default serial speed for AT mode is 38400

    // Wait for hardware to initialize

    // Print debug string

void loop()

   // Keep reading from HC-05 and send to Arduino Serial Monitor
   if (BTserial.available())
      reading = BTserial.read();

   // Keep reading from Arduino Serial Monitor and send to HC-05
   if (Serial.available())
      reading = Serial.read();

However, i do not get response for any AT command at all. The serial monitor just shows blank.

Thanks in advance

EDIT:- I connected the "EN" pin on the HC-05 to Vcc. Now, the led on the HC-05 blinks slowly, which means that the HC-05 is configured in command mode. However, i am still not able to receive the response for any AT commands. I have also selected "Both NL & CR" in the serial monitor, configured the baud rate correctly and double-checked the hardware connections.

Everything seems to be correct except that i don't get response for the AT commands.

Please help!!!

  • what output do you get, if any Feb 15, 2019 at 22:28
  • No, i did not get any output on the serial monitor Feb 18, 2019 at 10:40
  • I just modified the question to check the basic step if HC-05 is working with Nodemcu or not? Feb 18, 2019 at 10:46

2 Answers 2


I had the exact same problem and got it to work doing these changes:

I had to add this under my library include statements

#ifndef D5
#if defined(ESP8266)
#define D5 (14)
#define D6 (12)
#define D7 (13)
#define D8 (15)
#define TX (1)

and changed

SoftwareSerial BTserial(3, 1); // RX, TX


SoftwareSerial BTserial(D5,D6);

I used D5 and D6 on my esp8266 instead of D1 and D3 but shouldn't matter


I changed the line

SoftwareSerial BTserial(3, 1); // RX, TX


SoftwareSerial BTserial(D4, D3); // RX, TX

And got it to work!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.