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

From ITEAD Wiki
Jump to: navigation, search
(Software Features)
m (Download)
 
(6 intermediate revisions by 2 users not shown)
Line 9: Line 9:
 
Frequency Hopping Feature). It has the footprint as small as 12.7mmx27mm. Hope it will simplify  
 
Frequency Hopping Feature). It has the footprint as small as 12.7mmx27mm. Hope it will simplify  
 
your overall design/development cycle.
 
your overall design/development cycle.
 +
 +
Go shopping [http://imall.iteadstudio.com/im120723009.html Serial Port Bluetooth Module (Master/Slave):HC-05 (IM120723009)]
  
 
==Specifications==
 
==Specifications==
Line 35: Line 37:
  
 
==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