

The HC-05 is a Bluetooth module that allows for wireless communication between devices. It is a versatile and widely used component in embedded systems, enabling seamless connectivity between microcontrollers and Bluetooth-enabled devices such as smartphones, tablets, or computers. The module supports both master and slave modes, making it suitable for a variety of wireless communication applications.








The HC-05 module is designed for ease of use and reliable communication. Below are its key technical specifications:
| Parameter | Value |
|---|---|
| Bluetooth Version | 2.0 + EDR (Enhanced Data Rate) |
| Operating Voltage | 3.3V to 5V |
| Operating Current | 30mA (typical) |
| Communication Range | Up to 10 meters (unobstructed) |
| Baud Rate (Default) | 9600 bps |
| Modes | Master and Slave |
| Frequency Band | 2.4 GHz ISM band |
| Dimensions | 37.5mm x 15.2mm x 2.7mm |
The HC-05 module has six pins, as described in the table below:
| Pin | Name | Description |
|---|---|---|
| 1 | EN (Key) | Enables AT command mode when pulled HIGH. Leave LOW for normal operation. |
| 2 | VCC | Power supply pin. Connect to 3.3V or 5V. |
| 3 | GND | Ground pin. Connect to the ground of the circuit. |
| 4 | TXD | Transmit pin. Sends serial data to the connected microcontroller or device. |
| 5 | RXD | Receive pin. Receives serial data from the connected microcontroller or device. |
| 6 | STATE | Indicates the connection status. HIGH when connected, LOW when disconnected. |
The HC-05 module is straightforward to use in a circuit. Below are the steps and best practices for integrating it into your project:
Below is an example of how to connect and use the HC-05 module with an Arduino UNO:
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial BTSerial(10, 11); // RX = Pin 10, TX = Pin 11
void setup() {
// Initialize serial communication with the HC-05
BTSerial.begin(9600); // Default baud rate of HC-05
Serial.begin(9600); // Serial monitor baud rate
Serial.println("HC-05 Bluetooth Module Test");
}
void loop() {
// Check if data is available from the HC-05
if (BTSerial.available()) {
char data = BTSerial.read(); // Read data from HC-05
Serial.print("Received: ");
Serial.println(data); // Print data to Serial Monitor
}
// Check if data is available from the Serial Monitor
if (Serial.available()) {
char data = Serial.read(); // Read data from Serial Monitor
BTSerial.write(data); // Send data to HC-05
Serial.print("Sent: ");
Serial.println(data); // Print sent data to Serial Monitor
}
}
Module Not Responding to AT Commands:
No Data Transmission:
Unstable Connection:
Module Not Pairing:
Q1: Can the HC-05 module communicate with other Bluetooth versions?
Yes, the HC-05 is backward compatible with Bluetooth 1.1 and 1.2 devices.
Q2: How do I reset the HC-05 module?
To reset the module, disconnect and reconnect the power supply. Alternatively, use the AT command AT+RESET.
Q3: Can I use the HC-05 for audio transmission?
No, the HC-05 is designed for serial data communication and does not support audio transmission.
Q4: What is the difference between HC-05 and HC-06?
The HC-05 supports both master and slave modes, while the HC-06 operates only in slave mode.
By following this documentation, you can effectively integrate the HC-05 Bluetooth module into your projects and troubleshoot common issues.