Introduction
This manual provides detailed instructions for the HiLetgo HC-06 Bluetooth Serial RF Transceiver Module. The HC-06 module enables wireless serial communication, allowing devices to send and receive TTL data via Bluetooth. It is commonly used to add Bluetooth functionality to microcontroller projects, such as those based on Arduino, or for industrial remote control, telemetry, and smart home applications.
The module operates in slave mode, meaning it can be paired with a master Bluetooth device (e.g., a computer or Android device) but cannot initiate connections itself. For iOS compatibility, a different module like the HM-10 is typically required.

Image: Two HiLetgo HC-06 Bluetooth modules, showing their compact size and pin headers.
Setup
Physical Connection
The HC-06 module features four essential pins for operation: VCC, GND, TXD, and RXD. These pins facilitate power supply and serial data communication.
- VCC: Power supply input (3.3V).
- GND: Ground connection.
- TXD (Transmit Data): Connects to the RXD (Receive Data) pin of the microcontroller.
- RXD (Receive Data): Connects to the TXD (Transmit Data) pin of the microcontroller.
Important Note:
The HC-06 module operates at a 3.3V logic level. If connecting to a 5V microcontroller (like many Arduino Uno boards), a logic level converter or a voltage divider circuit is required for the RXD pin to prevent damage to the module. The VCC pin can typically be connected to the 3.3V output of the Arduino.
Wiring Diagram
Below is a typical wiring diagram for connecting the HC-06 module to a microcontroller. Ensure correct pin connections and voltage levels.

Image: Pinout diagram of the HC-06 module, clearly labeling VCC, GND, TXD, and RXD pins.

Image: A voltage divider circuit diagram, illustrating how to safely connect a 5V TTL signal to the 3.3V RXD pin of the HC-06 module using resistors.
Software Configuration (Arduino Example)
To enable serial communication with the HC-06 module on an Arduino, the SoftwareSerial.h library is typically used. This allows you to repurpose any two digital pins for serial communication, as the hardware serial pins (0 and 1) are often used for uploading code or debugging.
The default baud rate for the HC-06 module is 9600 bits per second. Ensure your code initializes the SoftwareSerial object with this baud rate.

Image: Screenshot of the DSD TECH Bluetooth Tools software, showing options to modify baud rate, Bluetooth name, and pairing password for the module.
Instructional Video: Connect Arduino & Bluetooth with HC-06
For a visual guide on connecting and programming the HC-06 module with an Arduino, please refer to the video below. This video demonstrates the physical wiring and basic code setup.
Video: A detailed tutorial demonstrating how to connect and program an HC-06 Bluetooth module with an Arduino board, including wiring diagrams and example code.
Operating the Module
Pairing with a Windows Device
- Ensure the HC-06 module is powered on and its LED is blinking, indicating it is discoverable.
- On your Windows computer, navigate to Settings > Bluetooth & devices > Devices.
- Under "Bluetooth devices discovery," change the option from "Default" to "Advanced" to ensure the module appears.
- Click "Add device" and select "Bluetooth."
- The HC-06 module should appear in the list (often named "HC-06"). Select it to connect.
- When prompted for a PIN, enter the default PIN: 1234.
- Once connected, the LED on the HC-06 module will stop blinking and remain solid, indicating a successful connection.
- To verify the connection, open Device Manager. Under "Ports (COM & LPT)," you should see a "Standard Serial over Bluetooth link" with an assigned COM port. This COM port can then be used for serial communication from your application or Arduino IDE's Serial Monitor.
Pairing with an Android Device
- Ensure the HC-06 module is powered on and its LED is blinking.
- Download a compatible Bluetooth serial terminal application from the Google Play Store (e.g., "DSD TECH Bluetooth").
- Open the application and allow it to access Bluetooth.
- The app should display available Bluetooth devices. Select "HC-06" from the list.
- Enter the default PIN: 1234 when prompted.
- Upon successful connection, the module's LED will become solid. You can now send and receive data through the app.
Sending and Receiving Data
Once connected, you can send character data to the module, which will then be received by your microcontroller. Conversely, your microcontroller can send data back to the connected device.
For example, if your Arduino code is set up to turn on a green LED when it receives '1' and a red LED for any other character, sending '1' from your connected device will activate the green LED, while sending '2' (or any other character) will activate the red LED.
Maintenance
The HiLetgo HC-06 module is designed for durability, but proper care ensures longevity and reliable performance:
- Environmental Factors: Bluetooth signal strength can be significantly affected by surrounding obstacles such as trees, metals, and walls. Avoid installing the module inside metal enclosures, as metal can absorb or shield the Bluetooth signal.
- Antenna Placement: When designing a circuit board for the module, ensure the area directly beneath the antenna is clear of traces and components to prevent weakening the antenna's function. It is best to hollow out this area if possible.
- Voltage Levels: Always ensure that the serial port level connected to the module's RXD pin is 3.3V. Connecting a 5V level directly without a level conversion chip can damage the module.
- Cleanliness: Keep the module free from dust and moisture.
Troubleshooting
- Module LED is blinking but not connecting: Ensure your master device (computer/phone) Bluetooth is on and discoverable. Check that the correct PIN (default 1234) is being entered. For Windows, ensure Bluetooth discovery is set to 'Advanced'.
- Module LED is solid but no data transfer: Verify the TXD and RXD connections between the module and your microcontroller are correct (TXD to RXD, RXD to TXD). Check the baud rate in your software; it must match the module's baud rate (default 9600).
- Module not powering on or damaged: Double-check the VCC and GND connections. Ensure the input voltage to VCC is within the specified range (3.3V). If connecting to a 5V system, confirm that a logic level converter or voltage divider is correctly implemented for the RXD pin.
- Intermittent connection or poor range: This can be due to environmental interference (metal objects, other wireless devices) or improper antenna placement. Try relocating the module or ensuring no obstructions are near its antenna.
- Cannot find module on iOS: The HC-06 module is not compatible with iOS devices. For iOS connectivity, modules like the HM-10 (Bluetooth Low Energy) are required.
Specifications
| Feature | Specification |
|---|---|
| Bluetooth Version | V2.0+EDR |
| Operating Voltage | 3.3V |
| Host Interface | UART |
| Storage Temperature | -40℃ ~ +150℃ |
| Signal Coverage | Up to 30ft (approx. 9 meters) |
| Item Size | 4.3 x 1.6 x 0.7 cm |
| Item Weight | 3g |
| Default Baud Rate | 9600 bps |
| Default PIN | 1234 |
| Operating Mode | Slave Mode |
Warranty and Support
For any technical support, warranty inquiries, or issues regarding your HiLetgo HC-06 Bluetooth Serial RF Transceiver Module, please contact HiLetgo directly through their official website or the platform where the product was purchased. Refer to the product packaging or the seller's information for specific contact details.

Image: Example of HiLetgo product packaging, which may contain support contact information.





