A little curiosity. A whole lot of making.Robotics, CNC & connected ideas
robodatech.
← Learning library
Build & understand

Bluetooth Serial Module: HC-05 / HC-06

A Bluetooth serial module receives characters from a phone or computer and passes them to the microcontroller through serial pins. Many classroom kits use HC-05 or HC-06; if your board label says HC-04, verify its datasheet and pinout before wiring.

From information to actionMCUPROGRAM + MEMORYInputsOutputsRead sensors → compute → update outputs → repeat
Concept illustration. Check the component datasheet before wiring.

Working Principle

A Bluetooth serial module receives characters from a phone or computer and passes them to the microcontroller through serial pins. Many classroom kits use HC-05 or HC-06; if your board label says HC-04, verify its datasheet and pinout before wiring.

Step by Step

  1. Pair the phone with the Bluetooth module.
  2. Phone sends a command such as F, B, L, R, or S.
  3. Module outputs serial data to the controller RX pin.
  4. Controller program maps the command to motor action.
From information to actionMCUPROGRAM + MEMORYInputsOutputsRead sensors → compute → update outputs → repeat
Concept illustration; component appearance and scale are simplified.

Practical learning notes

Key idea

Most classroom robot kits use HC-05 or HC-06 serial Bluetooth modules. If a board is labeled HC-04, verify its pinout and mode before wiring.

Signal logic

Bluetooth radio is not read directly by Arduino. The module converts wireless packets into UART serial data on TXD and RXD pins.

Safe wiring

HC-05 TXD can go to Nano RX. Nano TX should go to module RXD through a resistor divider because RXD is usually 3.3V logic.

Classroom check

Open Serial Monitor or a phone terminal and confirm one command character produces one robot action.

ASCII Table and Serial Data

Source code and build tools are available in the protected platform workspace.

bps means bits per second. At 9600 bps, the serial line sends about 9600 high/low bit decisions each second. A full command character also has start and stop bits, so classroom control is fast enough for F, B, L, R, and S robot commands.

Common Command Map

Phone sendsASCIIRobot action
F0x46Move forward
B0x42Move backward
L0x4CTurn left
R0x52Turn right
S0x53Stop motors

Bluetooth Frequency and BPS

Classic Bluetooth modules such as HC-05 commonly use the 2.4 GHz ISM band from about 2.402 GHz to 2.480 GHz. Bluetooth hops across channels to reduce interference from Wi-Fi, other Bluetooth devices, and classroom electronics.

The radio link carries wireless packets. The module then exposes simple serial data to Arduino. For beginner robots, 9600 bps is common because it is reliable and easy to debug in Serial Monitor.

From information to actionMCUPROGRAM + MEMORYInputsOutputsRead sensors → compute → update outputs → repeat
Concept illustration; component appearance and scale are simplified.

Wiring Diagram

Module PinArduino NanoNote
VCC5VMost breakout boards accept 5V power. Check your board label.
GNDGNDMust share common ground with Nano and motor driver.
TXDD2 RXModule transmits data to Arduino.
RXDD3 TX through dividerUse a resistor divider because module RX is 3.3V logic.
KEY/ENNot connected for normal robot useUsed only for AT setup on some boards.
Connect a sensor to a controllerControllerSensorRequestResultRated supplyCommon GND
Signal and power overview. Exact connections are listed below.
Connection reference for this build
  • HC-05 / HC-04 serial wiring with Arduino Nano
  • +5V rail
  • Common GND rail
  • Arduino Nano
  • D2 RX <- HC TXD
  • D3 TX -> divider -> HC RXD
  • 5V -> VCC
  • GND -> GND
  • HC-05
  • VCC
  • GND
  • TXD
  • RXD
  • TXD sends data to Nano D2
  • D3 through divider to RXD
  • divider
  • Use divider for 5V Nano TX to 3.3V RXD

Pulse to Data

The Arduino does not see the 2.4 GHz radio directly. The Bluetooth module receives radio packets, decodes them, and outputs a serial waveform on TXD. Arduino samples that waveform at the selected bps rate and rebuilds bytes such as F or S.

In serial UART, idle is HIGH, a start bit goes LOW, data bits follow, and a stop bit returns HIGH. The pattern below is a simplified classroom representation.

Timing carries informationUARTStartData bitsStopIdle high • start low • data • stop highExample waveform; not a specific command byte.
Concept illustration; component appearance and scale are simplified.

Take the next step

Where this is used

Explore real robotics applications, from mobile robots to inspection and joint motion. Define a measurable target and test one change at a time.

Good ideas start here.

Free robotics lessons, CNC build notes and product updates. Confirm your email to join. Unsubscribe anytime.