

The HC-06 is a Bluetooth module designed for wireless communication, commonly used in embedded systems and IoT projects. It operates as a slave device, allowing microcontrollers to connect and communicate with smartphones or other Bluetooth-enabled devices. The module is simple to use, cost-effective, and widely supported, making it a popular choice for hobbyists and professionals alike.








The HC-06 Bluetooth module has the following key technical specifications:
| Parameter | Value |
|---|---|
| Bluetooth Version | Bluetooth 2.0 + EDR (Enhanced Data Rate) |
| Operating Voltage | 3.3V to 5V |
| Current Consumption | 30mA (typical) |
| Communication Range | Up to 10 meters (unobstructed) |
| Baud Rate (Default) | 9600 bps |
| Communication Protocol | UART (Universal Asynchronous Receiver-Transmitter) |
| Operating Temperature | -20°C to +75°C |
| Dimensions | 27mm x 13mm x 2mm |
The HC-06 module has 4 pins, as described in the table below:
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power supply input (3.3V to 5V). Connect to the 5V pin of the microcontroller. |
| 2 | GND | Ground. Connect to the ground of the microcontroller. |
| 3 | TXD | Transmit data. Sends serial data to the microcontroller. |
| 4 | RXD | Receive data. Receives serial data from the microcontroller. |
1234 or 0000.Below is an example of how to use the HC-06 with an Arduino UNO to send and receive data:
#include <SoftwareSerial.h>
// Create a SoftwareSerial object to communicate with the HC-06
SoftwareSerial BTSerial(10, 11); // RX, TX pins for HC-06
void setup() {
Serial.begin(9600); // Start the hardware serial communication
BTSerial.begin(9600); // Start the software serial communication with HC-06
Serial.println("HC-06 Bluetooth Module Test");
Serial.println("Send data from your Bluetooth device to see it here.");
}
void loop() {
// Check if data is available from the HC-06
if (BTSerial.available()) {
char c = BTSerial.read(); // Read a character from HC-06
Serial.print("Received: ");
Serial.println(c); // Print the received character to Serial Monitor
}
// Check if data is available from the Serial Monitor
if (Serial.available()) {
char c = Serial.read(); // Read a character from Serial Monitor
BTSerial.write(c); // Send the character to HC-06
}
}
The HC-06 is not visible during pairing:
Data is not being transmitted or received:
The module disconnects frequently:
The default PIN code does not work:
1234 or 0000.Q: Can the HC-06 act as a master device?
A: No, the HC-06 is designed to operate only as a slave device. For master functionality, consider using the HC-05 module.
Q: Can I change the baud rate of the HC-06?
A: Yes, the baud rate can be changed using AT commands. Refer to the manufacturer's documentation for details.
Q: Is the HC-06 compatible with Arduino?
A: Yes, the HC-06 is fully compatible with Arduino and other microcontrollers that support UART communication.
Q: How do I reset the HC-06 to factory settings?
A: Use AT commands to reset the module. For example, send the AT+ORGL command via a serial terminal.
By following this documentation, you should be able to successfully integrate and use the HC-06 Bluetooth module in your projects.