

The HC-05 Bluetooth Serial Module, manufactured by Guangzhou HC Information Technology Co., Ltd., is a versatile and widely used Bluetooth module designed for wireless communication. Operating in the 2.4 GHz frequency range, it enables seamless data exchange between devices such as microcontrollers, smartphones, and other Bluetooth-enabled systems. The HC-05 supports both master and slave modes, making it suitable for a variety of embedded applications.








The HC-05 module is designed to provide reliable and efficient Bluetooth communication. Below are its key technical details:
| Parameter | Specification |
|---|---|
| Manufacturer | Guangzhou HC Information Technology Co., Ltd. |
| Part ID | HC-05 Bluetooth Serial Module |
| Bluetooth Version | Bluetooth 2.0 + EDR (Enhanced Data Rate) |
| Frequency Range | 2.4 GHz ISM Band |
| Operating Voltage | 3.3V to 5V |
| Operating Current | 30 mA (typical) |
| Communication Protocol | UART (Universal Asynchronous Receiver-Transmitter) |
| Baud Rate (Default) | 9600 bps |
| Range | Up to 10 meters (line of sight) |
| Modes | Master and Slave |
| 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 input (3.3V to 5V). |
| 3 | GND | Ground connection. |
| 4 | TXD | Transmit data pin. Sends serial data to the connected device. |
| 5 | RXD | Receive data pin. Receives serial data from the connected device. |
| 6 | STATE | Indicates the connection status (HIGH when connected, LOW when disconnected). |
Below is an example of how to use the HC-05 module with an Arduino UNO to send and receive data via Bluetooth.
#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 Pairing with Device:
No Data Transmission:
AT Commands Not Working:
Short Communication Range:
Q: Can the HC-05 module communicate with Bluetooth 4.0 devices?
A: Yes, the HC-05 is backward compatible with Bluetooth 4.0 devices, but it operates at Bluetooth 2.0 standards.
Q: How do I reset the HC-05 to factory settings?
A: Enter AT command mode and send the command AT+ORGL. This will reset the module to its default settings.
Q: Can I use the HC-05 for audio transmission?
A: No, the HC-05 is designed for serial data communication and does not support audio transmission.
Q: What is the difference between HC-05 and HC-06?
A: The HC-05 supports both master and slave modes, while the HC-06 operates only in slave mode.