HC-05 vs HC-06 Bluetooth Modules: Differences, Specs, and Arduino Applications

Oct 28 2025
Source: DiGi-Electronics
Browse: 1134

HC-05 and HC-06 Bluetooth modules are among the most popular choices for adding wireless communication to Arduino and embedded projects. While both offer simple, cost-effective UART connectivity, their roles, features, and flexibility differ.

Figure 1. HC-05 vs HC-06 Bluetooth Modules

HC-05 vs HC-06 Bluetooth Modules Overview

HC-05 and HC-06 are Bluetooth SPP (Serial Port Protocol) modules commonly used for enabling wireless UART communication between microcontrollers, PCs, or mobile devices. They are cost-effective, easy to integrate, and widely adopted in prototyping, embedded systems, and Arduino-based projects.

Figure 2. HC-05

• HC-05: A flexible module that can function as both a master (initiating connections) or slave (responding to connections). This dual-mode capability makes it ideal for more advanced applications, such as multi-device networking or when a microcontroller needs to initiate communication with other Bluetooth devices.

Figure 3. HC-06

• HC-06: A simpler module configured to operate only as a slave, meaning it can accept connections but cannot initiate them. Its plug-and-play nature reduces complexity, making it a good choice for applications requiring only a single device-to-device link.

Master vs Slave Roles and Connection Behavior

Figure 4. HC-05 Master Mode vs HC-06 Slave Mode

The key distinction between HC-05 and HC-06 lies in their firmware roles and how they establish Bluetooth links.

The HC-05 can operate in either role. In master mode, it scans for nearby devices and initiates connections — useful for autonomous systems like robots or controllers that must actively link with sensors or other Bluetooth modules. In slave mode, it waits for a master (such as a smartphone or PC) to connect, making it versatile for a range of setups.

The HC-06 is permanently locked in slave mode. It cannot search for or initiate connections, but instead waits for a master device to pair. This plug-and-play simplicity reduces complexity but limits use in projects requiring multi-device networking or autonomous initiation.

In short, HC-05 supports auto-reconnect to the last paired device, and in some setups can switch between multiple slaves (one at a time). HC-06 only connects when discovered by a master, with no reconnection or multi-device features.

HC-05 vs HC-06 AT Commands Flexibility

AT commands allow configuration of Bluetooth modules before deployment, and here the gap between HC-05 and HC-06 is most evident.

HC-05: Full Command Set

Provides a wide range of commands to adjust:

• Module name

• Baud rate

• PIN/password

• Role (master or slave)

• Debugging and connection testing

This makes HC-05 ideal for advanced or evolving projects where customization and flexibility are needed.

HC-06: Limited Commands

Supports only a handful of commands, usually for changing name and baud rate. Role is fixed to slave mode. This simplicity is attractive for quick Arduino projects but restricts options for scaling or complex networks.

Baud Rate and Communication Parameters

Both modules use UART (Universal Asynchronous Receiver/Transmitter) for microcontroller communication, ensuring broad Arduino compatibility.

• HC-05: Default is 9600 bps, but it supports faster rates (38400, 57600, 115200 bps) via AT commands. This flexibility is valuable for applications needing higher throughput, such as real-time sensor streaming.

• HC-06: Many versions ship locked at 9600 bps, though some allow limited changes. You must plan around this restriction in performance-sensitive systems.

• Shared Parameters: Both use the same frame format (8 data bits, 1 stop bit, no parity), ensuring straightforward serial integration.

Pinout Configuration of HC-05 and HC-06

The pin configuration is one of the first things to check when wiring an HC-05 or HC-06 to a microcontroller, since slight differences exist between the two modules. Correct wiring ensures stable communication and prevents accidental damage.

Figure 5. HC-05 and HC-06 Pinout

Pin NameHC-05 (6 pins)HC-06 (4–5 pins)
VCC3.3–5 V supply3.3–5 V supply
GNDGroundGround
TXDUART Data OutUART Data Out
RXDUART Data InUART Data In
EN/KEYUsed to enable AT command mode or change module stateSometimes absent, not available on all versions
STATEIndicates connection status (HIGH when connected, LOW when idle)Sometimes absent, especially in simpler breakout boards

Technical Specifications of HC-05 and HC-06

FeatureHC-05HC-06
Bluetooth Version2.0 + EDR2.0 + EDR
Supported RolesMaster & SlaveSlave only
Default Baud Rate9600 bps (changeable)9600 bps (may be fixed)
AT Command SupportFull setLimited
Pins Available6 (EN/KEY, VCC, GND, TX, RX, STATE)4–5 (VCC, GND, TX, RX, sometimes STATE)
Range (LOS)20–30 m outdoors, 5–10 m indoors20–30 m outdoors, 5–10 m indoors
Price (average)\$5–8\$3–5

Bluetooth Range and Data Performance of HC-05 and HC-06

In terms of range and data handling, the HC-05 and HC-06 modules deliver nearly the same performance since both are built on the Bluetooth 2.0 + EDR standard. Their capabilities are well-suited for most short-range embedded projects but not for applications requiring long-distance connectivity.

ConditionHC-05HC-06
Indoor Range5–10 meters5–10 meters
Outdoor LOS20–30 meters20–30 meters
Data RateUp to 3 Mbps (EDR)Up to 3 Mbps (EDR)
AntennaPCB trace / externalPCB trace / external

Limitations of HC-05 and HC-06 Bluetooth Modules

ModuleKey Limitations
HC-05Slightly higher cost compared to HC-06; setup and configuration can be more complex due to extra pins and AT command options.
HC-06Limited to slave mode only, with fewer AT commands available; reduced flexibility in more advanced projects; fewer pins on most breakout boards.
BothBuilt on older Bluetooth 2.0 + EDR standard, which means: • No Bluetooth Low Energy (BLE) support • Higher power consumption than modern BLE modules • Not ideal for battery-powered, low-energy applications.

HC-05 vs HC-06 vs WF-05 and HM-10 Comparison

Figure 6. HC-05 vs HC-06 vs WF-05 and HM-10

As Bluetooth and wireless technologies have advanced, newer modules have appeared that expand beyond the classic HC-05 and HC-06. Comparing them with WF-05 and HM-10 shows where each fits best.

ModuleTypeKey FeaturesBest Use Case
HC-05Bluetooth 2.0Supports both master and slave roles, full AT command set for customizationRobotics, IoT projects requiring flexible connectivity
HC-06Bluetooth 2.0Slave-only, minimal AT commands, very low cost and easy to set upBeginner Arduino projects, simple sensor-to-controller links
WF-05WiFi + BluetoothOffers dual connectivity (WiFi for internet access + Bluetooth for local pairing)IoT projects needing both local control and cloud connectivity
HM-10Bluetooth 4.0 BLELow-power, long battery life, supports BLE (Bluetooth Low Energy)Wearables, mobile accessories, and modern IoT applications

Applications of HC-05 and HC-06

HC-05 and HC-06 modules are among the most popular add-ons for Arduino and microcontroller projects. They provide a simple way to add Bluetooth wireless communication. Here are some practical and creative applications where these modules shine:

Figure 7. Robot Control with Smartphone

• Robot Control with Smartphone: Use an HC-05 in slave mode to receive movement commands from an Android app. Ideal for line-following robots, robotic arms, or mobile robots.

Figure 8. Wireless Sensor Data Logging

• Wireless Sensor Data Logging: Send sensor data (temperature, humidity, GPS) from Arduino to a laptop or phone using HC-06. Perfect for DIY weather stations or environmental monitors.

Figure 9. Home Automation Projects

• Home Automation Projects: Control lights, fans, or appliances remotely via HC-05 Bluetooth pairing with a phone. Simple commands can toggle relays connected to microcontrollers.

Figure 10. Remote RC Car or Drone Communication

• Remote RC Car or Drone Communication: Use HC-05 in master mode to send directional commands to an HC-06-equipped vehicle. Low-cost way to build a remote-control system.

Conclusion

Choosing between HC-05 and HC-06 depends on your project’s complexity and flexibility needs. HC-05 offers full AT command support and dual master-slave modes, making it suitable for advanced systems. HC-06 provides a simpler, plug-and-play approach for straightforward projects. By knowing their strengths and limitations, developers can achieve reliable, wireless communication in a wide range of Arduino and embedded applications.

Frequently Asked Questions [FAQ]

Can HC-05 or HC-06 connect to iOS devices?

HC-05 and HC-06 modules generally connect easily to Android and Windows devices. iOS devices have limited support for Bluetooth SPP (Serial Port Profile), so they often cannot connect without extra hardware or BLE-compatible modules.

Do HC-05 and HC-06 support Bluetooth Low Energy (BLE)?

No, both HC-05 and HC-06 use Bluetooth 2.0 + EDR. They do not support BLE. For low-power or modern mobile applications, modules like HM-10 (BLE 4.0) are better alternatives.

Can two HC-06 modules communicate directly?

No, HC-06 modules cannot talk to each other because both are locked in slave mode. At least one master-capable module (like HC-05) is needed to establish the link.

How do I reset an HC-05 or HC-06 to factory settings?

HC-05 can be reset via AT commands, such as restoring default baud rate and PIN. HC-06 has very limited AT command options and often requires reflashing firmware or purchasing a fresh module if configuration issues persist.

Which module is better for battery-powered projects?

Both draw similar current (~30–40 mA), but since neither supports BLE, they aren’t power-efficient for long-term battery use. For low-energy applications, BLE modules like HM-10 or ESP32-based solutions are preferred.