HC-06 Bluetooth Serial Transceiver Module
= Wireless Serial Communication Module for Arduino and MCU Projects =
The HC06 is a Bluetooth 2.0+EDR serial transceiver module designed for simple wireless serial communication . It allows Arduino and other microcontrollers to communicate wirelessly with Bluetoothenabled devices like smartphones and PCs .
Slave Mode Only - Connects to master devices, ideal for remote control and data reception
Simple Serial Interface - Transparent UART communication with default 9600 baud rate
Supply voltage: 3.3V to 6V (3.3V logic levels)
Use a voltage divider (1kΩ/2kΩ) on RX pin for 5V Arduino connections
Default PIN: 1234; device name: HC-06
= Technical Specifications =
| Parameter | Value |
|---|
| Bluetooth Version | 2.0+EDR |
| Frequency Band | 2.4GHz ISM |
| Default Baud Rate | 9600 |
| Supply Voltage | 3.3V to 6V |
| Operating Current | 8mA to 50mA |
| Communication Range | Up to 10 meters |
| Operating Mode | Slave only |
= Key Features =
Simple AT Command Configuration - Change name, PIN, or baud rate via serial terminal
Low Power Consumption - 8mA when connected, ideal for battery projects
Compact Size 27mm x 13mm footprint for spaceconstrained designs
Onboard Antenna Builtin 2.4GHz antenna, no external antenna needed
Default 9600 Baud - Works out of the box with Arduino SoftwareSerial
== Applications ==
- Wireless remote control for Arduino robots and cars
- Smartphone-controlled lighting and appliances
- Wireless sensor data transmission
- Bluetooth-based data logging
- IoT and home automation projects
- Wireless debugging and serial monitoring
Easy to Use Slaveonly design simplifies pairing and setup
Wide Compatibility - Works with Arduino, ESP8266, STM32, and Raspberry Pi
√ Default 9600 baud rate for plugandplay use
√ Includes LED status indicator (blinking = unpaired, solid = connected)
√ Works with popular Bluetooth Terminal apps on Android and iOS
= Connection Guide =
To Arduino (SoftwareSerial on pins 2 & 3) :
- VCC: 5V (or 3.3V if available)
- GND: GND
- TXD: Arduino pin 2 (SoftwareSerial RX)
- RXD: Arduino pin 3 (SoftwareSerial TX) via voltage divider
Use 1kΩ and 2kΩ resistors for 5V to 3.3V level shifting on RX pin
Use SoftwareSerial library to avoid conflict with hardware serial (pins 0 & 1)
Do not connect RXD directly to 5V Arduino pin - use voltage divider
Module is slaveonly cannot initiate connections to other devices
= AT Commands =
| Command | Response | Effect |
|---|
| AT | OK | Test communication |
| AT+VERSION | OKlinvorV1.8 | Get firmware version |
| AT+NAME | OKsetname | Change module name |
AT+PIN | OKsetPIN | Set pairing PIN |
| AT+BAUDx | OK | Change baud rate (x=1-9) |
| Baud rate codes | 1=1200, 2=2400, 3=4800, 4=9600(default), 5=19200, 6=38400, 7=57600, 8=115200 |
Send AT commands without line endings; commands must be sent within 1 second
The module is always in AT mode when not paired
Commands are not echoed - only response is shown
Baud change takes effect after module reboot
= Troubleshooting =
No AT response:
- Set Serial Monitor to 9600 baud and No line ending
- Ensure module is not paired to any device
- Check power supply and wiring
No pairing:
- Search for "HC-06" in Bluetooth settings
- Use PIN 1234 (default)
LED not blinking:
- Check 3.3V-6V power supply
- Verify ground connection
- Module may be damaged