Preview build — page text is a draft awaiting human review. Code badges come from real compiles. The flasher is real but not yet hardware-tested; the Playground is still a preview.

HC-05 Bluetooth serial module

HC-05 classic Bluetooth serial module: EN, VCC, GND, TXD, RXD, STATE pins, the 1 kΩ/2 kΩ divider on RX, default PIN and AT-command mode.

UART

Community draft — report a mistake

CategoryCommunication
InterfaceUART
Voltage3.6–6 V on VCC (on-board 3.3 V regulator) — power from 5 V
Typical price₹280

3.3 V or 5 V? The module runs at 3.3 V logic. Its TXD connects straight to any board’s RX. Its RXD must not see 5 V: from an Uno or Nano TX, use a 1 kΩ / 2 kΩ divider. From ESP32 or Pico, connect directly.

The HC-05 adds classic Bluetooth to any board with a serial port. Once paired with a phone (default PIN 1234, sometimes 0000), whatever the phone app sends arrives on the module’s TXD as plain serial data — the easiest way to build a phone-controlled robot car or switchboard.

It’s classic Bluetooth (SPP), not Bluetooth Low Energy. Android serial terminal apps work; iPhones don’t support it.

Protect the RXD pin from 5 V: a 1 kΩ resistor from the Arduino’s TX to RXD, and a 2 kΩ resistor from RXD to GND, gives about 3.3 V.

Pinout

PinWhat it does
ENHold HIGH while powering up to enter AT-command mode (also called KEY)
VCCSupply, 3.6–6 V — use 5 V
GNDGround
TXDSerial out (3.3 V) — to the board’s RX
RXDSerial in (3.3 V logic) — from the board’s TX through a divider on 5 V boards
STATEHIGH when a device is connected

Use it with

Common errors

Can’t find it on an iPhone

The HC-05 is classic Bluetooth (SPP). iPhones don’t support SPP — use an Android phone, or a BLE module or an ESP32 instead.

Pairs, but no data arrives

TX and RX aren’t crossed, or the baud rate is wrong. Data mode defaults to 9600 baud.

AT commands get no reply

AT mode needs EN held HIGH (or the button pressed) while powering up; the LED then blinks slowly every 2 s. AT mode runs at 38400 baud and needs “Both NL & CR”.

Upload fails while the module is connected

On an Uno, D0/D1 are shared with USB. Disconnect the module while uploading, or use SoftwareSerial on other pins.

↑↓ to move · Enter to open