

The Bluetooth HC-05 Module, manufactured by ARDUINO (Part ID: MEGA), is a wireless communication module designed for short-range data transmission using Bluetooth technology. It is widely used in embedded systems to enable seamless communication between devices without the need for physical connections. The HC-05 module supports both master and slave modes, making it versatile for various applications.








The HC-05 module is a robust and reliable Bluetooth module with the following key specifications:
| Parameter | Value |
|---|---|
| Bluetooth Version | 2.0 + EDR (Enhanced Data Rate) |
| Operating Voltage | 3.3V to 5V |
| Operating Current | 30mA (typical) |
| Communication Protocol | UART (Universal Asynchronous Receiver-Transmitter) |
| Baud Rate (Default) | 9600 bps |
| Range | Up to 10 meters (unobstructed) |
| Frequency Band | 2.4 GHz ISM band |
| Master/Slave Support | Configurable |
| Dimensions | 28mm x 15mm x 2.35mm |
The HC-05 module has 6 pins, as described in the table below:
| Pin Name | Pin Number | Description |
|---|---|---|
| EN (Key) | 1 | Enables AT command mode when pulled HIGH. |
| VCC | 2 | Power supply pin (3.3V to 5V). |
| GND | 3 | Ground pin. |
| TXD | 4 | Transmit data pin (connect to RX of microcontroller). |
| RXD | 5 | Receive data pin (connect to TX of microcontroller). |
| STATE | 6 | Indicates connection status (HIGH when connected). |
1234 or 0000).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>
// Create a SoftwareSerial object to communicate with HC-05
SoftwareSerial BTSerial(10, 11); // RX, TX pins for HC-05
void setup() {
Serial.begin(9600); // Initialize Serial Monitor at 9600 baud
BTSerial.begin(9600); // Initialize HC-05 at 9600 baud
Serial.println("Bluetooth HC-05 Module Test");
Serial.println("Send data via Bluetooth to see it here.");
}
void loop() {
// Check if data is available from HC-05
if (BTSerial.available()) {
char data = BTSerial.read(); // Read data from HC-05
Serial.print("Received: ");
Serial.println(data); // Print received data to Serial Monitor
}
// Check if data is available from Serial Monitor
if (Serial.available()) {
char data = Serial.read(); // Read data from Serial Monitor
BTSerial.write(data); // Send data to HC-05
}
}
Module Not Powering On
Unable to Pair with Device
1234 or 0000) is used during pairing.No Data Transmission
AT Commands Not Working
Q: Can the HC-05 module be used with 3.3V microcontrollers?
A: Yes, the HC-05 module operates at 3.3V logic levels and is compatible with 3.3V microcontrollers.
Q: How do I reset the HC-05 module to factory settings?
A: Enter AT command mode and send the AT+ORGL command to reset the module to its default settings.
Q: Can the HC-05 module communicate with another HC-05 module?
A: Yes, configure one module as a master and the other as a slave using AT commands.
Q: What is the maximum data rate supported by the HC-05 module?
A: The HC-05 module supports a maximum baud rate of 1382400 bps, but the default is 9600 bps.