HC-06 Bluetooth Module
Slave-only Bluetooth serial module — simpler and cheaper than HC-05 for one-way connections.
Wiring & code for
HC 06 practical reference
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.
Key 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 and connection notes
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.
- VCC: Power, 3.6-6V DC (breakout boards regulate down to the 3.3V logic level internally)
- GND: Ground
- TX: UART transmit — connect to microcontroller RX
- RX: UART receive — connect to microcontroller TX (3.3V logic, use a voltage divider from 5V boards)
- STATE: Indicates connection status on some breakout variants — HIGH when a Bluetooth link is actively connected
Integration checklist
- Confirm the exact part number and breakout-board revision.
- Verify supply voltage, current demand, logic levels, and signal direction against the datasheet.
- Check controller pin assignments and bus address or interface mode against the example code.
- Power up with external loads disconnected, then test signals before full integration.
- If readings or communication fail, check power and ground first, then pin mapping, interface settings, and library initialization.
Troubleshooting and reproducibility
Record the board used, wiring, library/version, supply arrangement, and measured behavior. Use the selected board-specific wiring example as the source of truth. Never assume visually similar modules share identical voltage tolerance or pin order.