Component · Comms

HC-05 Bluetooth Module

The HC-05 adds Bluetooth serial to a robot—pair it with your phone to drive the robot or stream data, using the same TX/RX pins as a wired link.

What it is

The HC-05 is the simplest way to make a robot wireless. It’s a Bluetooth module that behaves like a serial cable with no cable: your microcontroller reads and writes bytes on its TX/RX pins exactly as it would over USB, but the other end is a phone or laptop paired over Bluetooth. Send an F from a phone app and your robot drives forward—no Wi-Fi, no network, no accounts.

Labelled diagram of an HC-05 Bluetooth module: a blue breakout board carrying a metal-shielded Bluetooth radio can with corner rivets, a zig-zag PCB antenna, a status LED, and a 6-pin header (EN, VCC, GND, TXD, RXD, STATE) along the bottom for serial connection.
The module turns a Bluetooth link into a plain serial connection—cross TX/RX to the microcontroller and it looks just like a wired cable. Download SVG

How it works

The HC-05 implements the Bluetooth Serial Port Profile (SPP). Once paired, everything the module receives over the air appears on its TX pin, and everything you send to its RX pin goes over the air to the paired device. Your code just uses the serial port—Serial.read() / Serial.print()—and the wireless link is invisible. Configuration (name, baud, master/slave role) is done with AT commands in a separate command mode, but for most robots the defaults work out of the box.

When to use it

Reach for an HC-05 when you want to command or monitor a robot without a tether:

  • Phone-controlled robots — a Bluetooth app sends drive commands the robot reads over serial and turns into motor control.
  • Live telemetry — stream sensor values or odometry back to a laptop while the robot runs.
  • Wireless tuning — adjust parameters on the fly instead of re-flashing.

If the robot already uses an ESP32, you don’t need an HC-05—the ESP32 has Bluetooth and Wi-Fi built in. The HC-05 is the add-on that gives an Arduino Uno the same wireless trick.

Wiring and gotchas

  • Cross the serial lines: module TX → board RX, module RX → board TX. Getting this backwards is the #1 “it won’t connect” cause.
  • Divide the RX pin down to 3.3 V from a 5 V board like the Uno.
  • Free the hardware serial port while uploading code, or use a software-serial pin pair—the module and the USB programmer can’t share the Uno’s one hardware UART.
  • Pair first (PIN usually 1234/0000); the onboard LED shows connection state.

Explore the graph

Used in these builds

Projects, learning paths, and simulators that include the HC-05 Bluetooth Module.

Compare

Alternatives

Questions

HC-05 Bluetooth Module FAQ

What is an HC-05?

The HC-05 is a Bluetooth module that turns a wireless connection into a plain serial (UART) link. To your microcontroller it looks exactly like a wired serial cable—you read and write bytes on TX/RX—except the other end is your phone or PC over Bluetooth. It's the easiest way to control a robot wirelessly.

How do you connect an HC-05 to an Arduino?

Power VCC and GND, then cross the serial lines—module TX to Arduino RX, module RX to Arduino TX. Because the HC-05's RX pin is 3.3 V, drop the Arduino's 5 V TX with a voltage divider. Then anything you print over serial goes wirelessly to the paired phone, and vice versa.

What is the range of the HC-05?

About 10 metres line of sight—it's a Class 2 Bluetooth device. Walls and interference cut that down. That's plenty for driving a robot around a room from your phone, but for long-range control you'd move to Wi-Fi or a dedicated radio.

How do you pair HC-05 modules?

To pair with a phone, power the module, open your phone's Bluetooth settings, select the HC-05, and enter the PIN (usually 1234 or 0000). To pair two HC-05s to each other, set one as master and one as slave with AT commands and bind them by address.

How do you program the HC-05?

The HC-05 has two modes. In data mode it simply passes serial bytes through. To change its name, baud rate, or master/slave role, put it in AT command mode—hold the EN/KEY pin high at power-up—and send AT commands over serial.

Further reading

References