Difference between revisions of "Serial Port Bluetooth Module (Master/Slave) : HC-05"

From ITEAD Wiki
Jump to: navigation, search
(Created page with "==Overview== ==Specifications== ===Hardware Features=== ===Software Features=== ==Hardware== ==AT command Default== ==Download== ==Useful Links==")
 
m (Download)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
==Overview==
 
==Overview==
 +
[[File:HC-05.jpg|thumb|400px|right]]
 +
HC-05 module is an easy to use Bluetooth SPP (Serial Port Protocol) module, designed for
 +
transparent wireless serial connection setup.
 +
 +
Serial port Bluetooth module is fully qualified Bluetooth V2.0+EDR (Enhanced Data Rate) 3Mbps
 +
Modulation with complete 2.4GHz radio transceiver and baseband. It uses CSR Bluecore
 +
04-External single chip Bluetooth system with CMOS technology and with AFH(Adaptive
 +
Frequency Hopping Feature). It has the footprint as small as 12.7mmx27mm. Hope it will simplify
 +
your overall design/development cycle.
 +
 +
Go shopping [http://imall.iteadstudio.com/im120723009.html Serial Port Bluetooth Module (Master/Slave):HC-05 (IM120723009)]
  
 
==Specifications==
 
==Specifications==
  
 
===Hardware Features===
 
===Hardware Features===
 +
* Typical -80dBm sensitivity
 +
* Up to +4dBm RF transmit power
 +
* Low Power 1.8V Operation ,1.8 to 3.6V I/O
 +
* PIO control
 +
* UART interface with programmable baud rate
 +
* With integrated antenna
 +
* With edge connector
  
 
===Software Features===
 
===Software Features===
 +
* Default Baud rate: 38400, Data bits:8, Stop bit:1,Parity:No parity, Data control: has.
 +
Supported baud rate: 9600,19200,38400,57600,115200,230400,460800.
 +
* Given a rising pulse in PIO0, device will be disconnected.
 +
* Status instruction port PIO1: low-disconnected, high-connected;
 +
* PIO10 and PIO11 can be connected to red and blue led separately. When master and slave
 +
are paired, red and blue led blinks 1time/2s in interval, while disconnected only blue led
 +
blinks 2times/s.
 +
* Auto-connect to the last device on power as default.
 +
* Permit pairing device to connect as default.
 +
* Auto-pairing PINCODE:”0000” as default
 +
* Auto-reconnect in 30 min when disconnected as a result of beyond the range of connection.
  
 
==Hardware==
 
==Hardware==
 +
[[File:HC-051.jpg]]
 +
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''PIN Name'''
 +
| align="center" style="background:#f0f0f0;"|'''PIN #'''
 +
| align="center" style="background:#f0f0f0;"|'''PAD Type'''
 +
| align="center" style="background:#f0f0f0;"|'''Description'''
 +
| align="center" style="background:#f0f0f0;"|'''Note'''
 +
|-
 +
| GND||13,21,22||VSS||Ground Pot||
 +
|-
 +
| 3.3 VCC||12||3.3V||Integrated 3.3V(+) supply with On-chip linear regulator output within 3.15-3.3V||
 +
|-
 +
| AIO0||9||Bi-directional||Programmable input/output line||
 +
|-
 +
| AIO1||10||Bi-directional||Programmable input/output line||
 +
|-
 +
| AIO0||23||Bi-directional RX EN||Programmable input/output line, control output for LNA (if fitted)||
 +
|-
 +
| AIO1||24||Bi-directional TX EN||Programmable input/output line, control output for PA (if fitted)||
 +
|}
 +
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''PIN Name'''
 +
| align="center" style="background:#f0f0f0;"|'''PIN #'''
 +
| align="center" style="background:#f0f0f0;"|'''PAD Type'''
 +
| align="center" style="background:#f0f0f0;"|'''Description'''
 +
| align="center" style="background:#f0f0f0;"|'''Note'''
 +
|-
 +
| PIO2||25||Bi-directional||Programmable input/output line||
 +
|-
 +
| PIO3||26||Bi-directional||Programmable input/output line||
 +
|-
 +
| PIO4||27||Bi-directional||Programmable input/output line||
 +
|-
 +
| PIO5||28||Bi-directional||Programmable input/output line||
 +
|-
 +
| PIO6||29||Bi-directional||Programmable input/output line||
 +
|-
 +
| PIO7||30||Bi-directional||Programmable input/output line||
 +
|-
 +
| PIO8||31||Bi-directional||Programmable input/output line||
 +
|-
 +
| PIO9||32||Bi-directional||Programmable input/output line||
 +
|-
 +
| PIO10||33||Bi-directional||Programmable input/output line||
 +
|-
 +
| PIO11||34||Bi-directional||Programmable input/output line||
 +
|}
 +
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''PIN Name'''
 +
| align="center" style="background:#f0f0f0;"|'''PIN #'''
 +
| align="center" style="background:#f0f0f0;"|'''PAD Type'''
 +
| align="center" style="background:#f0f0f0;"|'''Description'''
 +
| align="center" style="background:#f0f0f0;"|'''Note'''
 +
|-
 +
| RESETB||11||CMOS input with weak internal pull-up||Reset of low.input debouncde so must be low for >5MS to cause a reset||
 +
|-
 +
| UART_RTS||4||CMOS output, tri-stable with weak internal pull-up||UART request to send, active low||
 +
|-
 +
| UART_CTS||3||CMOS input with weak internal pull-down||UART clear to send, active low||
 +
|-
 +
| UART_RX||2||CMOS input with weak internal pull-down||UART Data input||
 +
|-
 +
| UART_TX||1||CMOS output, tri-stable with weak internal pull-up||UART Data output||
 +
|-
 +
| SPI_MOSI||17||CMOS input with weak internal pull-down||Serial peripheral interface data input||
 +
|}
 +
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''PIN Name'''
 +
| align="center" style="background:#f0f0f0;"|'''PIN #'''
 +
| align="center" style="background:#f0f0f0;"|'''PAD Type'''
 +
| align="center" style="background:#f0f0f0;"|'''Description'''
 +
| align="center" style="background:#f0f0f0;"|'''Note'''
 +
|-
 +
| SPI_CSB||16||CMOS input with weak internal pull-up||Chip select for serial peripheral interface, active low||
 +
|-
 +
| SPI_CLK||19||CMOS input with weak internal pull-down||Serial peripheral interface clock||
 +
|-
 +
| SPI_MISO||18||CMOS input with weak internal pull-down||Serial peripheral interface data output||
 +
|-
 +
| USB_-||15||Bi-directional||||
 +
|-
 +
| USB_+||20||Bi-directional||||
 +
|-
 +
| NC||14||||||
 +
|-
 +
| PCM_CLK||5||Bi-directional||Synchronous PCM data clock||
 +
|-
 +
| PCM_OUT||6||CMOS output||Synchronous PCM data output||
 +
|-
 +
| PCM_IN||7||CMOS input||Synchronous PCM data input||
 +
|-
 +
| PCM_SYNC||8||Bi-directional||Synchronous PCM data strobe
 +
|}
  
 
==AT command Default==
 
==AT command Default==
 +
How to set the mode to server (master):
 +
 +
1. Connect PIO11 to high level.
 +
 +
2. Power on, module into command state.
 +
 +
3. Using baud rate 38400, sent the “AT+ROLE=1\r\n” to module, with “OK\r\n”
 +
means setting successes.
 +
 +
4. Connect the PIO11 to low level, repower the module, the module work as server
 +
(master).
 +
 +
AT commands: (all end with \r\n)
 +
===1. Test command:===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT||OK||-
 +
|}
 +
 +
===2. Reset===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+RESET||OK||-
 +
|}
 +
 +
===3. Get firmware version===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+VERSION?||+VERSION:<Param> OK ||Param : firmware version
 +
|}
 +
 +
'''Example:'''
 +
 +
AT+VERSION?\r\n
 +
 +
+VERSION:2.0-20100601
 +
 +
OK
 +
 +
===4. Restore default===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+ORGL||OK||-
 +
|}
 +
 +
'''Default state:'''
 +
 +
Slave mode, pin code :1234, device name: H-C-2010-06-01 ,Baud
 +
38400bits/s.
 +
 +
===5. Get module address===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+ADDR?||+ADDR:<Param> OK ||Param: address of Bluetooth module 
 +
|}
 +
Bluetooth address: NAP: UAP : LAP
 +
 +
'''Example:'''
 +
 +
AT+ADDR?\r\n
 +
 +
+ADDR:1234:56:abcdef
 +
 +
OK
 +
 +
===6. Set/Check module name:===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+NAME=<Param>||OK||Param: Bluetooth module name (Default :HC-05)
 +
|-
 +
| AT+NAME?||+NAME:<Param> OK (/FAIL) ||Param: Bluetooth module name (Default :HC-05)
 +
|}
 +
'''Example:'''
 +
 +
AT+NAME=HC-05\r\n                        set the module name to HC-05
 +
 +
OK
 +
 +
AT+NAME=ITeadStudio\r\n
 +
 +
OK
 +
 +
AT+NAME?\r\n
 +
 +
+NAME: ITeadStudio
 +
 +
OK
 +
 +
===7. Get the Bluetooth device name:===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+RNAME?<Param1>||1. +NAME:<Param2> OK 2. FAIL||Param1,Param 2 : the address of Bluetooth device
 +
|}
 +
 +
'''Example:''' (Device address 00:02:72:od:22:24,name:ITead)
 +
 +
AT+RNAME? 0002,72,od2224\r\n
 +
 +
+RNAME:ITead
 +
 +
OK
 +
 +
===8. Set/Check module mode:===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+ROLE=<Param> ||OK||Param: 0- Slave 1-Master 2-Slave-Loop
 +
|-
 +
| AT+ ROLE? ||+ROLE:<Param> OK||Param: 0- Slave 1-Master 2-Slave-Loop
 +
|}
 +
 +
===9. Set/Check device class===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+CLASS=<Param>||OK||Param: Device Class
 +
|-
 +
| AT+ CLASS? ||1. +CLASS:<Param> OK  2. FAIL||Param: Device Class
 +
|}
 +
 +
===10. Set/Check GIAC (General Inquire Access Code)===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+IAC=<Param> ||1.OK 2. FAIL||Param: GIAC (Default : 9e8b33)
 +
|-
 +
| AT+IAC ||+IAC:<Param> OK||Param: GIAC (Default : 9e8b33)
 +
|}
 +
 +
'''Example:'''
 +
 +
AT+IAC=9e8b3f\r\n
 +
 +
OK
 +
 +
AT+IAC?\r\n
 +
 +
+IAC: 9e8b3f
 +
 +
OK
 +
 +
===11. Set/Check -- Query access patterns===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+INQM=<Param>,<Param2>, <Param3> ||1.OK 2. FAIL||Param: 0——inquiry_mode_standard  1——inquiry_mode_rssi Param2: Maximum number of Bluetooth devices to respond to  Param3: Timeout (1-48 : 1.28s to 61.44s)
 +
|-
 +
| AT+ INQM? ||+INQM :<Param>,<Param2>, <Param3> OK ||Param: 0——inquiry_mode_standard  1——inquiry_mode_rssi Param2: Maximum number of Bluetooth devices to respond to  Param3: Timeout (1-48 : 1.28s to 61.44s)
 +
|}
 +
 +
'''Example:'''
 +
 +
AT+INQM=1,9,48\r\n
 +
 +
OK
 +
 +
AT+INQM\r\n
 +
 +
+INQM:1, 9, 48
 +
 +
OK
 +
 +
===12. Set/Check PIN code:===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+PSWD=<Param>||OK||Param: PIN code (Default 1234)
 +
|-
 +
| AT+ PSWD?||+ PSWD :<Param> OK ||Param: PIN code (Default 1234)
 +
|}
 +
 +
===13. Set/Check serial parameter:===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+UART=<Param>,<Param2>,<Param3>||OK||Param1: Baud Param2: Stop bit Param3: Parity
 +
|-
 +
| AT+UART?||+UART=<Param>,<Param2>, <Param3> OK ||Param1: Baud Param2: Stop bit Param3: Parity
 +
|}
 +
 +
'''Example:'''
 +
 +
AT+UART=115200,1,2,\r\n
 +
 +
OK
 +
 +
AT+UART?
 +
 +
+UART:115200,1,2
 +
 +
OK
 +
 +
===14. Set/Check connect mode:===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+CMODE=<Param> ||OK||Param: 0 - connect fixed address 1 - connect any
 +
address 2 - slave-Loop
 +
|-
 +
| AT+ CMODE? ||+ CMODE:<Param> OK||Param: 0 - connect fixed address 1 - connect any address 2 - slave-Loop
 +
|}
 +
 +
===15. Set/Check fixed address:===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+BIND=<Param>||OK||Param: Fixed address (Default 00:00:00:00:00:00)
 +
|-
 +
| AT+ BIND?||+ BIND:<Param> OK||Param: Fixed address (Default 00:00:00:00:00:00)
 +
|}
 +
 +
'''Example:'''
 +
 +
AT+BIND=1234,56,abcdef\r\n
 +
 +
OK
 +
 +
AT+BIND?\r\n
 +
 +
+BIND:1234:56:abcdef
 +
 +
OK
 +
 +
===16. Set/Check LED I/O===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+POLAR=<Param1,<Param2>||OK||Param1: 0- PIO8 low drive LED 1- PIO8 high drive
 +
LED Param2: 0- PIO9 low drive LED 1- PIO9 high drive LED
 +
|-
 +
| AT+ POLAR? ||+ POLAR=<Param1>,<Param2> OK ||Param1: 0- PIO8 low drive LED 1- PIO8 high drive LED Param2: 0- PIO9 low drive LED 1- PIO9 high drive LED
 +
|}
 +
 +
===17. Set PIO output===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+PIO=<Param1>,<Param2>||OK||Param1: PIO number Param2: PIO level 0- low 1- high
 +
|}
 +
 +
'''Example:'''
 +
 +
1. PIO10 output high level
 +
 +
AT+PI0=10,1\r\n
 +
 +
OK
 +
 +
===18. Set/Check – scan parameter===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+IPSCAN=<Param1>,<Param2>,<Param3>,<Param4>||OK||Param1: Query time interval
 +
Param2 : Query duration Param3 : Paging interval Param4 : Call duration
 +
|-
 +
| AT+IPSCAN? ||+IPSCAN:<Param1>,<Param2>,<Param3>,<Param4> OK ||Param1: Query time interval Param2 : Query duration Param3 : Paging interval Param4 : Call duration
 +
|}
 +
 +
'''Example:'''
 +
 +
AT+IPSCAN =1234,500,1200,250\r\n
 +
 +
OK
 +
 +
AT+IPSCAN?
 +
 +
+IPSCAN:1234,500,1200,250
 +
 +
===19. Set/Check – SHIFF parameter===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+SNIFF=<Param1>,<Param2>,<Param3>,<Param4>||OK||Param1: Max time Param2: Min time Param3: Retry time Param4: Time out
 +
|-
 +
| AT+ SNIFF?||+SNIFF:<Param1>,<Param2>,<Param3>,<Param4> OK||Param1: Max time Param2: Min time Param3: Retry time Param4: Time out
 +
|}
 +
 +
===20. Set/Check security mode===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+SENM=<Param1>,<Param2>||1. OK 2. FAIL ||Param1:
 +
 +
0——sec_mode0+off
 +
 +
1——sec_mode1+
 +
non_secure
 +
 +
2——sec_mode2_
 +
service
 +
 +
3——sec_mode3_l
 +
ink
 +
 +
4——sec_mode_u
 +
nknown
 +
 +
Param2:
 +
 +
0——hci_enc_mod
 +
e_off
 +
 +
1——hci_enc_mod
 +
e_pt_to_pt
 +
 +
2——hci_enc_mod
 +
e_pt_to_pt_and_b
 +
cast
 +
|-
 +
| AT+ SENM?||+ SENM:<Param1>,<Param2> OK  ||Param1:
 +
 +
0——sec_mode0+off
 +
 +
1——sec_mode1+
 +
non_secure
 +
 +
2——sec_mode2_
 +
service
 +
 +
3——sec_mode3_l
 +
ink
 +
 +
4——sec_mode_u
 +
nknown
 +
 +
Param2:
 +
 +
0——hci_enc_mod
 +
e_off
 +
 +
1——hci_enc_mod
 +
e_pt_to_pt
 +
 +
2——hci_enc_mod
 +
e_pt_to_pt_and_b
 +
cast
 +
|}
 +
 +
===21. Delete Authenticated Device===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+PMSAD=<Param>||OK||Param: Authenticated Device Address
 +
|}
 +
 +
'''Example:'''
 +
 +
AT+PMSAD =1234,56,abcdef\r\n
 +
 +
OK
 +
 +
===22. Delete All Authenticated Device===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+ RMAAD||OK||-
 +
|}
 +
 +
===23. Search Authenticated Device===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+FSAD=<Param>||1. OK 2. FAIL ||Param: Device address
 +
|}
 +
 +
===24. Get Authenticated Device Count===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+ADCN?||+ADCN:<Param> OK||Param: Device Count
 +
|}
 +
 +
===25. Most Recently Used Authenticated Device===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+MRAD? ||+ MRAD:<Param> OK ||Param: Recently Authenticated Device Address
 +
|}
 +
 +
===26. Get the module working state===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+ STATE? ||+ STATE:<Param> OK||Param: "INITIALIZED" "READY" "PAIRABLE" "PAIRED" "INQUIRING" "CONNECTING" "CONNECTED""DISCONNECTED" "NUKNOW"
 +
|}
 +
 +
===27. Initialize the SPP profile lib===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+INIT||1. OK 2. FAIL||-
 +
|}
 +
 +
===28. Inquiry Bluetooth Device===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+INQ ||+INQ: <Param1>, <Param2>, <Param3> …. OK ||Param1:Address  Param2 : Device Class  Param3 : RSSI  Signal strength
 +
|}
 +
 +
'''Example:'''
 +
 +
AT+INIT\r\n
 +
 +
OK
 +
 +
AT+IAC=9e8b33\r\n
 +
 +
OK
 +
 +
AT+CLASS=0\r\n
 +
 +
AT+INQM=1,9,48\r\n
 +
 +
At+INQ\r\n
 +
 +
+INQ:2:72:D2224,3E0104,FFBC
 +
 +
+INQ:1234:56:0,1F1F,FFC1
 +
 +
+INQ:1234:56:0,1F1F,FFC0
 +
 +
+INQ:1234:56:0,1F1F,FFC1
 +
 +
+INQ:2:72:D2224,3F0104,FFAD
 +
 +
+INQ:1234:56:0,1F1F,FFBE
 +
 +
+INQ:1234:56:0,1F1F,FFC2
 +
 +
+INQ:1234:56:0,1F1F,FFBE
 +
 +
+INQ:2:72:D2224,3F0104,FFBC
 +
 +
OK
 +
 +
===29. Cancel Inquiring Bluetooth Device===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+ INQC||OK||-
 +
|}
 +
 +
===30. Equipment Matching===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+PAIR=<Param1>,<Param2>||1. OK 2. FAIL||Param1 :Device Address  Param2:Time out
 +
|}
 +
 +
===31. Connect Device===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+LINK=<Param>||1. OK 2. FAIL||Param : Device Address
 +
|}
 +
 +
'''Example:'''
 +
 +
AT+FSAD=1234,56,abcdef\r\n
 +
 +
OK
 +
 +
AT+LINK=1234,56,abcdef\r\n
 +
 +
OK
 +
 +
===32. Disconnect===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+DISC||1. +DISC:SUCCESS OK 2. +DISC:LINK_LOSS OK 3. +DISC:NO_SLC OK 4. +DISC:TIMEOUT OK 5. +DISC:ERROR OK||Param : Device Address
 +
|}
 +
 +
===33. Energy-saving mode===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+ENSNIFF=<Param>||OK||Param : Device Address
 +
|}
 +
 +
===34. Exerts Energy-saving mode===
 +
{| class="wikitable"
 +
|-
 +
| align="center" style="background:#f0f0f0;"|'''Command'''
 +
| align="center" style="background:#f0f0f0;"|'''Respond'''
 +
| align="center" style="background:#f0f0f0;"|'''Parameter'''
 +
|-
 +
| AT+ EXSNIFF =<Param>||OK||Param : Device Address
 +
|}
 +
 +
'''Application Example'''
 +
 +
This is a demo that HC-05 is a master device and communicates to
 +
hc-06.
 +
 +
Step 1. Push the mode switch to CMD
 +
 +
Step 2. Power on, module enter command state
 +
 +
Step 3. Using baud rate 38400, send the ―AT+ROLE=1\r\n‖ to module,
 +
with ―OK\r\n‖ means setting successes.
 +
 +
Step 4. Send ―AT+CMODE=1\r\n‖, set HC-05 connect to any address,
 +
with ―OK\r\n‖ means setting successes.
  
 
==Download==
 
==Download==
 +
[ftp://imall.iteadstudio.com/Modules/IM120723009/DS_IM120723009.pdf Datasheet]
 +
 +
[[:File:ATSZR170210006001-RoHS-Eng-A(1).pdf | ATSZR170210006001-RoHS]]
 +
 +
[[:File:SZR170210006001-4P HBCDD-Eng-A.pdf | SZR170210006001-4P HBCDD]]
  
 
==Useful Links==
 
==Useful Links==

Latest revision as of 03:52, 24 March 2017

Overview

HC-05.jpg

HC-05 module is an easy to use Bluetooth SPP (Serial Port Protocol) module, designed for transparent wireless serial connection setup.

Serial port Bluetooth module is fully qualified Bluetooth V2.0+EDR (Enhanced Data Rate) 3Mbps Modulation with complete 2.4GHz radio transceiver and baseband. It uses CSR Bluecore 04-External single chip Bluetooth system with CMOS technology and with AFH(Adaptive Frequency Hopping Feature). It has the footprint as small as 12.7mmx27mm. Hope it will simplify your overall design/development cycle.

Go shopping Serial Port Bluetooth Module (Master/Slave):HC-05 (IM120723009)

Specifications

Hardware Features

  • Typical -80dBm sensitivity
  • Up to +4dBm RF transmit power
  • Low Power 1.8V Operation ,1.8 to 3.6V I/O
  • PIO control
  • UART interface with programmable baud rate
  • With integrated antenna
  • With edge connector

Software Features

  • Default Baud rate: 38400, Data bits:8, Stop bit:1,Parity:No parity, Data control: has.

Supported baud rate: 9600,19200,38400,57600,115200,230400,460800.

  • Given a rising pulse in PIO0, device will be disconnected.
  • Status instruction port PIO1: low-disconnected, high-connected;
  • PIO10 and PIO11 can be connected to red and blue led separately. When master and slave

are paired, red and blue led blinks 1time/2s in interval, while disconnected only blue led blinks 2times/s.

  • Auto-connect to the last device on power as default.
  • Permit pairing device to connect as default.
  • Auto-pairing PINCODE:”0000” as default
  • Auto-reconnect in 30 min when disconnected as a result of beyond the range of connection.

Hardware

HC-051.jpg

PIN Name PIN # PAD Type Description Note
GND 13,21,22 VSS Ground Pot
3.3 VCC 12 3.3V Integrated 3.3V(+) supply with On-chip linear regulator output within 3.15-3.3V
AIO0 9 Bi-directional Programmable input/output line
AIO1 10 Bi-directional Programmable input/output line
AIO0 23 Bi-directional RX EN Programmable input/output line, control output for LNA (if fitted)
AIO1 24 Bi-directional TX EN Programmable input/output line, control output for PA (if fitted)
PIN Name PIN # PAD Type Description Note
PIO2 25 Bi-directional Programmable input/output line
PIO3 26 Bi-directional Programmable input/output line
PIO4 27 Bi-directional Programmable input/output line
PIO5 28 Bi-directional Programmable input/output line
PIO6 29 Bi-directional Programmable input/output line
PIO7 30 Bi-directional Programmable input/output line
PIO8 31 Bi-directional Programmable input/output line
PIO9 32 Bi-directional Programmable input/output line
PIO10 33 Bi-directional Programmable input/output line
PIO11 34 Bi-directional Programmable input/output line
PIN Name PIN # PAD Type Description Note
RESETB 11 CMOS input with weak internal pull-up Reset of low.input debouncde so must be low for >5MS to cause a reset
UART_RTS 4 CMOS output, tri-stable with weak internal pull-up UART request to send, active low
UART_CTS 3 CMOS input with weak internal pull-down UART clear to send, active low
UART_RX 2 CMOS input with weak internal pull-down UART Data input
UART_TX 1 CMOS output, tri-stable with weak internal pull-up UART Data output
SPI_MOSI 17 CMOS input with weak internal pull-down Serial peripheral interface data input
PIN Name PIN # PAD Type Description Note
SPI_CSB 16 CMOS input with weak internal pull-up Chip select for serial peripheral interface, active low
SPI_CLK 19 CMOS input with weak internal pull-down Serial peripheral interface clock
SPI_MISO 18 CMOS input with weak internal pull-down Serial peripheral interface data output
USB_- 15 Bi-directional
USB_+ 20 Bi-directional
NC 14
PCM_CLK 5 Bi-directional Synchronous PCM data clock
PCM_OUT 6 CMOS output Synchronous PCM data output
PCM_IN 7 CMOS input Synchronous PCM data input
PCM_SYNC 8 Bi-directional Synchronous PCM data strobe

AT command Default

How to set the mode to server (master):

1. Connect PIO11 to high level.

2. Power on, module into command state.

3. Using baud rate 38400, sent the “AT+ROLE=1\r\n” to module, with “OK\r\n” means setting successes.

4. Connect the PIO11 to low level, repower the module, the module work as server (master).

AT commands: (all end with \r\n)

1. Test command:

Command Respond Parameter
AT OK -

2. Reset

Command Respond Parameter
AT+RESET OK -

3. Get firmware version

Command Respond Parameter
AT+VERSION? +VERSION:<Param> OK Param : firmware version

Example:

AT+VERSION?\r\n

+VERSION:2.0-20100601

OK

4. Restore default

Command Respond Parameter
AT+ORGL OK -

Default state:

Slave mode, pin code :1234, device name: H-C-2010-06-01 ,Baud 38400bits/s.

5. Get module address

Command Respond Parameter
AT+ADDR? +ADDR:<Param> OK Param: address of Bluetooth module

Bluetooth address: NAP: UAP : LAP

Example:

AT+ADDR?\r\n

+ADDR:1234:56:abcdef

OK

6. Set/Check module name:

Command Respond Parameter
AT+NAME=<Param> OK Param: Bluetooth module name (Default :HC-05)
AT+NAME? +NAME:<Param> OK (/FAIL) Param: Bluetooth module name (Default :HC-05)

Example:

AT+NAME=HC-05\r\n set the module name to HC-05

OK

AT+NAME=ITeadStudio\r\n

OK

AT+NAME?\r\n

+NAME: ITeadStudio

OK

7. Get the Bluetooth device name:

Command Respond Parameter
AT+RNAME?<Param1> 1. +NAME:<Param2> OK 2. FAIL Param1,Param 2 : the address of Bluetooth device

Example: (Device address 00:02:72:od:22:24,name:ITead)

AT+RNAME? 0002,72,od2224\r\n

+RNAME:ITead

OK

8. Set/Check module mode:

Command Respond Parameter
AT+ROLE=<Param> OK Param: 0- Slave 1-Master 2-Slave-Loop
AT+ ROLE? +ROLE:<Param> OK Param: 0- Slave 1-Master 2-Slave-Loop

9. Set/Check device class

Command Respond Parameter
AT+CLASS=<Param> OK Param: Device Class
AT+ CLASS? 1. +CLASS:<Param> OK 2. FAIL Param: Device Class

10. Set/Check GIAC (General Inquire Access Code)

Command Respond Parameter
AT+IAC=<Param> 1.OK 2. FAIL Param: GIAC (Default : 9e8b33)
AT+IAC +IAC:<Param> OK Param: GIAC (Default : 9e8b33)

Example:

AT+IAC=9e8b3f\r\n

OK

AT+IAC?\r\n

+IAC: 9e8b3f

OK

11. Set/Check -- Query access patterns

Command Respond Parameter
AT+INQM=<Param>,<Param2>, <Param3> 1.OK 2. FAIL Param: 0——inquiry_mode_standard 1——inquiry_mode_rssi Param2: Maximum number of Bluetooth devices to respond to Param3: Timeout (1-48 : 1.28s to 61.44s)
AT+ INQM? +INQM :<Param>,<Param2>, <Param3> OK Param: 0——inquiry_mode_standard 1——inquiry_mode_rssi Param2: Maximum number of Bluetooth devices to respond to Param3: Timeout (1-48 : 1.28s to 61.44s)

Example:

AT+INQM=1,9,48\r\n

OK

AT+INQM\r\n

+INQM:1, 9, 48

OK

12. Set/Check PIN code:

Command Respond Parameter
AT+PSWD=<Param> OK Param: PIN code (Default 1234)
AT+ PSWD? + PSWD :<Param> OK Param: PIN code (Default 1234)

13. Set/Check serial parameter:

Command Respond Parameter
AT+UART=<Param>,<Param2>,<Param3> OK Param1: Baud Param2: Stop bit Param3: Parity
AT+UART? +UART=<Param>,<Param2>, <Param3> OK Param1: Baud Param2: Stop bit Param3: Parity

Example:

AT+UART=115200,1,2,\r\n

OK

AT+UART?

+UART:115200,1,2

OK

14. Set/Check connect mode:

Command Respond Parameter
AT+CMODE=<Param> OK Param: 0 - connect fixed address 1 - connect any

address 2 - slave-Loop

AT+ CMODE? + CMODE:<Param> OK Param: 0 - connect fixed address 1 - connect any address 2 - slave-Loop

15. Set/Check fixed address:

Command Respond Parameter
AT+BIND=<Param> OK Param: Fixed address (Default 00:00:00:00:00:00)
AT+ BIND? + BIND:<Param> OK Param: Fixed address (Default 00:00:00:00:00:00)

Example:

AT+BIND=1234,56,abcdef\r\n

OK

AT+BIND?\r\n

+BIND:1234:56:abcdef

OK

16. Set/Check LED I/O

Command Respond Parameter
AT+POLAR=<Param1,<Param2> OK Param1: 0- PIO8 low drive LED 1- PIO8 high drive

LED Param2: 0- PIO9 low drive LED 1- PIO9 high drive LED

AT+ POLAR? + POLAR=<Param1>,<Param2> OK Param1: 0- PIO8 low drive LED 1- PIO8 high drive LED Param2: 0- PIO9 low drive LED 1- PIO9 high drive LED

17. Set PIO output

Command Respond Parameter
AT+PIO=<Param1>,<Param2> OK Param1: PIO number Param2: PIO level 0- low 1- high

Example:

1. PIO10 output high level

AT+PI0=10,1\r\n

OK

18. Set/Check – scan parameter

Command Respond Parameter
AT+IPSCAN=<Param1>,<Param2>,<Param3>,<Param4> OK Param1: Query time interval

Param2 : Query duration Param3 : Paging interval Param4 : Call duration

AT+IPSCAN? +IPSCAN:<Param1>,<Param2>,<Param3>,<Param4> OK Param1: Query time interval Param2 : Query duration Param3 : Paging interval Param4 : Call duration

Example:

AT+IPSCAN =1234,500,1200,250\r\n

OK

AT+IPSCAN?

+IPSCAN:1234,500,1200,250

19. Set/Check – SHIFF parameter

Command Respond Parameter
AT+SNIFF=<Param1>,<Param2>,<Param3>,<Param4> OK Param1: Max time Param2: Min time Param3: Retry time Param4: Time out
AT+ SNIFF? +SNIFF:<Param1>,<Param2>,<Param3>,<Param4> OK Param1: Max time Param2: Min time Param3: Retry time Param4: Time out

20. Set/Check security mode

Command Respond Parameter
AT+SENM=<Param1>,<Param2> 1. OK 2. FAIL Param1:

0——sec_mode0+off

1——sec_mode1+ non_secure

2——sec_mode2_ service

3——sec_mode3_l ink

4——sec_mode_u nknown

Param2:

0——hci_enc_mod e_off

1——hci_enc_mod e_pt_to_pt

2——hci_enc_mod e_pt_to_pt_and_b cast

AT+ SENM? + SENM:<Param1>,<Param2> OK Param1:

0——sec_mode0+off

1——sec_mode1+ non_secure

2——sec_mode2_ service

3——sec_mode3_l ink

4——sec_mode_u nknown

Param2:

0——hci_enc_mod e_off

1——hci_enc_mod e_pt_to_pt

2——hci_enc_mod e_pt_to_pt_and_b cast

21. Delete Authenticated Device

Command Respond Parameter
AT+PMSAD=<Param> OK Param: Authenticated Device Address

Example:

AT+PMSAD =1234,56,abcdef\r\n

OK

22. Delete All Authenticated Device

Command Respond Parameter
AT+ RMAAD OK -

23. Search Authenticated Device

Command Respond Parameter
AT+FSAD=<Param> 1. OK 2. FAIL Param: Device address

24. Get Authenticated Device Count

Command Respond Parameter
AT+ADCN? +ADCN:<Param> OK Param: Device Count

25. Most Recently Used Authenticated Device

Command Respond Parameter
AT+MRAD? + MRAD:<Param> OK Param: Recently Authenticated Device Address

26. Get the module working state

Command Respond Parameter
AT+ STATE? + STATE:<Param> OK Param: "INITIALIZED" "READY" "PAIRABLE" "PAIRED" "INQUIRING" "CONNECTING" "CONNECTED""DISCONNECTED" "NUKNOW"

27. Initialize the SPP profile lib

Command Respond Parameter
AT+INIT 1. OK 2. FAIL -

28. Inquiry Bluetooth Device

Command Respond Parameter
AT+INQ +INQ: <Param1>, <Param2>, <Param3> …. OK Param1:Address Param2 : Device Class Param3 : RSSI Signal strength

Example:

AT+INIT\r\n

OK

AT+IAC=9e8b33\r\n

OK

AT+CLASS=0\r\n

AT+INQM=1,9,48\r\n

At+INQ\r\n

+INQ:2:72:D2224,3E0104,FFBC

+INQ:1234:56:0,1F1F,FFC1

+INQ:1234:56:0,1F1F,FFC0

+INQ:1234:56:0,1F1F,FFC1

+INQ:2:72:D2224,3F0104,FFAD

+INQ:1234:56:0,1F1F,FFBE

+INQ:1234:56:0,1F1F,FFC2

+INQ:1234:56:0,1F1F,FFBE

+INQ:2:72:D2224,3F0104,FFBC

OK

29. Cancel Inquiring Bluetooth Device

Command Respond Parameter
AT+ INQC OK -

30. Equipment Matching

Command Respond Parameter
AT+PAIR=<Param1>,<Param2> 1. OK 2. FAIL Param1 :Device Address Param2:Time out

31. Connect Device

Command Respond Parameter
AT+LINK=<Param> 1. OK 2. FAIL Param : Device Address

Example:

AT+FSAD=1234,56,abcdef\r\n

OK

AT+LINK=1234,56,abcdef\r\n

OK

32. Disconnect

Command Respond Parameter
AT+DISC 1. +DISC:SUCCESS OK 2. +DISC:LINK_LOSS OK 3. +DISC:NO_SLC OK 4. +DISC:TIMEOUT OK 5. +DISC:ERROR OK Param : Device Address

33. Energy-saving mode

Command Respond Parameter
AT+ENSNIFF=<Param> OK Param : Device Address

34. Exerts Energy-saving mode

Command Respond Parameter
AT+ EXSNIFF =<Param> OK Param : Device Address

Application Example

This is a demo that HC-05 is a master device and communicates to hc-06.

Step 1. Push the mode switch to CMD

Step 2. Power on, module enter command state

Step 3. Using baud rate 38400, send the ―AT+ROLE=1\r\n‖ to module, with ―OK\r\n‖ means setting successes.

Step 4. Send ―AT+CMODE=1\r\n‖, set HC-05 connect to any address, with ―OK\r\n‖ means setting successes.

Download

Datasheet

ATSZR170210006001-RoHS

SZR170210006001-4P HBCDD

Useful Links