Ezurio 520B Bluetooth Multi-Media Module User Manual
Ezurio Ltd Bluetooth Multi-Media Module
Ezurio >
Contents
- 1. User Manual
- 2. FCC statement insert
- 3. Manual
- 4. Manual FCC statement
User Manual
BTM520/521 DATA MODULE USER MANUAL www.lairdtech.com Innovative Technology for a Connected World BTM520/521 Bluetooth® Multimedia Plus Module TABLE OF CONTENTS CONTENTS BTM520/521 Bluetooth® Module ...3 Overview . ............................................. 3 BTM520/521 Key Features . .................. 3 Specifications .................................5 Detailed Specifications .......................... 5 Pin Out . ................................................ 6 Operating Parameters ....................9 Voltage Specifications ........................... 9 Notes .................................................. 10 Configuring the BTM520/521 .......11 References .......................................... 11 Glossary of Terms ............................... 12 AT Command Set ............................... 13 Assumptions ....................................... 13 Commands ......................................... 13 General AT Commands ...................... 13 www.lairdtech.com General Bluetooth® Control . .............. 24 Hardware Unit Control........................ 30 Bluetooth® Profiles . ............................ 32 Secure Simple Pairing . ........................ 39 Link Key Management ........................ 39 Miscellaneous...................................... 40 Appendix ............................................ 41 BT-MM+ Unsolicited Messages . ......... 41 BT-MM+ Error Responses ................... 41 Mechanical Drawings ...................43 Mechanical Details .............................. 43 Recommended PCB Footprint . ........... 43 Diagrams ............................................ 44 Ordering Information ...................47 Product Part Numbers . ....................... 47 General Comments ............................ 47 Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module OVERVIEW AND KEY FEATURES The BTM520 and BTM521 are the most advanced low power, multimedia Bluetooth modules on the market. They have been designed by Laird Technologies to meet the needs of developers who require the ultimate Bluetooth audio performance and flexibility, along with fast time to market. The modules include everything needed for a fully qualified and functional Bluetooth multimedia application. As well as providing best in class radio performance, range and power consumption, they support all of the functionality to run Cambridge Silicon Radio’s Road Tunes and Blue Tunes development environments. They support the latest Bluetooth Version 2.1+EDR Specification, providing the important advantage of Secure Simple Pairing, which improves security and enhances the ease of use for end customers. The BTM521, with an integrated high performance multilayer ceramic antenna can achieve open field ranges in excess of 300 metres. The modules include a 16 bit stereo codec and microphone input to support both stereo and mono applications, with the ability to drive 16Ω stereo speakers. They also contain all of the necessary audio filtration and biasing components, so that the module only requires the addition of speakers, microphone and push buttons to make a complete implementation. The modules contain a full, integrated Bluetooth stack along with SPP, HFP 1.5, HSP, AVRCP and A2DP profiles, all of which have been qualified, so that no further Bluetooth qualification is required. For users with more complex applications, additional profiles will be available for file transfer, object exchange, dial up networking, messaging and phone book control. Future support also includes the Health Device Profile, making this the ideal module for development of Continua compliant medical devices. Because these modules are pre-qualified, customers using these modules can list and promote their products on the Bluetooth website free of charge. The BTM520 and BTM 521 modules include an embedded 32 bit, 64 MIPS DSP core within the BC05, which is integrated with the Bluetooth functionality and which allows designers to add significant product enhancements. These include features such as echo cancellation, noise reduction and audio enhancement using additional soft codecs. 16MB of flash memory is available within the module, so that complex functionality can be included. DSP routines are licensable from a number of specialist partners. Typical applications for these modules include Bluetooth headsets, Bluetooth stereo headsets, VoIP phones, automotive products, wireless audio links and medical / healthcare devices. To speed product development and integration, Laird Technologies has developed a comprehensive AT command interface, which simplifies application development and includes support for audio and headset functionality. It provides access to GPIO pins, allowing these to be mapped for direct connection to actuator buttons on headsets. Combined with a low cost developer’s kit, this ensures that the choice of Laird Technologies Bluetooth modules guarantees the fastest route to market. www.lairdtech.com Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module OVERVIEW AND KEY FEATURES www.lairdtech.com FEATURES • Fully featured Bluetooth multimedia module • Supports CSR Road Tunes and Blue Tunes applications • Bluetooth v2.1+EDR • Supports mono and stereo headset applications • Ideal for medical applications using health device profile • Adaptive Frequency Hopping to cope with interference from other wireless devices • 32bit Kalimba DSP for enhanced audio applications • Support for Secure Simple Pairing • External or internal antenna options • HSP, HFP, A2DP and AVRCP audio profiles • Future support for OBEX, DUN, FTP, HDP profiles for additional functionality • 16 bit stereo codec and microphone input • Integrated audio amplifiers for driving 16Ω speakers • Comprehensive AT interface for simple programming • Bluetooth END Product Qualified • Compact Size • Class 1 output – 8dBm (typical) • Low power operation • Wi-Fi Coexistence Hardware Support APPLICATION AREAS • • • • • • • • • • High Quality Stereo Headsets Mono Voice Headsets Hands-free devices Wireless Audio Cable Replacement MP3 and music players Medical and Healthcare Devices Phone Accessories VoIP products Cordless Headsets Automotive Applications Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module SPECIFICATIONS CATEGORIES FEATURE IMPLEMENTATION Wireless Specification Standards Supported Bluetooth® v2.1 + EDR Transmit Class Class 1 Frequency 2.402 – 2.480 GHz Channels 79 channels Frequency Hopping Adaptive Frequency Hopping Max Transmit Power +8 dBm (typical) @ antenna pad – BTM520 +10 dBmi (typical) from integrated antenna – BTM521 (provisional) Min Transmit Power -27 dBm @ antenna pad – BTM520 -27 dBmi from integrated antenna – BTM521 (provisional) Receive Sensitivity Better than -86 dBm Data Transfer rate Up to 300kbps Range > 300 metres free space (Data) External Antenna 50 Ohm U.FL – BTM520 Integrated Antenna +2dB multilayer ceramic – BTM521 Serial Interface RS-232 bi-directional for commands and data 16550 compatible Baud Rate Configurable from 1,200 to 921,600bps Non-standard baud rates supported Bits Parity Odd, even, none Stop bits 1 or 2 Default Serial parameters 9600,n,8,1 Levels 1.7 - 3.6V CMOS (independent of Vcc) Modem Control RTS, CTS DTR, DSR, DCD, RI† I/O 16 general purpose I/O pins† ADC 2 x ADC IS Stereo Audio Digital Interface Bus PCM Shared with I2S SPDIF Shared with I2S LED Two dedicated Codec Integrated stereo codec with -95dB SNR for DAC Amplifiers Direct drive for 16Ω speakers On board filters Microphone Input with bias for low noise microphone On board filters Sample Rates (DAC & ADC) 8, 11.025, 16, 22.05, 32 & 44.1kHz Bluetooth Stack V2.1 compliant. Fully integrated. Profiles GAP (Generic Access Profile) SDP (Service Discovery Profile) SPP (Serial Port Profile) HSP HFP – Audio Gateway and Handsfree A2DP – Source and Sink AVRCP – Target and Controller SCO/eSCO FTP Client (future release) DI (future release) GOEP (future release) PBAP (future release) MAP (future release) HDP (future release) Antenna Modes UART Interface General Purpose Interface Audio Protocols & Firmware ® Protocols www.lairdtech.com Firmware Upgrade RFCOMM AVCTP AVDTP OBEX (future release) MCAP (future release) Available over UART Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module SPECIFICATIONS CATEGORIES FEATURE IMPLEMENTATION Command Interface AT Instruction set Comprehensive control of connection and module operation, including extensions for Audio control. Direct mapping of GPIO to audio functions, e.g. Play, Volume, etc. S Registers for non-volatile storage of parameters Additional Support All I/O available for CSR Road Tunes and Blue Tunes applications Kalimba DSP Integrated in BC05 32bit, 64MIPS, 16Mbps Flash Memory (shared) Applications Available from partners Data Transfer Typically < 70mA (including speaker drive) Low Power Sniff Mode Less than 1.5mA Supply 3.0V – 4.2V DC I/O 1.7V – 3.6V DC Coexistence / Compatibility WLAN (802.11) 2, 3 and 5-wire hardware coexistence schemes supported Connections External Antenna (option) Pad for 50 Ohm antenna – BTM520 Interface Surface Mount Pads Dimensions 20.0mm x 36.0mm x 4.9mm Weight 3 grams Operating Temperature -30°C to +70°C Storage Temperature -40°C to +85°C Bluetooth Qualified as an END product FCC Meets FCC requirements Modular Approval (Integrated Antenna option – BTM521) CE & R&TTE Meets CE and R&TTE requirements Lead free Lead-free and RoHS compliant Warranty 12 Months Development Kit Development board and software tools DSP Current Consumption Supply Voltage Physical Environmental Approvals Miscellaneous Development Tools ® †Modem control pins and GPIO are shared www.lairdtech.com Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module SPECIFICATIONS www.lairdtech.com PiN Out Pin Signal Description Voltage Specification 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 PCM_IN PCM_OUT PCM_SYNC PCM_CLK GND SPI_MOSI SPI_CSB SPI_MISO SPI_CLK LED_EXT1 LED_EXT0 PIO0 / RX_ENABLE PIO1 / TX_ENABLE GND VDD_PADS VDD_PIO VDD_IN GND AUDIO_GND SPKR_B_P SPKR_B_N SPKR_A_P SPKR_A_N MIC_BIAS MIC_BN_C MIC_BP_C MIC_AP_C MIC_AN_C Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused PCM Data I/P PCM Data O/P PCM Sync I/P PCM CLK I/P VPADS VPADS VPADS VPADS SPI bus serial I/P SPI bus chip select I/P SPI bus serial O/P SPI bus clock I/P Host I/O Host I/O VPADS VPADS VPADS VPADS Open Drain Open Drain VIO VIO VPADS supply VIO supply Main supply Speaker, channel B+ (right) – Note 3 Speaker, channel B- (right) – Note 3 Speaker, channel A+ (left) – Note 3 Speaker, channel A- (left) – Note 3 Microphone bias – Note 4 Microphone, channel A+ (left) – Note 4 Microphone, channel A- (left) – Note 4 Microphone, channel B- (right) – Note 4 Microphone, channel B+ (right) – Note 4 Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module SPECIFICATIONS PiN Out (continued) Pin Signal 55 56 57 58 59 60 61 62 Unused Unused Unused PIO3 / USB_VSENSE PIO14 / CSB AUX_DAC PIO4 PIO5 / BT_STATE / BT_PRORITY PIO7 / RF_ACTIVE PIO15 PIO12 / SCL GND AIO1 PIO10 / DSR PIO11 / DTR AIO0 PIO9 / DCD PIO13 / SDA PIO8 / RI PIO6 / WLAN_ACTIVE GND USB_DUSB_D+ PIO2 / USB_PULL_UP VDD_USB VREGENABLE_H GND UART_RTS UART_CTS UART_TX UART_RX Reset 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 www.lairdtech.com Description Voltage Specification Host I/O Host I/O / BT Co-existence VIO VPADS VIO VIO VPADS Host I/O / BT Co-existence Host I/O Host I/O VPADS VPADS VPADS Host I/O ADC Input, 10 bit 0-1.5V input range Host I/O Host I/O ADC Input, 10 bit 0-1.5V input range Host I/O Host I/O Host I/O Host I/O / BT Co-existence VPADS VPADS VPADS VPADS VPADS VPADS VUSB VUSB VIO VUSB supply Main regulator enable – pull high for correct operation Request to Send O/P Clear to Send I/P Transmit data O/P Receive data I/P Module reset I/P (active low) – Note 1 VUSB VUSB VUSB VUSB VPADS Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module OPERATING PARAMETERS Operating Parameters Recommended Operating Conditions Operating Condition Min Max VDD_USB (USB compatibility not required) 1.7 3.6 VDD_USB (USB compatibility required) 3.1 3.6 VDD_IO 1.7 3.6 VDD_PADS 1.7 3.6 VDD_IN 3.0 3.3 Voltage Specifications Logic Levels (VUSB) Input Voltage Levels Min Typ Max Vih 0.625VDD_USB VDD_USB+0.3 Vil -0.3 0.25VDD_USB Voh (Iout = -4mA) 0.75VDD_USB VDD_USB Vol (Iout = 4mA) 0.125 Output Voltage Levels Logic Levels (VIO) Input Voltage Levels Min Typ Max Vih 0.625VDD_IO VDD_IO+0.3 Vil -0.3 0.25VDD_IO Voh (Iout = -4mA) 0.75VDD_IO VDD_IO Vol (Iout = 4mA) 0.125 Output Voltage Levels Logic Levels (VPADS) Input Voltage Levels Min Typ Max Vih 0.625VDD_PADS VDD_PADS+0.3 Vil -0.3 0.25VDD_PADS Voh (Iout = -4mA) 0.75VDD_PADS VDD_PADS Vol (Iout = 4mA) 0.125 Output Voltage Levels Logic Levels (VUSB – USB terminals D+, D-) Input Voltage Levels Vih Min Typ Max 0.7VDD_USB Vil 0.3VDD_USB Output Voltage Levels (to correctly terminated USB cable) www.lairdtech.com Voh 2.8 VDD_USB Vol 0.2 Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module OPERATING PARAMETERS Note: 1. 2. Reset input is active low. Input is pulled up to VDD_PADS via 22k. Minimum reset pulse width is 5ms. LED drive pins are open drain outputs and hence the external circuit to the right should be used. The voltage on the module pad should be maintained below 0.5V in which case the Ron of the FET is around 20Ω. Provided that this condition is met, then the current flowing through the diode is: Iled = VDD - VF R + 20 VDD Where VF is the forward bias voltage of the LED. 3. The speaker output is capable of driving loads with a minimum impedance of 16Ω directly. 4. The audio inputs can operate in either line input mode or microphone mode. The input circuit has a two stage amplifier – the first stage provides a fixed 24dB gain and the second a variable gain of between -3dB and 18dB. If an input gain of less than 24dB is selected, then the first stage is switched out and the module is operating in line input mode. When operating in microphone mode the microphone should be biased as follows: Module External Circuit MIC_BIAS 15nH MIC_AP 15pF 15nH MIC_AN 15pF External Circuit Module The input impedance on the microphone inputs (in microphone mode) is typically 6kΩ. In order to maintain the regulation on the MIC_BIAS pin, the current drawn must be in the range 0.2 – 1.23mA. If the resistor draws less current than this then an additional resistor to ground must be added to pre-load the microphone output. The audio input is designed for use with inputs of between 1μA and 10μA at 94dB SPL. If the biasing resistors are set to 1kΩ this implies a microphone with a sensitivity in the range -40dBV to -60dBV. When operating in line input mode, the input can be connected directly to the module input pins in either single or double ended configuration as follows: AC Single ended 10 www.lairdtech.com AC Double ended Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 Introduction This document describes the protocol used to control and configure the BT-MM+ Bluetooth device. The AT commands described in the document apply to firmware releases from V14.0.9 onwards. The protocol is similar to the industry standard Hayes AT protocol used in telephony modems which is appropriate for cable replacement scenarios, as both types of devices are connection oriented. Just like telephony modems, Laird Technologies’ devices powers up in an unconnected state and will only respond via the serial interface. In this state the device will not even respond to Bluetooth Inquiries. Then, just like controlling a modem, the host can issue AT commands which map to various Bluetooth activities. The command set is extensive enough to allow a host to make connections which are authenticated and/or encrypted or not authenticated and/or encrypted or any combination of these. Commands can be saved, so that on a subsequent power up the device is discoverable or automatically connects. The device has a serial interface which can be configured for baud rates from 1200 up to 921600 (default setting is 9600) and an RF communications end point. The latter has a concept of connected and unconnected modes and the former will have a concept of command and data modes. This leads to the matrix of states shown below. RF Unconnected RF Connected Local Command Mode OK OK Remote Command Mode ILLEGAL OK Data Mode ILLEGAL OK The combinations, ‘Data and RF Unconnected Mode’ and ‘Remote Command and RF Unconnected Mode’ do not make sense and will be ignored. Navigation between these states is done using the AT commands which are described in detail in subsequent sections. References [1] “AT Command Set” [2] “BlueLab_v4.0_Release_Note.pdf” [3] “Audio/Video Distribution Transport Protocol Specification” Rev.V12, 16/04/2007 [4] “Advanced Audio Distribution Profile Specification” Rev. V12, 16/04/2007 [5] “Audio/Video Remote Control Profile” Revision V14r00, 26/06/2008 [6] “Software Release Note Stereo Headset SDK Q3 2007 RC3.1” CS-117522-RNP1, CSR [7] “Stereo Headset SDK Q3 2007 User Guide” CSR, CS-116451-UGP1, CSR, December2007 [8] “Bluetooth Specification Version 2.1 + EDR [vol3]”, 26 July 2007 11 www.lairdtech.com Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 12 www.lairdtech.com Glossary of Terms Description A2DP Advanced Audio Distribution Profile ADC Analogue to Digital Converter AGHFP Audio Gateway Hands-Free Profile AT Command prefix, ‘Attention’ AVRCP Audio/Video Remote Control Profile BISM Bluetooth Intelligent Serial Module Codec Device capable of encoding / decoding an analogue / digital signal DAC Digital to Analogue Converter DSP Digital Signal Processor DUN Dial-Up Network Profile FTP File Transfer Profile GOEP Generic Object Access Exchange Profile GPIO General Purpose Input Output HFP Hands Free Profile HID Human Interface Device Profile I/O (IO) Input/Output Mic Microphone OPP Object Push Profile PBAP Phone Book Access Profile PWM Pulse Width Modulation Sxxx S-Register No. xxx SBC Sub Band Codec SPP Serial Port Profile TBD To Be Determined UART Universal Asynchronous Receiver / Transmitter PT PASS THROUGH Command UI UNIT INFO Command SUI SUBUNIT INFO Command Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 AT Command Set Assumptions 1. All commands are terminated by the carriage return character 0x0D, which is represented by the stringin descriptions below this, cannot be changed. 2. All responses from the device have carriage return and linefeed characters preceding and appending the response. These dual character sequences have the values 0x0D and 0x0A respectively and shall be represented by the string . 3. All Bluetooth addresses are represented by a fixed 12 digit hexadecimal string, case insensitive. 4. All Bluetooth Device Class codes are represented by a fixed 6 digit hexadecimal string, case insensitive. Commands The following syntax is employed throughput this document to describe optional or mandatory parameters for AT commands. A 12 character Bluetooth address consisting of ASCII characters ‘0’ to ‘9’, ‘A’ to ‘F’ and ‘a’ to ‘f’. A 6 character Bluetooth device class consisting of ASCII characters ‘0’ to ‘9’, ‘A’ to ‘F’ and ‘a’ to ‘f’. A positive integer value. An integer value which could be positive or negative, which can be entered as a decimal value or in hexadecimal if preceded by the ‘$’ character. E.g. the value 1234 can also be entered as $4D2 A string delimited by double quotes. E.g. “Hello World”. The “ character MUST be supplied as delimiters. A 4 character UUID number consisting of ASCII characters ‘0’ to ‘9’, ‘A’ to ‘F’ and ‘a’ to ‘f’. General AT Commands 1. AT Used to check the module is available. Response: 2. ATA OK {Answer Call} Accept an incoming connection, which is indicated by the unsolicited string RING 123456789012 every second. 123456789012 is the Bluetooth address of the connecting device. Response: CONNECT 123456789012 3. ATD , {Make Outgoing Connection} Make a connection to device with Bluetooth address and SPP profile . The is an optional parameter which specifies the UUID of the profile server to attach to, and if not supplied then the default UUID from S Register 101 is used. As this is a device which utilizes the RFCOMM layer as described in the Bluetooth specification, it necessarily implies that only profiles based on RFCOMM can be accessed. The timeout is specified by S register 505. Response: Or CONNECT 123456789012 NO CARRIER Due to a known issue in the Bluetooth RFCOMM stack, it is not possible to make more than 65525 outgoing connections in a single power up session. Therefore if that number is exceeded, then the connection attempt will fail with the following response: Response: Or CALL LIMIT NO CARRIER In that case, issuing an ATZ to reset the device will reset the count to 0 and more connections are possible. 13 www.lairdtech.com Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 The following RFCOMM based UUIDs are defined in the Bluetooth Specification:Profile Name UUID Serial Port 0x1101 LAN Access Using PPP 0x1102 Dialup Networking 0x1103 IrMC Sync 0x1104 OBEX Object Push 0x1105 OBEX File Transfer 0x1106 IrMC Sync Command 0x1107 Headset 0x1108 Cordless Telephony 0x1109 Intercom 0x1110 Fax 0x1111 Audio Gateway 0x1112 WAP 0x1113 WAP_CLIENT 0x1114 4. ATDL {Remake Connection} Make a connection with the same device and service as that specified in the most recent ATD command. An error will be returned if the ‘L’ modifier is specified AND a Bluetooth address. If both ‘L’ and ‘R’ modifiers are specified then an error will be returned. Response: CONNECT 123456789012 AE Or NO CARRIER 5. ATDR {Make Connection to peer specified in AT+BTR} Make a SPP connection with the device address specified in the most recent AT+BTR command. The service is as specified in S Register 101. An error will be returned if the ‘R’ modifier is specified AND a Bluetooth address. If both ‘R’ and ‘L’ modifiers are specified then an error will be returned. Response: CONNECT 123456789012 AE Or NO CARRIER 6. ATEn {Enable/Disable Echo} This command enables or disables the echo of characters to the screen. A valid parameter value will be written to S Register 506. E0 Disable echo. E1 Enable echo. All other values of n will generate an error. Response: OK Or Response: 7. ATH ERROR nn {Drop Connection} Drop an existing connection or reject an incoming connection indicated by unsolicited RING messages. Response: 14 www.lairdtech.com NO CARRIER Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 8. ATSn=m {Set S Register} As with modems, the Bluetooth module employs a concept of registers which are used to store parameters, such as escape sequence character, inquiry delay time etc, as listed in detail below. The value part ‘m’ can be entered as decimal or hexadecimal. A hexadecimal value is specified via a ‘$’ leading character. For example $1234 is a hexadecimal number. When S register values are changed, the changes are not stored in non-volatile memory UNTIL the AT&W command is used. Note that AT&W does not affect S registers 520 to 525 or 1000 to 1010 as they are updated in non-volatile memory when the command is received. Table 3-1: S-Register List Register Default Range Comment S0 -1..15 Number of RING indication before automatically answering an incoming connection. A value of 0 disables autoanswer. If -1, then autoanswer on one RING and do NOT send RING/CONNECT response to the host. This emulates a serial cable replacement situation Setting values >= 0, resets S Register 504 to 0 and <0 forces 504 to 1. If S0 <> 0 and S100 <> 0 then S0 must be < S100. If a value is entered which violates this rule, then ERROR 29 is sent in response. If S504 =1 then this register will return -1, regardless of the actual value stored in non-volatile memory. S2 0x5E 0x20..0x7E Escape sequence character. It is not ‘+’ by default as a Bluetooth® serial link can be used to connect to a mobile phone which exposes an AT command set, which will in turn use ‘+’ as default. So if both used ‘+’ there will be confusion. 0x5e is the character ‘^’. S12 100 40..5000 Escape sequence guard time in milliseconds, with a granularity of 20ms. New values are rounded down to the nearest 20ms multiple S100 15 0..15 Number of RING indications before an auto disconnection is initiated. A value of 0 disables this feature. If S0 <> 0 and S100 <> 0 then S0 must be < S100. If a value is entered which violates this rule, then ERROR 29 is sent in response. S101 $1101 0..$ffff UUID of default SPP based profile when not specified explicitly in the ATD command. S102 1..0x7FF Defines a set of bits masks for enabling profile servers. Values can be ORed. 0x001 is Serial Port Profile 0x080 is A2DP 0x100 is AVRCP S103 1..7 Boot Mode on cold boot. S126 0 .. 0xFFFF Primer for changing to Multipoint mode S127 0 .. 0xFFFF 0x100 for At mode 0x200 for Multipoint mode Other values are reserved S300 0..2 Set A2DP role: 0 is feature not set 1 is A2DP Sink (default) 2 is A2DP Source S301 0..2 Set AVRCP role: 0 is feature disabled 1 is Control (CT) (default) 2 is Target (TG) 15 www.lairdtech.com Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 Register Default Range Comment S302 0..4 Set AVRCP category: 0 is Feature disabled (default) 1 is Player/Recorder 2 is Monitor/Amplifier 3 is Tuner 4 is Menu S303 0..0xFFFFFF Set Company ID: IEEE Company ID, 24bit hexadecimal, Required for UNIT INFO Response in AVRCP target mode, default value is 0. S305 0..1 Accept UNIT INFO request: 0 – reject 1 – accept S306 0..1 Accept SUBUNIT INFO request: 0 – reject 1 – accept S310 0..1 Configure PASS THROUGH (PT) Response: 1 = Enable automatic PT-response, response type is read from S311, (default) 0 = Host is required to respond to PT-Indication, see ‘AT+AVR’ S311 1w 0..7 (Write) 9r S312 Set automatic PT response: This value is queried for automatic PT-Response, see Table 3‑10. The written value is mapped internal, that is why the Read-value is different from the written value. The Read-value is actually sent out as response 0..15 A2DP sink supported features (Bitmask) : Bit 0 = Headphone (default) Bit 1 = Speaker Bit 2 = Recorder Bit 3 = Amplifier S313 0..15 A2DP source supported features (Bitmask) : Bit 0 = Player (default) Bit 1 = Microphone Bit 2 = Tuner Bit 3 = Mixer S320 1..3 Security Level: see [12], Generic Access Profile - Table 5.7 needs subsequent ‘AT&W’ and power cycle to take effect S321 0..4 Set IO capability: 0 – display only 1 – display yes no 2 – keyboard only 3 – no input no output 4 – reject IO-cap requests S322 0..1 Force man-in-the-middle-protection (MITM): 0 – disabled 1 – enabled S323 0..1 Disable legacy (pre-BT2.1) Pairing: 0 – legacy pairing enabled 1 – legacy pairing disabled S324 90 1..255 Secure Simple Pairing timeout in s This value must be at least 90 in order to meet the recommendation of BT2.1 specification 16 www.lairdtech.com Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 Register Default Range Comment S325 0..1 Store link key automatically on dedicated bonding outgoing (DBO), identical with S538 S326 0..1 Store link key automatically on general bonding outgoing (GBO) S327 0..1 Store link key automatically on dedicated bonding incoming (DBI) S328 0..1 Store link key automatically on general bonding incoming (GBI) S329 0..1 Enable legacy (BISM2) response format S330 1..15 Configure inquiry response of AT+BTI (Bitmask): 1 – show device address 2 – show class of device 4 – show friendly name 8 – show extended inquiry data Values can be ORed S415 0..1 Enable Microphone Input Gain, adds extra 24dB to input gain S416 0..1 Enable MicBias S417 0..15 Set MicBiasCurrent S418 0..15 Set MicBiasVoltage S419 0..6 Set sampling rate for Audio Loopback Mode 0 = 8 kHz 1 = 11.025 kHz 2 = 16 kHz 3 = 22.050 kHz 4 = 24 kHz 5 = 32 kHz 6 = 44.1 kHz S504 0..1 Setting to 1 will force S0 to -1 and will suppress messages arising from connections or pairing. E.g. CONNECT, NO CARRIER, RING, PAIR etc. Suppressing connection based messaged allows the device to be configured in cable replacement mode. S505 10 2..120 Minimum delay before abandoning connection attempt as a master. Referenced by ATD. In units of seconds. See S Registers 530 and 543 also. Please note that as disconnection time can vary, this register only guarantees the minimum delay. Note that for invalid addresses specified in the ATD command, the “NO CARRIER” response will be immediate. See S register 560 for specifying disconnect max timeout. S506 0..1 Enable/Disable echoes. The ATEn command also affects this. S507 0..2 When set to 0, a connection can be dropped using ^^^ escape sequence only and the state of DSR line is ignored. When set to 1 a connection can be dropped using EITHER the ^^^ escape sequence OR the DSR handshaking line. When set to 2, a connection can only dropped using a deassertion of DSR. Mode 2 provides for the highest data transfer rate. If the status of the DSR line is to be conveyed to the remote device as a low bandwidth signal then this register MUST be set to 0, otherwise a deassertion of DSR will be seen as a request to drop the Bluetooth® connection. This register affects S Register 536 – see details of 536 17 www.lairdtech.com Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 Register Default Range Comment S512 0..7 Specify power up state. When set to 0, AT+BTO is required to open the device for Bluetooth® activity. When set to 1, it proceeds to a state as if AT+BTO was entered. When set to 2, it will be discoverable only, similar to issuing AT+BTQ. When set to 3, it will be connectable but not discoverable e.g. AT+BTG When set to 4, it will be connectable and discoverable e.g. AT+BTP. When set to 5, it will be like 2, but all UART RX traffic is discarded in absence of a connection while DSR is asserted. If DSR is not asserted, then it behaves exactly as per mode 2. When set to 6, it will be like 3, but all UART RX traffic is discarded in absence of a connection while DSR is asserted. If DSR is not asserted, then it behaves exactly as per mode 3. When set to 7, it will be like 4, but all UART RX traffic is discarded in absence of a connection while DSR is asserted. If DSR is not asserted, then it behaves exactly as per mode 4. Note that by implication, a change to this can only be seen after a power cycle AND if AT&W is actioned prior to the power cycle. If S Reg 554 is non-zero and this register is between 2 and 7 inclusive, then the value of S554 specifies the time in seconds that the device will remain in the specified mode after power up. On timeout, the device will fall back to the mode specified in S Register 555. In some firmware builds, S Registers 565 to 569 inclusive are visible, which allows the start-up mode to depend on the state of RI line (Setting S Reg 565 forces the RI pin to be configured as an input). For this feature to be active, SReg 565 should be set to 1. In that case, on start-up, if RI is asserted, then the start-up mode is defined by S Reg 566 and if deasserted then S Reg 567. S514 10 1..60 Pairing Timeout in seconds. This includes the time a host takes to supply the PIN number when PIN? messages are indicated. S515 0x001F00 0.. 0xFFFFFF Default Device Class Code to be used with AT+BTO when it is not explicitly specified. When queried, the value is always printed as a hexadecimal number. To change the device class of the module, after AT+BTO, use the command AT+BTC. S516 0x000000 0..0x2FFFFFF Default Device Class filter to be used with AT+BTI when it is not explicitly specified. When queried the value is always printed as a hex number. The seventh most significant digit, can be 0,1 or 2, and is used to specify the type of device class filter. When 0, it specifies no filtering. When 1, it specifies an AND mask and all 24 bits are relevant When 2, it specifies a filter to look for devices with matching major device class which occupies a 5 bit field from bits 8 to 12 inclusive (assuming numbering starts at bit 0). All other 19 bits MUST be set to 0. 18 www.lairdtech.com S517 20 2..61 Inquiry Length in units of seconds. This parameter is referenced by the AT+BTI command. S518 0..255 Maximum number of responses from an inquiry request. This parameter is reference by the AT+BTI command. If this number is set too high, then AT+BTI will return ERROR 27. For a particular firmware revision, determine the effective maximum value by trial and error. That is, set to a high value, send AT+BTI and if ERROR 27 is returned, then retry with a smaller value. This effective max value will remain unchanged for that particular firmware build. S519 500 100..6000 When S507>0, and in a connection, DSR can be used to change from data to command state by deasserting the DSR line for less than the time specified in this register. This value is rounded down to the nearest 100ms S530 1000 100..15000 Reconnect delay when configured as master in pure-cable-replacement mode. This value is rounded down to the nearest 100ms. See S Register 505 and 543 also. Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 Register Default Range Comment S531 0..5 Specifies the mode on connection establishment. 0 = Normal, that data is exchanged between UART and RF 1 = LOCAL_COMMAND. UART input is parsed by the AT interpreter and RF data is discarded 2 = REMOTE_COMMAND. RF input is parsed by the AT interpreter and UART data is discarded. If S Reg 536 is not 1 then this register cannot be set to 2 and an ERROR will be returned 3 = LOCAL_COMMAND. UART input is parsed by the AT interpreter and incoming RF data is sent to the host using the RX asynchronous response. 4 = LOCAL_COMMAND and on the rf side, the gpio is automatically sent when there is a change in input. See section 9.5 for more details. 5 = DEAMON mode S532 0..7 If non zero then on every connection, a SCO channel (audio) will be initiated. Bit 0 for HV1, Bit1 for HV2 and Bit2 for HV3. When the connection is lost, the SCO channel disappears along with it. S533 0..2 If set to 1 then GPIO5 follows RI state, if set to 2 then it follows the state of DSR and if 0 it is not driven and GPIO5 is available as a user I/O. This register will not necessarily be effective immediately after changing the value. It must be saved to non-volatile memory using AT&W and will operate as expected after an ATZ or a power cycle. S534 0..2 When set to 0, GPIO4 is available as user i/o If set to 1 then GPIO4 follows DCD state. If set to 2 then GPIO4 behaves as per setting 1, but in addition, when not in a connection, if the device is connectable or discoverable, then GPIO4 will blink. This register will not necessarily be effective immediately after changing the value. It must be saved to non-volatile store using AT&W and will operate as expected after an ATZ or a power cycle. S535 20 0..41 Link Supervision Timeout. If units go out of range, then a NO CARRIER message will be sent to the host after the time specified here S536 0..1 When set to 1, a remote device can ‘capture’ the AT parser of this unit by it sending this module an escape “!!!” sequence. The inter character timing is set via S Register 12. If S Register 507 is >= 2, then reading this register will always return 0 and writing 1 will result in ERROR 33. S538 0..1 If 1, then when a successful pairing occurs, it is automatically saved in the trusted device database – if it has room to store it. S539 0..1 When set to 1, in idle mode (S512=1), UART Rx characters are discarded if DSR is deasserted. S541 -50..6 This sets the power level in dBm when inquiring or paging. Reading this register returns the value stored in non-volatile memory. S542 -50..6 As per S541, however reading this register returns the current power level as set in the base band. The read can be different from S541because the actual power is set using a lookup table and the base band rounds down to the nearest value in the table. S543 0..1 If this is set to 1, then incoming pairing attempts will be accepted (if a pin code has been pre-entered using AT+BTK) while in the wait phase of auto connect cycle initiated by the AT+BTR command. In addition to accepting pairing attempts, if the pairing is successful, then the new device is automatically set as the peer address for automatic connections (as if an explicit AT+BTR command was entered). See S Register 505 and 530 also 19 www.lairdtech.com Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 Register Default Range Comment S551 0x3211 0xFFFF This register specifies in each 4 bit nibble, how the outgoing modem status bits to the remote peer gets its value. Bluetooth® allows for RTR, RTC, DV and IC bits to be exchanged over an RFCOMM connection. Nibble 0..3 specifies the source for RTC 4..7 specifies the source for RTR 8..11 specifies the source for DV (i.e. DCD) 12..15 specifies the source for IC (i.e. RI) Each nibble can take the following value:0 Always set to 0 1 Always set to 1 2 If DCD (pin 8 on module connector) is output then always 1 If DCD is input then 1 if DCD is asserted otherwise 0 3 If RI (pin 6) is output then always 0 If RI is input then 1 if RI is asserted otherwise 0 4 If DSR (pin 10) is asserted then 1 otherwise 0 In the event that a nibble specifies DSR as the source of its state, be aware that if, S Register 507 is anything other than 0, a de-assertion of DSR will cause the Bluetooth connection to be dropped. If bits 0..3 and 4..7 are set to 0, then some Bluetooth devices will use that as a signal to stop sending any data back. For example, Nokia 6310 stops responding. If this register is changed while in command and connected mode, then on going back online using the ATO command, a fresh signal will be sent to the peer to update the bits. S552 0x0122 0x0FFF This register specifies in each 4 bit nibble, how the DTR, DCD, RI output pins are controlled when in a Bluetooth connection Nibble 0..3 specifies the source for DTR 4..7 specifies the source for DCD 8..11 specifies the source for RI Each nibble can take the following value:0 Do NOT touch the I/O 1 Always deassert 2 Always assert 3 If RTC bit in CONTROL_IND is 1 then assert otherwise deassert 4 If RTR bit in CONTROL_IND is 1 then assert otherwise deassert 5 If DV bit in CONTROL_IND is 1 then assert otherwise deassert 6 If IC bit in CONTROL_IND is 1 then assert otherwise deassert If this register is changed while in command and connected mode, then on going back online using the ATO command, the modem output lines will get refreshed. S553 0x0201 0x0FFF This register specifies in each 4 bit nibble, how the DTR,DCD,RI output pins are controlled when NOT in a Bluetooth connection Nibble 0..3 specifies the source for DTR 4..7 specifies the source for DCD 8..11 specifies the source for RI In addition it also refers to S Register 552 to see if the relevant pin is an input or not to be touched. If the nibble in 552 is 0, then the relevant pin is an input. Each nibble can take the following value:0 Always deassert 1 Always assert 2 Assert if RING is being sent to the host 20 www.lairdtech.com Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 Register Default Range Comment S554 0..900 If S Register 512>=2 and <=7 then this register specifies a time in seconds for which the device will stay in the S512 mode after power up or reset. On timeout, it will abort the discoverable and/or connectable and fall back into S512=1 mode, when it is deaf and dumb. Note that if AT+BTR has been used to specify a peer device, then on reverting to mode 1, it will attempt to make a connection to that peer device. A power cycle, reset via BREAK or ATZ is required to see the effects of change. S555 1..7 If S Register 554 is nonzero, then after the post reset window expires, the mode will revert to the mode specified in this register. This allows, for example, the device to be discoverable and connectable on power up (mode 4 or 7) and on window timer expiry to revert to connectable only (mode 3 or 6). A power cycle, reset via BREAK or ATZ is required to see effects of a change. In some firmware builds, S Registers 565 to 569 inclusive are visible, which allows the start-up mode to depend on the state of RI line (Setting S Reg 565 forces the RI pin to be configured as an input). For this feature to be active, SReg 565 should be set to 1. In that case, on start-up, if RI is asserted, then the start-up mode is defined by S Reg 568 and if deasserted then S Reg 569. S558 0..1 When 1, the following responses; “RING”, “NO CARRIER” and “CONNECT” are replaced by “BTIN”, “BTDOWN” and “BTUP” respectively. This will eliminate ambiguity when the module has a Bluetooth connection to an AT modem which also gives these responses. S559 0..3 This specifies a mask. When Bit 0 is 1, the response word “ERROR“ is replaced by “BTERR” and “OK” is replaced by “ok”. When Bit 1 is 1, then error responses do not include the error number and instead the error number can be retrieved using ATI12. S560 15 15..120 Disconnect timeout in seconds. This timer specifies how long to wait for confirmation from the peer device and/or the underlying stack that the connection has been successfully torn down. There can be instances where a confirmation does not arrive and so in this case this timer is used to ‘close off’ the procedure and put the state machine back into a proper mode for new operations. S565 If set to 1, RI (Ring Indicate) line is configured as an input and forces the start-up mode (SReg512) and post-timeout on Start-up mode (SReg555) to be dependent on the state of RI. The RI conditional modes are defined by SRegs 566 to 569 inclusive. S566 If S565=1, and RI is asserted then this is the mode the device will start up in. S567 If S565=1, and RI is deasserted then this is the mode the device will start up in. S568 If S565=1, and RI is asserted then this is the mode the device will assume after the post-start-up timeout defined in SReg 554 instead of mode defined in SReg555 S569 If S565=1, and RI is deasserted then this is the mode the device will assume after the post-start-up timeout defined in SReg 554 instead of mode defined in SReg555 S584 0..1 Enable/Disable eSCO Time is specified with 15 seconds intervals. When changing the unit returns ERROR 14 it implies the device is either in a connection or waiting for a connection and so the new value cannot be accepted. For the former, drop the connection, then issue the command AT+BTX and then set the new value and for the latter issue the command AT+BTX prior to setting the register. 21 www.lairdtech.com S588 0..1 After a disconnection, there will be a cold reset S589 0..F Codec output gain S590 0..3 Codec input gain S591 0..1FF Default GPIO output states when not in a connection. This is used when virtual digital i/o cable replacement mode is in operation Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 Register Default Range Comment S592 0..1 Set this to 1 to reduce the trusted device database to just 1 record when autosaving of pairing is enabled via S reg 538 S593 0..1 Automatically append last 6 digits of local bluetooth address to the friendlyname which was set via AT+BTN or AT+BTF S689 -450..+215 Set codec output gain in dBr * 10 S690 -450..+215 S730 0..1 Enable Auxiliary DAC S731 0..225 Set Auxiliary DAC Level (applies to sink), default = 0 Set codec input gain in dBr * 10 (applies to source), default = 0 9. ATSn? {Read S Register Value} This will return the current value of register n. For recognised values of n Response: As Appropriate OK For unrecognised values of n Response: 10. ATSn=? ERROR nn {Read S Register – Valid Range} This will return the valid range of values for register n. For recognised values of n Response: Sn:(nnnn..mmmm) OK For unrecognised values of n Response: 11. ATZ ERROR nn {Hardware Reset and emerge into mode ‘n’} Forces the device through a hardware reset which means it will eventually come alive in the local command and unconnected mode. This allows changes to the PS store to take effect. The module will issue an OK response after the reset is complete and it is ready to receive commands once again. ATZ and ATZ0 signify reset and emerge into the current mode (see command ATI14). ATZ1 to ATZ4 instructs the module to reset and then emerge into the appropriate boot mode. Note that S Reg 103 specifies the boot mode from cold. Response: 12. AT&W OK and OK is returned after the RESET {Write S Registers to Non-volatile Memory} Writes current S Register values to non-volatile memory so that they are retained over a power cycle. Response: OK Or Response: 22 www.lairdtech.com ERROR nn Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 13. ATIn {Information} This will return the following information about the Laird Technologies device. I0 The product name/variant. I1 The CSR firmware build number. I2 The Laird Technologies firmware build number. For internal use only. I3 The Laird Technologies firmware revision. I4 A 12 digit hexadecimal number corresponding to the Bluetooth address of the device. I5 The manufacturer of this device. I6 The maximum size of trusted device database. I7 The manufacturer of the Bluetooth chipset. I8 The chipset format. I9 0 if not in a connect state and 1 if in a connect state. I11 The reason why a “NO CARRIER” resulted in the most recent attempt at making an outgoing connection. Where the response values are as follows: 0 = No prior connection 1 = Connection timeout 2 = Connection attempt cancelled 3 = Normal disconnection 4 = Peer device has refused connection 5 = Service profile requested not available on remote device 6 = Connection has failed 32 = ATH was entered 33 = Incoming connection aborted because too many rings 34 = Unexpected incoming connection 35 = Invalid address 36 = DSR is not asserted 37 = Call limit of 65531 connections has been reached 38 = Pairing in progress 39 = No link key 40 = Invalid link key 255 = Unknown Reason I12 The last ERROR response number. I60 Connection status of SPP 0 = not connected 1 = connected identical with ATI9 I61 Connection status of A2DP 0 = not connected 1 = connected I62 Connection status of AVRCP 0 = not connected 1 = connected For recognised values of n. All other values of n will generate an error. Response: As Appropriate OK Or Response: 23 www.lairdtech.com ERROR nn Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 14. ATO {Enter Data Mode} (letter ‘o’) Return to data mode. Assume that the module is in data mode after OK is received. Responds with an error if there is no Bluetooth connection. Response: CONNECT 123456789012 Or Response: ERROR nn 15. AT&Fn {Set S Register Defaults} This command will only work when the device is in local command and unconnected mode. Depending on the value of ‘n’ it installs S Register values appropriate for various power modes, ranging from minimum power consumption to maximum. Legal values of ‘n’ are as per the following table. All other values of n will generate a syntax error response. If ‘n’ is not specified then a default value of 0 is assumed where the baud rate is NOT changed. &F0 (Default) Medium power consumption, UART baud rate unchanged. &F1 Minimum power consumption, UART baud rate set to 9600. &F2 Minimum power consumption, UART baud rate set to 38400. &F3 Minimum power consumption, UART baud rate set to 115200. &F4 Medium power consumption, UART baud rate set to 115200. &F5 Maximum power consumption, UART baud rate set to 115200. &F6 Maximum power consumption, UART baud rate set to 115200. The new values are NOT updated in non-volatile memory until the AT&W command is sent to the device. Response: OK Or Response: ERROR nn General Bluetooth Control 1. AT+BTAn {Control Audio Channel} Once a Bluetooth connection is active, and assuming the peer device is also a Laird Technologies device, this command is used to start/stop a SCO channel to transfer audio between the two peer devices. +BTA0 Switch off the channel. +BTA1 Switch on the channel. On receipt of the command, the following response immediately follows. Response: OK The lower layers then go through the process of setting up the SCO channel, and as soon as a SCO link is established, the following response is asynchronously sent to the host. Response: AUDIO ON Or if the SCO failed to be established. Response: AUDIO FAIL On the peer device, the host will asynchronously get …. Response: 24 www.lairdtech.com AUDIO ON Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 2. AT+BTC {Set Device Class Code} This command is used to set the device class code which will be sent in subsequent inquiry responses. It can be read back using the AT+BTC? Command, as described below. is a 6 digit hexadecimal number derived as per section “1.2 The Class of Device/Service Field” of the Bluetooth specification “Bluetooth Assigned Numbers”. The 24 bits are made of 4 fields briefly described as follows (bit 0 corresponds to the least significant bit):Bits 0-1 Format Type. This field currently only has a value of 00 (i.e. format type 1) Bits 2-7 These 6 bits define the Minor Device Class and the value is interpreted differently based on the Major Device class stored in the next 5 bits. Bits 8-12 These 5 bits define the Major Device Class as per Table 1.3 in “Bluetooth Assigned Numbers” Bits 13-23 This is an 11 bit field used as a mask to define the Major Service Class, as per Table 1.2 in “Bluetooth Assigned Number” Laird Technologies devices do not map to any predefined Major Service Class or Major Device Class and so the default devclass as shipped is 001F00, which means no Major Service Class and “Unclassified” Major Device class. Other examples of device class codes are follows:Code (Hexadecimal) Name Major Service Major Device Minor Device 001F00 Unclassified None Unclassified n/a 200404 Headset Audio Audio Headset Response: OK Or for an invalid value (usually a value which is not 6 hexadecimal characters long). Response: ERROR 08 3. AT+BTC? {Read Device Class Code} This command is used to read the current device class code. Response: 123456 OK 4. AT+BTD {Remove Trusted Device} This command is used to remove the specified device from the list of trusted devices in the non-volatile database. If the device is not in the database then the response will still be an OK. Response: OK 5. AT+BTD* {Remove All Trusted Devices} This command is used to remove all devices from the list of trusted devices in the non-volatile database. No confirmation will be asked for. So beware!!! WARNING: If you make an authenticated connection, the link key gets cached in the underlying stack. So if you subsequently delete the key using AT+BTD* and immediately request an authenticated connection to the same device, then the connection will be established. To ensure this does not happen, either send ATZ after the AT+BTD* OR send AT+BTD for each item in the trusted device database. Response: OK 6. AT+BTF= {Set Friendly Name} This sets the friendly name of this device as seen by other devices Response: 25 www.lairdtech.com OK Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 7. AT+BTF {Get Remote Friendly Name} This command gets the remote friendly name of the peer specified. Response: ,”Friendly Name” OK 8. AT+BTG {Enable Cautious Page Scanning ONLY} Enable page scanning and wait for a connection from device with Bluetooth address . If the specified address is 000000000000 then incoming connections are accepted from any device, is as per AT+BTP without an address. Inquiry Scans are disabled. Response: OK 9. AT+BTG {Enable Promiscuous Page Scanning ONLY} Enable page scanning only and wait for a connection from any device. Inquiry scans are disabled. Response: OK 10. AT+BTI {Inquire} This will make the device perform an inquiry for device class code for delay milliseconds and max number of unique responses, where delay is specified by S register 517 and max is specified by S register 518. The is an optional parameter where the value specifies either a 6 digit device class code or a 2 digit major device class. If it is not specified, then the value is taken from S register 516. When is 6 hexadecimal characters long, it specifies an AND mask which is used to filter inquiry responses. When is 2 hexadecimal characters long, it forces the inquiry to filter responses to devices that match their major device class code to this value – which can only be in the range 00 to 1F. Response: 12346789012 12345678914 OK If the module is waiting for an incoming connection, (entered via AT+BTP, AT+BTG, AT+BTQ), then it will respond with ERROR 14. To perform the inquiry, send AT+BTX to put the module back into idle mode. Response: ERROR 14 ERROR RESPONSE A Bluetooth inquiry process is such that for a single inquiry request a device could respond many times. To ensure that an address is sent to the host only once for a particular AT+BTI, an array of addresses is created at the start of each AT+BTI and is filled as responses come in. This array of addresses is stored in dynamic memory and as such if the memory allocation fails then the inquiry procedure is aborted and in that case an error response is sent to the host. To clarify, a single AT+BTI will never return the same Bluetooth address more than once, but as long as the responding device is active, all AT+BTI commands will always return it. Response: ERROR 27 11. AT+BTIV {Inquire} As per AT+BTI but the response includes the device class code for all inquiry responses. Please refer to the ‘ERROR RESPONSE’ note in the description for AT+BTI . 26 www.lairdtech.com Response: 12346789012,123456 12345678914,123456 OK Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 12. AT+BTIN {Inquire} As per AT+BTI but the response includes the device class code and friendly name for all inquiry responses. Please refer to the ‘ERROR RESPONSE’ note in the description for AT+BTI . The friendly name strings are in UTF-8 format as per the Bluetooth specification. Response: 12346789012,123456,”TDK SYSTEMS AT DONGLE 1” 12345678914,123456, “TDK SYSTEMS RS232” OK Note: Many releases of firmware will return the product name as LAIRD, e.g. Response: 12346789012,123456,”TDK SYSTEMS AT DONGLE 1” 12345678914,123456, “TDK SYSTEMS RS232” OK We strongly recommend that any software implementation that uses this command should check for LAIRD, EZURIO and TDK SYSTEMS to ensure backwards and forwards compatibility. 13. AT+BTK= {Set Passkey} This command is used to provide a passkey when PIN? 12345678 indications are received asynchronously. If a pairing is not in progress then the pin is written to non-volatile memory for future use. Specifying an empty string deletes the key from the non-volatile memory. The string length must be in the range 0 to 8, otherwise an error will be returned. Response: OK 14. AT+BTM {Delete Incoming Peer Address} This command is used to delete the peer address previously stored using AT+BTR . Response: OK 15. AT+BTM? {Read Incoming Peer Address} This command is used to display the peer address stored in non-volatile memory, used to put the module in pure cable replacement mode. Response: 12346789012 OK If the location is empty the response is as follows. Response: 00000000000 OK 16. AT+BTN= {Set Friendly Name in Non-volatile Memory} This sets the default friendly name of this device as seen by other devices. It will be stored in non-volatile memory. Use AT+BTF to make the name visible to other devices. Use AT+BTN? To read it back. An empty string (“”) will delete the string from non-volatile memory which will force the default name to be used. Response: OK 17. AT+BTN? {Read Friendly Name from Non-volatile Memory} Read the default friendly name from non-volatile memory. 27 www.lairdtech.com Response: ”My FriendlyName” OK Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 18 AT+BTP {Enable Cautious Page/Inquiry Scanning} Enable page scanning and wait for a connection from device with Bluetooth address . If the specified address is 000000000000 then incoming connections are accepted from any device, is as per AT+BTP without an address. Inquiry scanning is also enabled. Response: OK 19. AT+BTP {Enable Promiscuous Page/Inquiry Scanning} Enable page scanning and wait for a connection from any device. Inquiry scanning is also enabled. Response: OK 20. AT+BTQ {Enable Inquiry Scans ONLY} When inquiry scan is enabled, it implies that this device will respond to inquiries from other devices. Use AT+BTX to disable inquiries. Response: OK 21. AT+BTR {Set Outgoing Peer Address} This command is used to store a peer address for outbound connections in non-volatile memory. A value of 000000000000 has the special meaning of invalid peer address. This command is used to set up a module in pure cable replacement mode. If S register 512 = 1 and the peer address is NOT 000000000000, then it will periodically (time specified via S register 505) attempt to connect to the peer address specified. In this circumstance all commands from the host are buffered in the receive buffer, until a Bluetooth connection is established with the peer device and it then sends the buffer across. This means that if the peer device is not in the vicinity and will never be there, the device effectively becomes useless, as in this circumstance a host would want to get attention of the AT parser to send it new commands – probably one to delete the peer device. In this circumstance, a recovery is possible by one of two methods. The first method assumes that the DTR from the host is connected to the DSR line of the module and the second method assumes that this connection is absent. In the first method it is enough to deassert the DTR line from the host and that will abort the autoconnect cycle. The second method is initiated by resetting the device and then ensuring that the text string “AT+BT&BISM& ” is sent (where is the carriage return character). There is special code which looks out for this magic command and terminates the autoconnect cycle if it sees it and confirms to the host of that fact by sending an “OK” response. Response: OK 22. AT+BTR {Delete Outgoing Peer Address} This command is used to delete the peer address previously stored using AT+BTR . Response: OK 23. AT+BTR? {Read Outgoing Peer Address} This command is used to display the peer address stored in non-volatile memory, used to put the device in pure cable replacement mode. Response: 12346789012 OK If the location is empty the response is as follows. 28 www.lairdtech.com Response: 00000000000 OK Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 24. AT+BTT {Add Trusted Device} This command is used to store the cached link key in the non-volatile database. If the database is full it will respond with an ERROR. If the device is already in the database, then the key is replaced. If the link key cache is empty, that is, a pairing has not been performed since the device was powered, then the response will be an ERROR. Response: OK Or Response: ERROR 25. AT+BTT? {List Trusted Device} This command is used to list the contents of the trusted device database. The link key is NOT displayed so the response is as shown below. If the list is empty then just the OK response is sent otherwise an OK is used to terminate the list. Use the command ATI6 to read the maximum size of the trusted device database. Response: 12346789012 12345678913 12345678914 OK 26. AT+BTW {Initiate Pairing} This initiates pairing with a device whose Bluetooth address is . An OK response is sent and when the PIN is required, asynchronous indications will be sent to the host in the form PIN? where the address confirms the device with which the pairing is to be performed. To supply a PIN, use the AT+BTK command. For a successful pairing, the link key is stored in a volatile cache which is overwritten every time a new pairing is initiated using this command. The link key can be stored in a non-volatile database within the device. The list of trusted devices is managed using commands AT+BTT?, AT+BTT and AT+BTD. The AT+BTT? command produces a list of trusted Bluetooth addresses (link key is NEVER displayed) and AT+BTT is used to store the cached link key. The command AT+BTD123456789012 is used to remove the specified device from the database. The “OK” response is sent immediately on receipt of the AT+BTW command. On pairing completion, an unsolicited message will be sent to the host which will be in the form PAIR n . See section 3.7 for more details. If AT+BTI or AT+BTP or AT+BTG or AT+BTQ or ATD is issued between the AT+BTW command and the subsequence PAIR asynchronous response, then an ERROR response will be sent to those commands as the device is not in a mode from where such commands can be actioned. Response: OK 27. AT+BTW? {List Cached Trusted Device} This command is used to list the cached trusted device. Response: 12346789012 OK If the cache is empty the response is as follows. Response: OK 28. AT+BTX {Disable Page/Inquiry Scanning} Disable page/inquiry scanning. This means it will not accept incoming connections or inquiry requests. In fact this negates the effect of AT+BTQ, AT+BTG and AT+BTP commands. Response: 29 www.lairdtech.com OK Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 Hardware Unit Control This section covers S-Registers and AT-Commands that are related to hardware units within the module. 1. Audio Loopback Mode For testing purposes, an audio loopback mode will be introduced. The stereo audio input signal is fed through the Kalimba DSP with running SBC codec, and is directed back to the audio stereo output. Audio Loopback Mode is controlled with the new AT Command “AT+BTL”. Table 3-2: Audio Loopback AT-Commands and S-Registers Task AT-Command / SRegister Comment Set audio loopback mode AT+BTL Mode: 0 = off 1 = on, via PCM 2 = on, via SBC encoder/decoder Set sampling rate for Audio Loopback Mode S419 [0..6], default=6 0 = 8 kHz 1 = 11.025 kHz 2 = 16 kHz 3 = 22.050 kHz 4 = 24 kHz 5 = 32 kHz 6 = 44.1 kHz 2. Codec Gain 30 www.lairdtech.com On BC05-MM, analogue input and output gains can be set to one of 23 steps called “Gain Level”. To each gain level, an overall gain (dBr) is assigned, according to Table 3 3: Gain Table. Gain values can be specified either as gain level or as overall gain by separate S Registers. Please note that a pair of such S-Registers always updates the other corresponding S-Register (e.g. S589 – S689 and S590 – S690). For S689 and S690 the overall gain (dBr) must be entered multiplied by 10. If the input value doesn’t match a gain table entry, the nearest possible value is set. The actually set value can be checked by reading back S689/S690. The value of S689/S690 is printed out multiplied by 10 in order to avoid non integer numbers. The new command class “AT+G…” is introduced in Bism3 which enables incremental and decremental gain settings. The increment/decrement command corresponds to one row up/down in the gain table (Table 3 3). The Gain level registers S589/S689 and S590/S690 are not affected by increment/decrement commands. Instead, the current gain level is cached and can be retrieved by “AT+G(I|O)?”. There are 2 further commands to restore the cached gain level from S589/S590 (“AT+G(I|O)R”) and to save the currently cached gain level to S589/S590 (“AT+G(I|O)S”). Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 Table 3-3: Gain Table Output Gain Level or Input Gain Level S589 or S590 Overall Gain (dBr) S689 or S690 22 +21.5 21 +18.0 20 +15.5 19 +12.0 18 +9.5 17 +6.0 16 +3.5 15 14 -3.0 13 -6.0 12 -9.0 11 -12.0 10 -15.0 -18.0 -21.0 -23.5 -27.0 -29.5 -33.0 -35.5 -39.0 -41.5 -45.0 Table 3-4: Gain Settings AT Commands and S-Registers 31 www.lairdtech.com Task AT-Command / SRegister Comment Set output gain level S589 [0..22], default=15 See Gain Table; S689 is affected, too Set output overall gain (dBr) S689 [-450..+215], default=0 See GainTable; value must be entered (and is returned) multiplied by 10; S589 is affected, too Set input gain level S590 [0..22], default=15 See Gain Table; S690 is affected, too Set input overall gain (dBr) S690 [-450..+215], default=0 See GainTable; value must be entered (and is returned) multiplied by 10; S590 is affected, too Increment current output gain level AT+GOU Error 57 may appear if maximum gain level reached Decrement current output gain level AT+GOD Error 58 may appear if minimum gain level reached Query current output gain level AT+GO? Restore current output gain level from S589 AT+GOR Save current output gain level to S589 AT+GOS Increment current input gain level AT+GIU Error 57 may appear if maximum gain level reached Decrement current input gain level AT+GID Error 58 may appear if minimum gain level reached Query current input gain level AT+GI? Restore current input gain level from S590 AT+GIR Save current input gain level to S590 AT+GIS Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 3. Mic Input Gain A microphone preamplifier which adds extra 20dB to input gain, is controlled by S-Register 415. 4. Mic Bias Mic Bias will be enabled with S-Register 416. Mic Bias Current is controlled by S-Register 417. Mic Bias Voltage is controlled by S-Register 418. 5. Auxiliary DAC The auxiliary DAC is enabled with S-Register 730. The DAC output level is set by S-Register 731. 6. LED The BT-MM+ module provides two dedicated output pins for LEDs (LED_EXT0, LED_EXT1). Following modes are supported: LED_OFF, LED_ON, LED_PWM and LED_PULSE. In LED_PWM mode, the parameters “Duty Cycle” an “PWM Period” can be specified via S-Registers. This enables either a to dim the brightness of an LED (PWM Period=0) or to specify blinking with defined on-time in a defined period (PWM Period > blinking visible for the eye) In LED_PULSE mode, the brightness of an LED is modulated. Modulation speed is defined by parameter “Pulse Rate” and maximum brightness is defined by parameter “Duty Cycle”. Table 3-5: LED S-Registers Task AT-Command / SRegister Comment Set LED_EXT0 mode S335 [0..3], default=0 Set LED_EXT1 mode S340 [0..3], default=0 Mode: 0 = LED_OFF 1 = LED_ON 2 = LED_PWM 3 = LED_PULSE Set LED_EXT0 Duty Cycle S336 [0..4095], default = 2048 Set LED_EXT1 Duty Cycle S341 [0..4095], default = 2048 Set LED_EXT0 PWM Period S337 [0..15], default = 0 Set LED_EXT1 PWM Period S342 [0..15], default = 0 Set LED_EXT0 Pulse Rate S338 [0..15], default = 0 Set LED_EXT1 Pulse Rate S343 [0..15], default = 0 referenced if LED mode = LED_PWM or LED_PULSE referenced if LED mode = LED_PWM referenced if LED mode = LED_PULSE Bluetooth Profiles This section covers S-Registers and AT-Commands that are related to the supported Bluetooth Profiles on the BT-MM+ module. 1. Profile Server Activation In order to advertise available services to potential client devices, S-Register 102 is used. Supported profiles can be activated by setting the appropriate Flag in S-Register 102 (see Table 3 1). After S-Register 102 has been written, all S-Registers must be saved to non-volatile memory (“AT&W”) and subsequently a reset has to be carried out (“ATZ”). 2. A2DP The “Advanced Audio Distribution Profile” is used to transmit high quality audio streams between two Bluetooth devices. An A2DP role must be assigned to a BT-MM+ module, either source or sink. After this has been done, the appropriate service can be advertised. An attempt to advertise A2DP-service without prior set up of a role will result in a (new) response error code 46. An incoming A2DP connection request is accepted automatically if a valid link key for the paging device exists. If no link key is available, Secure Simple Pairing (SSP, BT2.1) or legacy pairing (BT2.0 or earlier) is carried out, depending on the Bluetooth Version of the paging device. After an A2DP connection has been established, the module remains in AT Command mode. S Register 531 is ignored for A2DP connections. 32 www.lairdtech.com Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 Table 3-6: A2DP - S-Registers and AT-Commands Task AT-Command / SRegister Comment Set A2DP role S300 [0..2] 0 = feature not set 1 = A2DP Sink (default) 2 = A2DP Source Advertise service S102 128 = A2DP, Error 46 if A2DP role has not been set (see S300) Initiate outgoing A2DP connection AT+APD Response if accepted: “CONNECT 0123456789012,110D” Response if rejected: “NO CARRIER 110D” close only A2DP connection “AT+APH” or “ATH110D” Response: “NO CARRIER 110D” if connection has existed and S329=0 “NO CARRIER” if connection has not existed and S329=0 close all connections ATH* Response: “NO CARRIER ” for each profile that was previously connected (see section 3.7.2) Set gain level S589 [0..22], default = 15 Set codec output gain level (applies to sink) S590 [0..22], default = 15 Set codec input gain level (applies to source) S689 [-450..215] Set codec output gain in dBr * 10 (applies to sink), default = 0 S690 [-450..215] Set codec input gain in dBr * 10 (applies to source), default = 0 Set A2DP sink supported features bit mask S312 [0..15] Bitmask - sink supported features: Bit 0 = Headphone (default) Bit 1 = Speaker Bit 2 = Recorder Bit 3 = Amplifier Set A2DP source supported features bit mask S313 [0..15] Bitmask - source supported features: Bit 0 = Player (default) Bit 1 = Microphone Bit 2 = Tuner Bit 3 = Mixer Set overall gain (dBr * 10) 3. AVRCP The “Audio/Video Remote Control Profile” is used to remotely control audio or video streaming devices. A device must be defined as either control or target. Furthermore, one of four categories (Player/Recorder, Monitor/Amplifier, Tuner, Menu) has to be assigned to a device. 33 www.lairdtech.com The AVRCP specification [5] adopts the AV/C Digital Interface Command Set (AV/C command set, defined by the 1394 Trade Association) device model and control message format. In this device model a remote control target consists of one or more subunits. At least the subunit ”PANEL” must exist. Remote control commands are passed to a subunit with the “PASS THROUGH” command. A BT-MM+ Module, configured as target will support one PANEL subunit. 3.1 AVRCP - Control (CT) This section describes AT Commands and S registers used when BT-MM+ is configured as an AVRCP Controller (S301=1). Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 3.1.1 Initiate AVRCP control connection AT+AVD Initiate AVRCP control connection to Bluetooth address . The module must be configured as AVRCP Control by S register 301 = 1. Furthermore, a category be selected in S register 302. Response: CONNECT 123456789012,110E Or: NO CARRIER 110E Or: ERROR 47 Or: ERROR 48 After an AVRCP connection has been established, the module remains in AT command mode. S Register 531 is ignored for AVRCP connections. 3.1.2 Release AVRCP control connection AT+AVH Release AVRCP control connection. Response: NO CARRIER 110E 3.1.3 Send UNIT INFO Request AT+AVU Send a Unit Info request to a connected AVRCP target. Response immediately: On command completion: AVUR n = statusdec : OK 0 – success 1 – fail 4 – timeout For unit_type see Table 3 9: AV/C Unit/Subunit Types. 3.1.4 Send SUBUNIT INFO Request (incomplete) AT+AVS 34 www.lairdtech.com Send a Subunit Info request to a connected AVRCP target. Response: OK And: (immediately) AVSR (after command completion) : requested page [0..31] 1st word of requested page Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 3.1.5 Send remote control command AT+AVC , Send a remote control command to a connected AVRCP target. Internally, a PASS THROUGH command is created and sent to the PANEL subunit of the AVRCP target. is the value for the actual remote control command. Valid values are specified in Table 3 8. Some Operation IDs can be replaced by mnemonics, see Table 3 8. represents “Button pushed” (=0) or “Button released” (=1) If is not specified, two PASS THROUGH commands, each with button_state=0 and button_state=1 will be created and sent consecutively. The “OK” response is sent immediately on receipt of AT+AVC command. On command completion, an unsolicited message will be sent to the host in the form “AVPTC n ”. AVPTC means “AVrcp Pass Through Confirmation”. Parameter n indicates the command status: ‘n’=0: successful, command confirmation received from target ‘n’=1: timeout, target has not sent confirmation within the specified maximum time ‘n’=2: all other unsuccessful outcomes Parameters: (mandatory): see Table 3 8 (optional) ‘0’ - Button pushed Response: And: OK ‘1’ - Button released (immediately) AVPTC n (after command completion) If status n indicates an unsuccessful outcome, and are omitted. 3.2 AVRCP – Target (TG) This section describes AT Commands and S registers when BT-MM+ is configured as an AVRCP Target (S301=2). In this mode, BT-MM+ supports one subunit PANEL (see [5]). 3.2.1 Incoming AVRCP Connection Request An incoming AVRCP connection request is accepted automatically if a valid link key for the paging device exists. If no link key is available, Secure Simple Pairing (SSP, BT2.1) or legacy pairing (BT2.0 or earlier) is carried out, depending on the Bluetooth Version of the paging device. After an AVRCP connection has been established, the module remains in AT command mode. S Register 531 is ignored for AVRCP connections. 3.2.2 UNIT INFO Response It is mandatory to respond to a UNIT INFO command if configured as AVRCP target. Required response parameters are IEEE Company ID and a Unit Type. The IEEE Company ID is a 24 bit integer which can be set via new S register 303. In the current revision of BT-MM+ firmware, subunit “Panel” (=0x09) will be returned always. Values of unit/subunit types are outlined in Table 3 9. 3.2.3 SUBUNIT INFO Response 35 www.lairdtech.com It is mandatory to respond to a SUBUNIT INFO command if configured as AVRCP target. Required response parameters are Subunit type and MaxSubUnitId. Subunit type will always be returned as 0x09 (Panel). MaxSubUnitId will always be returned as 0x00 (only one subunit exists, which is panel) Laird Technologies BTM520/521 Bluetooth® Multimedia Plus Module CONFIGURING THE BTM520/521 3.2.4 PASS THROUGH Indication An incoming PASS THROUGH command will be indicated by an unsolicited message AVPTI For subunit_idhex see Table 3 9. For operation_idhex see Table 3 8.