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 [citation:2][citation:11]. It allows Arduino and other microcontrollers to communicate wirelessly with Bluetoothenabled devices like smartphones and PCs [citation:4][citation:7].
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) [citation:7][citation:8]
Use a voltage divider (1kΩ/2kΩ) on RX pin for 5V Arduino connections [citation:4][citation:7]
Default PIN: 1234; device name: HC-06 [citation:6][citation:9]
Technical Specifications
| Parameter | Value |
|---|
| Bluetooth Version | 2.0+EDR [citation:2][citation:5] |
| Frequency Band | 2.4GHz ISM [citation:2][citation:11] |
| Default Baud Rate | 9600 [citation:6][citation:7] |
| Supply Voltage | 3.3V to 6V [citation:7][citation:8] |
| Operating Current | 8mA to 50mA [citation:1][citation:11] |
| Communication Range | Up to 10 meters [citation:9][citation:12] |
| Operating Mode | Slave only [citation:7][citation:12] |
= Key Features =
Simple AT Command Configuration - Change name, PIN, or baud rate via serial terminal [citation:1][citation:4]
Low Power Consumption - 8mA when connected, ideal for battery projects [citation:1]
Compact Size 27mm x 13mm footprint for spaceconstrained designs [citation:8][citation:11]
Onboard Antenna Builtin 2.4GHz antenna, no external antenna needed [citation:8][citation:11]
Default 9600 Baud - Works out of the box with Arduino SoftwareSerial [citation:7][citation:9]
= 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) [citation:4]
√ Works with popular Bluetooth Terminal apps on Android and iOS
Connection Guide
To Arduino (SoftwareSerial on pins 2 & 3) [citation:4][citation:7]:
- 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 [citation:4][citation:7]
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 [citation:4][citation:7] |
| AT+VERSION | OKlinvorV1.8 | Get firmware version [citation:1][citation:4] |
| AT+NAME | OKsetname | Change module name [citation:1][citation:4] |
AT+PIN | OKsetPIN | Set pairing PIN [citation:1][citation:4] |
| AT+BAUDx | OK | Change baud rate (x=1-9) [citation:4][citation:7] |
Baud rate codes: 11200, 22400, 34800, 49600(default), 519200, 638400, 757600, 8115200 [citation:4][citation:7]
Send AT commands without line endings; commands must be sent within 1 second [citation:1][citation:4]
The module is always in AT mode when not paired [citation:7]
Commands are not echoed - only response is shown [citation:1]
Baud change takes effect after module reboot [citation:6]
Troubleshooting
No AT response:
- Set Serial Monitor to 9600 baud and No line ending [citation:4]
- 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) [citation:6][citation:9]
LED not blinking:
- Check 3.3V-6V power supply
- Verify ground connection
- Module may be damaged