Bluetooth HC-05 : AT Mode

HC-05 GND — Arduino GND Pin
HC-05 VCC (5V) — Arduino 5V
HC-05 TX — Arduino Pin 10 (soft RX)
HC-05 RX — Arduino Pin11 (soft TX)
HC-05 Key (PIN 34) — Arduino Pin 9


This worked for me too. Also, after getting the LED to blink slowly, press the Reset button on the Arduino. Exact steps that seem to always work:

1. Unplug power from HC-05

2. Upload sketch from this Instructable

3. Hold in HC-05 button

4. Reconnect power to HC-05 (wait until LED blinks slowly)

5. Press Arduino reset button

6. Open Serial Monitor

7. Make sure “Both NL & CR” is selected

8. Type AT commands

We had 3 people in a workshop this evening and when everyone followed this procedure it always worked.

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(2, 3); // RX | TX

void setup()
  pinMode(9, OUTPUT);  // this pin will pull the HC-05 pin 34 (key pin) HIGH to switch module to AT mode
  digitalWrite(9, HIGH);
  Serial.println("Enter AT commands:");
  BTSerial.begin(38400);  // HC-05 default speed in AT command more

void loop()

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

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



Leave a Reply