Last updated on March 26th, 2024 at 06:02 pm
HC-05 Bluetooth module is a very easy-to-use Bluetooth to serial converter that connects microcontrollers (like Arduino) to other Bluetooth-enabled devices(like a smartphone). This allows the devices to communicate wirelessly with each other.
This module follows the Bluetooth SPP (Serial Port Protocol) and can be used as both master or slave configuration.

Alternativest to HC-05 You can use HC-06, HC-08 or RN-42 in place of HC-05. Though ESP32 is not a direct replacement, it is an excellent choice for bluetooth projects.
Table of Contents
HC-05 Bluetooth module pinout

PIN NO. | Pin Name | Pin Description |
1. | KEY/En | Connect this pin with the RXD pin of the Microcontroller. This pin transmits Serial data (wireless signals received by the Bluetooth module are converted by the module and transmitted out serially on this pin) |
2. | VCC | Used to power the Bluetooth module. Give 5V / 3.3 V to this Pin. |
3. | GND | Connect this pin with the RXD pin of the Microcontroller. This pin transmits Serial data (wireless signals received by the Bluetooth module are converted by the module and transmitted out serially on this pin) |
4. | TXD | Connect this pin with the RXD pin of the Microcontroller. This pin transmits Serial data (wireless signals received by the Bluetooth module are converted by module and transmitted out serially on this pin) |
5. | RXD | Connect this pin to the TXD pin of the Microcontroller. The HC-05 Bluetooth module receives the data from this pin and then transmits it wirelessly. |
6. | STATE | It is used to check if the module is connected or not. It acts as a status indicator. |
Specifications
Image shown below highlights the different parts of this module.

**Image Source: Electrosome
- Bluetooth protocol: Bluetooth Specification v2.0+EDR (Enhanced Data Rate)
- Frequency: 2.4GHz ISM band
- Modulation: GFSK (Gaussian Frequency Shift Keying)
- Emission power: ≤4dBm, Class 2
- Sensitivity: ≤-84dBm at 0.1% BER
- Speed: Asynchronous communication: 2.1Mbps (Max) / 160 kbps, Synchronous communication: 1Mbps/1Mbps
- Security: Authentication and encryption
- Profiles: Bluetooth serial port
- Supply Voltage: +3.3V to 6.0 V
- Supply Current: 30mA
- Working temperature: -20 ~ +75Centigrade
- Dimension: 26.9mm x 13mm x 2.2 mm
- HC-05 Bluetooth module follows the IEEE 802.15.1 standardized protocol, through which one can build a wireless Personal Area Network (PAN). It uses frequency-hopping spread spectrum (FHSS) radio technology to send data over the air.
Working of HC-05 bluetooth module
It can be used in two modes of operation: Command Mode and Data Mode.
Command mode
In Command Mode, we can communicate with the Bluetooth module through AT Commands to configure various settings and parameters of the Module. This includes the firmware information, changing the Baud Rate, changing the module name, etc.
We can also use it to set HC-05 as a master or slave. To select either of the modes, we need to activate the Command Mode and send the correct AT Commands. The baud rate is 38400bps in command mode.
Command | Description | Response |
AT | Checking communication | OK |
AT+PSWD=XXXX | Set Password e.g. AT+PSWD=4567 | OK |
AT+NAME=XXXX | Set Bluetooth Device Name e.g. AT+NAME=MyHC-05 | OK |
AT+UART=Baud rate, stop bit, parity bit | Change Baud rate e.g. AT+UART=9600,1,0 | OK |
AT+VERSION? | Send details of settings done by the manufacturer | +Version: XX OKe.g. +Version: 2.0 20130107 OK |
AT+ORGL | Send detail of settings done by the manufacturer | Parameters: device type, module mode, serial parameter, passkey, etc. |
Data mode
In this mode, the module is used for communicating with other Bluetooth devices i.e. data transfer happens in this mode. Exchange of data between devices. The baud rate is 9600bps in data mode.
HC-05 default settings
- Default Bluetooth name: “HC-05”
- Default password: 1234 or 0000
- Default communication: Slave Mode
- Default mode: Data Mode
- Baud rate: 9600 bps
- Command mode baud rate: 38400 bps
- Data Mode Settings: 8 data bits, 1 stop bit, No Parity
How to use HC-05 Bluetooth module with Arduino?
You need the following components to make your first Bluetooth-enabled project using HC-05 with Arduino.
- LED
- 200-ohm resistor
- HC-05 Bluetooth module
- Arduino UNO
- Breadboard
- Jumper wires
Connect all these components as shown below.
- Connect an LED to an Arduino board with the help of jumper wires.
- Connect the Bluetooth module to the Arduino with the help of jumper wires. Except for the first and the last pin, all other pins need to be connected to the Arduino.
- Ground and power pins of HC-05 to Ground and 3.3V pins of Arduino, respectively.
- Tx of module to RX of Arduino and vice versa.
** Full tutorial here: Arduino Remote controlled LED using HC-05
Datasheet


Download the full datasheet from this link: HC-05 Datasheet
Where to buy?
FAQs
What is the PIN code for HC-05?
PIN code or default password of HC-05 is 1234 or 0000
What is the state pin in HC-05?
The state pin serves to indicate its current operational status, such as paired or unpaired, connected or disconnected. It outputs a signal that can be monitored by microcontrollers to facilitate communication and control in embedded systems.
Can HC-05 run at 3.3 V?
Yes, it can operate at 3.3V, making it compatible with many microcontrollers and devices that use lower voltage levels.