I use HC-05 and HC-06 Bluetooth modules for short distance, high speed wireless links. They can be connected to computers, but I find they are great for connecting to each other. These are the settings I use for each:


To enter configuration mode on HC-05, you must short pin 34 (key) to VCC on startup. You can then remove the short, and you are in AT mode. When sending AT commands to HC-05, be sure to send CR+LF after each command.

I do the following commands to set it into master mode (don't include the comments of course):

AT+UART=38400,1,0            //38400 baud rate 
AT+ROLE=1                    //Master mode 
AT+PSWD=4242                 //Bluetooth PIN when connecting
AT+CMODE=1                   //Connect to any device with same pin 
AT+NAME=DigitalCave          //Not needed 


The HC-06 modules are configured in slave mode. The ones I have are always in AT command mode when not paired, and there must be no CR / LF after commands (e.g. just send the two chars 'AT', not the 4 chars 'AT\r\n').

I use the following commands:

AT+BAUD=6                //Will respond "OK38400" to verify baud rate
AT+NAME=DigitalCave      //Not needed
AT+PIN=4242              //Must match master PSWD setting

HC-06 (Newer Version?)

I just picked up a couple new HC-06 modules from eBay, and they seem to be slightly different. First thing I noticed was that they have a blue light which is flashing at about 5Hz. They also seem to have a different command set, although like the other HC-06 modules they are already in AT command mode and they do not use CR / LF after commands. They seem to be running at 9600 baud initially.

When I run the command "AT+VERSION" I get the string "hc01.comV2.0" returned. Searching Google for that sent me to the Chinese datasheet at http://www.wavesen.com/mysys/db_picture/news3/201632290826101.pdf.

AT+BAUD6          //Will respond "OK38400" to verify baud rate.  Reconnect at new baud rate now.
AT+NAMEDigitalCave         //Will respond 'OKsetname'.  Not required.
AT+PIN4242                   //Will respond 'OKsetpin'
AT+VERSION                  //This responds with 'hc01.comV2.0'

In short, from the datasheet it appears that the biggest difference is that you don't send the equals sign. So, for instance, to set the baud, type "AT+BAUD6" instead of "AT+BAUD=6".

They also seem to support some additional modes, including master mode ("AT+ROLE=S"; yes, in this case they use an equals sign). (Note that I have not tried this yet...)

When the bluetooth module is paired, the 5Hz flashing LED goes solid. Apparently there is another command which can enable / disable the LED, but I kinda like it on.


I have just started playing with BLE (Bluetooth 4 low energy) for use with smart phones, and am experimenting with the HM-10 modules. These have the same pinout as the HC-05 / HC-06 (which is nice, since my FTDI breakout boards work for them). The AT commands are also similar. Like the HC-05, this module appears to require CR+LF at the end of each command, but like the HC-06 does not need any jumpers to key to get into AT mode. The settings I used are below:

AT+HELP                    //Responds with list of valid commands
AT+NameDigitalCave           //Will respond OK\n+NAME=DigitalCave
AT+Version                   //Mine is +VERSION=Firmware V3.0.6,Bluetooth V4.0 LE
AT+BAUD6                    //Trial and error showed that BUAD6 is 38400.
AT+PIN424242                    //Not sure if this works?