Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

How to Use HC-05 Bluetooth Module: Examples, Pinouts, and Specs

Image of HC-05 Bluetooth ModuleDesign with HC-05 Bluetooth Module in Cirkit Designer

Introduction

The HC-05 Bluetooth Module is a wireless communication module designed for short-range data transmission using Bluetooth technology. It is widely used in embedded systems, IoT projects, and robotics to enable seamless communication between devices. The module supports both master and slave modes, making it versatile for various applications.

Explore Projects Built with HC-05 Bluetooth Module

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Arduino UNO Bluetooth-Controlled Relay System: A project utilizing HC-05 Bluetooth Module in a practical application
Arduino UNO Bluetooth-Controlled Relay System

This circuit features an Arduino UNO microcontroller interfaced with an HC-05 Bluetooth module for wireless communication. It also includes two 5V two-channel relay modules, which are connected to the Arduino for controlling external devices. The setup allows for remote control of devices via Bluetooth.

Open Project in Cirkit Designer
Image of Raspberry Pi Pico-Based Navigation Assistant with Bluetooth and GPS: A project utilizing HC-05 Bluetooth Module in a practical application
Raspberry Pi Pico-Based Navigation Assistant with Bluetooth and GPS

This circuit features a Raspberry Pi Pico microcontroller interfaced with an HC-05 Bluetooth module for wireless communication, an HMC5883L compass module for magnetic field measurement, and a GPS NEO 6M module for location tracking. The Pico is configured to communicate with the HC-05 via serial connection (TX/RX), with the compass module via I2C (SCL/SDA), and with the GPS module via serial (TX/RX). Common power (VCC) and ground (GND) lines are shared among all modules, indicating a unified power system.

Open Project in Cirkit Designer

Common Applications and Use Cases

Technical Specifications

The HC-05 module is a compact and reliable Bluetooth device with the following key specifications:

Parameter Value
Bluetooth Version 2.0 + EDR (Enhanced Data Rate)
Operating Voltage 3.3V to 5V
Operating Current 30mA (typical)
Communication Range Up to 10 meters (unobstructed)
Baud Rate (Default) 9600 bps
Modes Master and Slave
Frequency Band 2.4 GHz ISM band
Dimensions 37.5mm x 15.2mm x 2.7mm

Pin Configuration and Descriptions

The HC-05 module has six pins, as described in the table below:

Pin Name Description
1 EN (Key) Enables AT command mode when pulled HIGH. Leave LOW for normal operation.
2 VCC Power supply input (3.3V to 5V).
3 GND Ground connection.
4 TXD Transmit data pin. Sends serial data to the connected device.
5 RXD Receive data pin. Receives serial data from the connected device.
6 STATE Indicates the connection status (HIGH when connected, LOW when disconnected).

Usage Instructions

How to Use the HC-05 in a Circuit

  1. Powering the Module: Connect the VCC pin to a 3.3V or 5V power source and the GND pin to ground.
  2. Serial Communication: Connect the TXD pin of the HC-05 to the RX pin of your microcontroller and the RXD pin of the HC-05 to the TX pin of your microcontroller. Use a voltage divider if your microcontroller operates at 5V logic levels to avoid damaging the RXD pin.
  3. AT Command Mode: To configure the module, pull the EN (Key) pin HIGH and communicate with the module using AT commands via a serial terminal.
  4. Normal Operation: Leave the EN (Key) pin LOW for standard Bluetooth communication.

Important Considerations and Best Practices

Example: Connecting HC-05 to Arduino UNO

Below is an example of how to use the HC-05 module with an Arduino UNO to send and receive data via Bluetooth.

Circuit Connections

Arduino Code

#include <SoftwareSerial.h>

// Define RX and TX pins for SoftwareSerial
SoftwareSerial BTSerial(10, 11); // RX = Pin 10, TX = Pin 11

void setup() {
  Serial.begin(9600); // Start Serial Monitor communication
  BTSerial.begin(9600); // Start Bluetooth communication at 9600 bps

  Serial.println("HC-05 Bluetooth Module Test");
  Serial.println("Send data from your Bluetooth device to see it here.");
}

void loop() {
  // Check if data is available from Bluetooth
  if (BTSerial.available()) {
    char data = BTSerial.read(); // Read data from HC-05
    Serial.print("Received: ");
    Serial.println(data); // Print received data to Serial Monitor
  }

  // Check if data is available from Serial Monitor
  if (Serial.available()) {
    char data = Serial.read(); // Read data from Serial Monitor
    BTSerial.write(data); // Send data to HC-05
  }
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. Module Not Responding to AT Commands

    • Ensure the EN (Key) pin is pulled HIGH.
    • Verify the baud rate is set to 9600 bps (or 38400 bps for some modules in AT mode).
    • Check the wiring and ensure proper connections.
  2. Bluetooth Device Cannot Pair with HC-05

    • Confirm the module is powered and in discoverable mode (LED blinking rapidly).
    • Verify the pairing code (default is "1234" or "0000").
    • Ensure the device is within the module's range.
  3. Data Transmission Issues

    • Check the TXD and RXD connections. Ensure the RXD pin is not receiving more than 3.3V.
    • Verify that both devices are using the same baud rate.
  4. Weak Signal or Connection Drops

    • Avoid placing the module near interference sources like Wi-Fi routers or metal objects.
    • Ensure the power supply is stable and sufficient.

FAQs

Q: Can the HC-05 module work with 5V logic levels?
A: The TXD pin can output 5V logic, but the RXD pin is designed for 3.3V logic. Use a voltage divider or level shifter for safe operation.

Q: How do I switch between master and slave modes?
A: Use AT commands to configure the module. For example, send AT+ROLE=1 to set it as a master and AT+ROLE=0 to set it as a slave.

Q: What is the difference between HC-05 and HC-06?
A: The HC-05 supports both master and slave modes, while the HC-06 operates only in slave mode.

Q: Can I use the HC-05 with a Raspberry Pi?
A: Yes, the HC-05 can be connected to a Raspberry Pi via its UART pins. Ensure proper voltage level shifting for the RXD pin.