Hey fellas, in this post we will see what are the AT commands and why they are necessary for HC-05 Bluetooth module. I have presented a detailed discussion on HC-05, its interface with Arduino UNO and their simulation in Proteus in my previous post. If you are not familiar with the subject it is highly recommended to go through my previous post before reading this post.

HC-05 AT Commands and Comparison of HC-05 and HC-06

[otw_is sidebar=otw-sidebar-1] HC-05 is the Bluetooth module which perks up any embedded product with wireless connectivity that can be used either for data communication, control or configuring the device. HC-05 communicates with any microcontroller over UART (Universal Asynchronous Receiver / Transmitter), microcontroller tell the Bluetooth module to perform a typical task through a special set of commands which are AT commands, these commands are the subject of this post.

 AT commands



AT commands, (AT comes from ATtention) are commands that are used to control modems from any other microcontroller or processor. AT commands are commonly used in GSM / GPRS modules, let us understand AT commands with the help of an example. Assume that the Arduino UNO is attached to the GSM module over UART and system is programmed in such a way that when a certain event occurs it sends SMS to the remote user, so when that event occurs Arduino sends instruction to the GSM module / modem to send a particular SMS to the remote user. This instruction which commands the GSM module to send SMS is AT command.

Likewise HC-05 Bluetooth module functions, it receives the AT commands from Arduino UNO connected to the UART and perform the action accordingly.

HC 05 AT commands:

Following is the list of the HC-05 AT commands along with their functions

AT Commands Functions
AT+VERSION? Get the software version
AT+ORGL Restore default status
AT+ADDR? Get module Bluetooth address
AT+NAME? /Inquire device’s name
AT+RNAME?Param1 Inquire remote Bluetooth device’s name
AT+ CLASS? Inquire remote Bluetooth device’s name
AT+IAC=Param1 Set inquire access code
AT+ INQM? Inquire access mode
AT+ PSWD? Inquire passkey
AT+UART=Param1, Param2, Param3 Set serial parameter
AT+CMODE=Param1 Set connection mode
AT+BIND=Param1 Set – bind Bluetooth address
AT+POLAR=Param1,Param2 Set – drive indication of LED and connection status
AT+PIO=Param1,Param2 Set PIO single port output
AT+MPIO=Param1 Set PIO multiple port output
AT+MPIO? Inquire PIO port input
AT+IPSCAN? Inquire page scan and inquire scan parameter
AT+SNIFF? Inquire—SNIFF energy parameter
AT+SENM=Param1, Param2 Set safe and encryption mode


Comparison between HC-05 and HC-06

HC-06 is a successor of the HC-05 Bluetooth Module, thus both modules have similar fundamental working. Both the module interface with the Arduino development board using UART, both modules operate on same voltage level, both have same transmit power. Both HC-05 and HC-06 have same internal architecture, the primary difference between HC-05 and HC-06 is that, HC-05 can be used in both Master or Slave configuration that is it can initiate the connection or accept the connection, but on the other hand HC-05 can only be used as a slave, that it only connects to the master device and cannot initiate the connection itself.