HC-06 Bluetooth Module
Slave-only Bluetooth serial module — simpler and cheaper than HC-05 for one-way connections.
A slave-only Bluetooth serial module — simpler and cheaper than the HC-05 for projects that only need to be connected to, not initiate connections. Like the HC-05, the HC-06 implements the Bluetooth Serial Port Profile (SPP), transparently forwarding UART bytes over a Bluetooth link, but it's factory-locked to slave mode only, meaning it can be discovered and connected to by a phone or PC but can't initiate a connection to another Bluetooth device itself — a perfectly good tradeoff for the very common case of a phone app talking to an Arduino project.
Specifications
| Bluetooth version | Bluetooth 2.0 + EDR (Classic Bluetooth, not BLE) |
| Operating voltage | 3.3V DC logic (module often includes an onboard regulator accepting 3.6V-6V supply) |
| Operating current | ~30-40 mA typical during active connection |
| Role support | Slave mode only — cannot initiate connections to other Bluetooth devices, only accepts incoming pairing requests |
| Range | ~10m typical (Class 2 Bluetooth radio) |
| Profile | Serial Port Profile (SPP) — transparent wireless UART bridge |
| Default baud rate | 9600 baud (some AT-command configuration available, more limited than the HC-05's command set) |
| Interface | UART (TX/RX) to the host microcontroller |
Pinout
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power, 3.6-6V DC (breakout boards regulate down to the 3.3V logic level internally) |
| 2 | GND | Ground |
| 3 | TX | UART transmit — connect to microcontroller RX |
| 4 | RX | UART receive — connect to microcontroller TX (3.3V logic, use a voltage divider from 5V boards) |
| 5 | STATE | Indicates connection status on some breakout variants — HIGH when a Bluetooth link is actively connected |
The HC-06's RX pin is 3.3V logic, so use a voltage divider or level shifter when wiring to a 5V Arduino's TX pin. Because it lacks a KEY/EN pin for entering a distinct command mode like the HC-05, its AT command set for renaming or changing the pairing PIN is typically issued directly over the same UART connection while unpaired — check your specific module's documentation for the exact procedure.
Variants
The HC-06 is the right, cheaper choice whenever the project simply needs to be discovered and connected to by a phone app or PC terminal. Only step up to the HC-05 if the project itself needs to actively initiate a Bluetooth connection to another device.
| Variant | Temp range | Hum range | Accuracy | Protocol | Price |
|---|---|---|---|---|---|
| HC-06 (slave only) | ~$2-4 | ||||
| HC-05 (master/slave configurable) | ~$3-6 | ||||
| HM-10 / generic BLE module | ~$3-6 |