HC-05 Bluetooth Module: Complete Beginner’s Guide and Comparison

HC-05 Bluetooth Module with pin config.
Version 1.0.0

If you’re working on a DIY electronics project and want to add wireless communication, the HC-05 Bluetooth module is one of the easiest and most cost-effective solutions available. Whether you’re building a Bluetooth-controlled robot, smart home device, or just experimenting with serial communication, the HC-05 has you covered.

In this in-depth guide, we’ll explore everything you need to know about the HC-05 moduleโ€”how it works, how to use it with Arduino, and how it compares to other popular Bluetooth modules like HC-06 and HM-10.


๐Ÿ” Table of Contents

  1. What is the HC-05 Bluetooth Module?
  2. Key Features and Specifications
  3. Pinout and Wiring with Arduino
  4. How the HC-05 Module Works
  5. Setting Up HC-05 with Arduino (with Example Code)
  6. Common Applications
  7. HC-05 vs HC-06 vs HM-10: Which One Should You Use?
  8. Frequently Asked Questions
  9. Final Thoughts

๐Ÿง  1. What is the HC-05 Bluetooth Module?

The HC-05 is a popular Bluetooth SPP (Serial Port Protocol) module that allows devices to communicate wirelessly via UART (serial communication). It supports both Master and Slave modes, making it suitable for two-way communication between two Bluetooth devices.

It uses Bluetooth 2.0 technology, which makes it compatible with most Android devices and Windows PCs. However, it does not support iPhones since it lacks BLE (Bluetooth Low Energy).

In simple terms:
HC-05 = Easy Bluetooth Communication for Arduino & Microcontrollers


โš™๏ธ 2. Key Features and Specifications

FeatureDetails
Bluetooth Version2.0 + EDR
Operating Voltage3.3V (Accepts 3.6โ€“6V)
Logic Level3.3V (Use voltage divider on RX)
Default Baud Rate9600
Range~10 meters (unobstructed)
Configurable via AT CommandsYes
Mode SupportMaster/Slave
AntennaBuilt-in
Size~28mm x 15mm

๐Ÿงช 3. HC-05 Pinout and Wiring

PinFunction
VCCPower supply (3.6V to 6V)
GNDGround
TXDTransmits serial data
RXDReceives serial data
EN/KEYEnables AT command mode
STATEShows Bluetooth connection status

โšก Voltage Note:

The TX pin on Arduino is 5V, but the RX pin on HC-05 expects 3.3V. So use a voltage divider (two resistors) or a logic level shifter to avoid damaging the module.

๐Ÿ“ท Basic Arduino Wiring:

plaintextCopyEditHC-05       Arduino
-----       -------
VCC    -->   5V
GND    -->   GND
TXD    -->   Pin 10 (Arduino RX via SoftwareSerial)
RXD    -->   Pin 11 (Arduino TX via voltage divider)

๐Ÿ”ง 4. How HC-05 Works

The HC-05 acts like a wireless serial port. It transmits and receives data wirelessly between your microcontroller and a Bluetooth-enabled device like a smartphone or computer.

It has two main modes:

  • AT Mode: Used for configuration. You can set the module name, baud rate, password, and Master/Slave role.
  • Data Mode: Used for regular communication with connected devices.

When you power it on, the module starts blinking rapidly, indicating itโ€™s waiting for a connection. Once connected, the blinking slows down.


๐Ÿ’ก 5. How to Use HC-05 with Arduino (Example Code)

Hereโ€™s a simple project to send and receive data between your smartphone and Arduino via HC-05.

โœ… Arduino Code (using SoftwareSerial):

cppCopyEdit#include <SoftwareSerial.h>

SoftwareSerial BTSerial(10, 11); // RX | TX

void setup() {
  Serial.begin(9600);
  BTSerial.begin(9600);
  Serial.println("Ready to pair with HC-05");
}

void loop() {
  if (BTSerial.available()) {
    Serial.write(BTSerial.read());
  }

  if (Serial.available()) {
    BTSerial.write(Serial.read());
  }
}

๐Ÿ“ฑ Pairing with Your Phone:

  1. Turn on Bluetooth.
  2. Pair with device โ€œHC-05โ€ (default password: 1234 or 0000).
  3. Use a Bluetooth Terminal app to send/receive data.

๐Ÿš€ 6. Applications of HC-05 Module

  • Bluetooth-controlled robots
  • Wireless home automation (lights, fans, etc.)
  • Remote sensor monitoring
  • Bluetooth-controlled car using Android
  • Wireless data logging
  • Serial communication between two Arduinos

๐Ÿ” 7. HC-05 vs HC-06 vs HM-10: Which One is Better?

FeatureHC-05HC-06HM-10 (BLE)
Mode SupportMaster & SlaveSlave onlyMaster & Slave
Bluetooth Version2.0 + EDR2.0 + EDR4.0 (BLE)
AT CommandsFullLimitedFull
iOS CompatibilityโŒโŒโœ…
Android Compatibilityโœ…โœ…โœ…
Power ConsumptionModerateLowVery Low
Range~10 meters~10 meters~50 meters
Price$3โ€“$5$2โ€“$4$4โ€“$7

๐Ÿ† Verdict:

  • Choose HC-05: If you need both master/slave capability, full AT command control, and are working with Android or PC.
  • Choose HC-06: For simple, one-way communication projects (slave only).
  • Choose HM-10: If you need BLE support (iOS compatibility, low power).

โ“ 8. Frequently Asked Questions (FAQs)

Q1: Can I use HC-05 with iPhone?

No. iPhones support only BLE, and HC-05 uses classic Bluetooth 2.0. Use HM-10 for iOS compatibility.

Q2: How do I change the module name or baud rate?

Use AT commands:

  • AT+NAME=NewName
  • AT+UART=9600,0,0

To enter AT mode, hold the KEY pin HIGH while powering the module.

Q3: Whatโ€™s the default pairing password?

The default is usually 1234 or 0000.

Q4: Can I program Arduino wirelessly with HC-05?

Technically possible, but not recommended for beginners. It requires bootloader access and reconfiguration.

Q5: Whatโ€™s the range of HC-05?

Approx. 10 meters in open space. Walls and interference can reduce range.


๐Ÿงพ 9. Final Thoughts: Is HC-05 Worth It?

Absolutely! If you’re a beginner or hobbyist looking to add wireless functionality to your electronics project, the HC-05 module is one of the best tools out there. Itโ€™s affordable, well-documented, easy to use, and compatible with a wide range of platforms.

Yes, itโ€™s not ideal for iPhone users or low-energy applications, but for most Arduino-based DIY projects, HC-05 is the sweet spot between simplicity, flexibility, and price.


โœ… Key Takeaways

  • HC-05 is a Bluetooth 2.0 module supporting both Master and Slave modes.
  • Easy to connect with Arduino, Raspberry Pi, and other microcontrollers.
  • Fully configurable using AT commands.
  • Perfect for DIY projects like robots, home automation, and data logging.
  • Alternatives like HC-06 (simpler) and HM-10 (BLE/iOS compatible) are available.

๐Ÿ”— Related Posts You Might Like

  • ๐Ÿ”Œ Getting Started with Arduino Uno
  • ๐Ÿค– How to Make a Bluetooth-Controlled Robot
  • ๐ŸŒฟ Build a Smart Plant Watering System Using HC-05
  • ๐Ÿ’ก Top 10 Bluetooth Projects for Beginners

If you found this guide helpful, share it with fellow makers! Got any questions or facing issues while using HC-05? Drop a comment or contact usโ€”weโ€™re here to help.

HC-05 Bluetooth Module: Complete Beginner’s Guide and Comparison

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top