Contents

Bluetooth HC-05(06) module



The communication module HC-05 and HC-06 allows to control of a remote microcontroller device via Bluetooth. Implemented support for all Arduino board. The source code of GUI can be download for the Arduino IDE or FLProg IDE.

Chip HC-05(06) of Bluetooth module solderes to the module board containing DC-DC converter and level conversion RX and TX signals. Chip HC-05 (06) needs power of 3.3V, but thanks to the converters, you can connect this module to the boards power by 5V.

The module has the 4th (sometimes 6) pins: two pins for the power supply: ground (GND) and +5V, and two pins of serial interface: the RX and TX.



Power: 5V (can be powered from the Arduino board);

Conection: Serial (UART), SoftwareSerial, boud rate 9600.


To use the HC-05(06) module to select this module in the properties configuration settings.


The module is connected to the microcontroller board via serial interface. You can choose to use software serial or hardware serial. Module connection option is selected in the module interface settings of editor.

Connection via Software Serial

It allows to connect the module to an arbitrary microcontroller pins. The pins used must be select in the module interface settings of editor. Also in the settings must be select the baud rate for serial port. Module HC-05(06) set to a default speed of 9600 baud. The baud rate can be changed by AT commands (requires special knowledge), but if you do not change the speed, set the default value 9600 baud.


There are some limitations on the use of the RX pin for Arduino boards. Limitations associated with do not support to pins interrupt of the microcontroller.

  • On Arduino RX doesn't work on pin 13;
  • On Mega and Mega2560 only the following can be used for RX: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8(62), A9(63), A10(64), A11(65), A12(66), A13(67), A14(68), A15(69);
  • On Leonardo and Micro only the following can be used for RX: 8, 9, 10, 11, 14, 15, 16;

Also, when using SoftwareSerial you should take the following limitations:

  • No ability to work at high baud rates. It is not recommended to use a baud rate of more than 38400.
  • Some libraries, which also uses interrupt may not work correctly. For example Servo library, the servos will twitch.

Example of HC-05(06) module connecting via SoftwareSerial by pins 2(RX) and 3 (TX) on the picture. Please note that you must connect to pins the cross hairs, pin 2(RX) of Arduino to TX of HC-05(06) module and pin 3(TX) to the RX pin of module.


Connection via Hardware Serial

It allows to connect the module to the microcontroller pins, supporting one of the hardware serial ports. For different Arduino boards are different ports and contacts.

  • Arduino UNO and Nano: Serial (RX-0, TX-1);
  • Arduino MEGA and MEGA2560: Serial (RX-0, TX-1), Serial1 (RX-19 и TX-18), Serial2 (RX-17 и TX-16), Serial3 (RX-15 и TX-14);

Which port to use, and therefore the pins should be connected to the module, you must select in interface settings of editor. It should also be borne in mind that for Arduino boards Serial port enabled for the microcontroller programming, and if you decide to use this port, you must disconnect the HC-05(06) module when programming it. A good solution is to use the boards Arduino MEGA any port other than Serial.


Also in the settings must be select the baud rate for serial port. Module HC-05(06) set to a default speed of 9600 baud. The baud rate can be changed by AT commands (requires special knowledge), but if you do not change the speed, set the default value 9600 baud.

Example of HC-05(06) module connecting via HardwareSerial by pins 0(RX) and 1(TX) on the picture. Please note that you must connect to pins the cross hairs, pin 0(RX) of Arduino to TX of HC-05(06) module and pin 1(TX) to the RX pin of module.