Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

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

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

Introduction

The HC-05 Bluetooth Module is a wireless communication module designed for short-range data transfer 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!
Arduino UNO Bluetooth Communication Module
Image of HC-05 Connection with arduino: A project utilizing HC-05 Bluetooth Module in a practical application
This circuit consists of an Arduino UNO microcontroller connected to an HC-05 Bluetooth module. The Arduino provides power to the Bluetooth module and facilitates serial communication between the two devices, enabling wireless data transmission.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO Bluetooth-Controlled Relay System
Image of home automaton: A project utilizing HC-05 Bluetooth Module in a practical application
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.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO and HC-05 Bluetooth Communication Interface
Image of blutooth: A project utilizing HC-05 Bluetooth Module in a practical application
This circuit connects an HC-05 Bluetooth Module to an Arduino UNO for wireless communication. The HC-05's VCC and GND are connected to the Arduino's 5V and GND for power. The HC-05's TXD and RXD pins are connected to the Arduino's D11 and D10 pins, respectively, allowing for serial communication between the two devices.
Cirkit Designer LogoOpen Project in Cirkit Designer
Raspberry Pi Pico-Based Navigation Assistant with Bluetooth and GPS
Image of sat_dish: compass example: A project utilizing HC-05 Bluetooth Module in a practical application
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.
Cirkit Designer LogoOpen Project in Cirkit Designer

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 HC-05 Connection with arduino: A project utilizing HC-05 Bluetooth Module in a practical application
Arduino UNO Bluetooth Communication Module
This circuit consists of an Arduino UNO microcontroller connected to an HC-05 Bluetooth module. The Arduino provides power to the Bluetooth module and facilitates serial communication between the two devices, enabling wireless data transmission.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of home automaton: 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.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of blutooth: A project utilizing HC-05 Bluetooth Module in a practical application
Arduino UNO and HC-05 Bluetooth Communication Interface
This circuit connects an HC-05 Bluetooth Module to an Arduino UNO for wireless communication. The HC-05's VCC and GND are connected to the Arduino's 5V and GND for power. The HC-05's TXD and RXD pins are connected to the Arduino's D11 and D10 pins, respectively, allowing for serial communication between the two devices.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of sat_dish: compass example: 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.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Wireless communication between microcontrollers and smartphones
  • Remote control of devices via Bluetooth
  • Data logging and monitoring in IoT systems
  • Robotics and automation projects
  • Wireless sensor networks

Technical Specifications

The HC-05 module is a robust and easy-to-use Bluetooth device. Below are its key technical details:

Parameter Specification
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 pin. Connect to 3.3V or 5V.
3 GND Ground pin. Connect to the ground of the circuit.
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 the 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 HC-05.
  3. AT Command Mode: To configure the module, pull the EN pin HIGH and send AT commands via a serial terminal.
  4. Normal Operation: Leave the EN pin LOW for standard Bluetooth communication.

Important Considerations and Best Practices

  • Voltage Levels: The HC-05 operates at 3.3V logic levels. Use a voltage divider or level shifter for the RXD pin if your microcontroller uses 5V logic.
  • Baud Rate: Ensure the baud rate of your microcontroller matches the HC-05's default baud rate (9600 bps) or the configured baud rate.
  • Connection Status: Use the STATE pin to monitor the connection status of the module.
  • Avoid Interference: Operate the module in an environment with minimal RF interference for optimal performance.

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

  • HC-05 VCC → Arduino 5V
  • HC-05 GND → Arduino GND
  • HC-05 TXD → Arduino RX (Pin 0)
  • HC-05 RXD → Arduino TX (Pin 1) (Use a voltage divider if needed)

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 via Bluetooth to see it here.");
}

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

  // Check if data is sent from Serial Monitor
  if (Serial.available()) {
    char data = Serial.read(); // Read the data from Serial Monitor
    BTSerial.write(data); // Send the data via Bluetooth
    Serial.print("Sent: ");
    Serial.println(data); // Print the sent data to Serial Monitor
  }
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. Module Not Responding to AT Commands

    • Ensure the EN pin is pulled HIGH to enable AT command mode.
    • Verify the baud rate of the serial terminal matches the module's AT command baud rate (default: 38400 bps).
  2. No Bluetooth Connection

    • Check if the module is powered correctly (LED should blink).
    • Ensure the device you are pairing with is discoverable and within range.
  3. Data Transmission Issues

    • Verify the TXD and RXD connections are correct.
    • Use a voltage divider for the RXD pin if your microcontroller operates at 5V logic.
  4. Unstable Connection

    • Minimize RF interference by keeping the module away from other wireless devices.
    • Ensure a stable power supply to the module.

FAQs

Q: Can the HC-05 module be used with 5V logic microcontrollers?
A: Yes, but you must use a voltage divider or level shifter for the RXD pin to avoid damaging the module.

Q: How do I change the module's name or baud rate?
A: Enter AT command mode by pulling the EN pin HIGH and use AT commands like AT+NAME or AT+UART.

Q: What is the difference between master and slave modes?
A: In master mode, the HC-05 initiates connections with other devices. In slave mode, it waits for incoming connections.

Q: Can I use the HC-05 module for audio transmission?
A: No, the HC-05 is designed for serial data communication and does not support audio transmission.