FSC-BT1036 AT Command Set

[中文]

Introduction

Description

This design guide is suitable for engineers to develop FSC-BT1036 series Bluetooth modules, also suitable for BT955, BT936B, BT909C, BT906 series modules

Module Default Settings

Name

FSC-BT1036-XXXX

LE-Name

FSC-BT1036-LE-XXXX

Pin Code

0000

Secure Simple Pairing Mode

ON

UART Baudrate

115200/8/N/1

Command Description

Terms

  • Throughout this specification:

  • Content between { } is optional

  • Content behind << represents a COMMAND from Host

  • Content behind >> represents a RESPONSE/EVENT to Host

Command Format

AT+Command{=Param1{,Param2{,Param3…}}}<CR><LF>
  • All commands start with “AT”, end with <CR><LF>

  • <CR> means “carriage return”, corresponds to hex value 0x0D

  • <LF> means “line feed”, corresponds to hex value 0x0A

  • If Command has Parameter, Parameter follows behind ‘=’

  • If Command has multiple Parameters, Parameter must be separated by ‘,’

  • If Command has Response, Response starts with <CR><LF>, ends with <CR><LF>

  • Module will always report command’s execution result by using “OK” for success or “ERR<code>” for failure

Error Code

Meaning

001

Failed

002

Invalid parameter

003

Invalid state

004

Command mismatch

005

Busy

006

Command not supported

007

Profile not turned on

008

No memory

Others

Reserved for future use

Example:Read module’s BR/EDR local name
<< AT+VER
>> +VER=FSC-BT1036-XXXX
>> OK

Example:Pick up an incoming call when no call incoming actually
<< AT+HFPANSW
>> ERR003

Event Format

<CR><LF>+Indication{=Param1{,Param2{,Param3…}}}<CR><LF>
  • All Events start with <CR><LF>, end with <CR><LF>

  • If Event has Parameter, Parameter follow behind ‘=’

  • If Event has multiple Parameters, Parameter must be separated by ‘,’

  • Use command AT+SEP to replace default separator for conflict prevention

Example: Received “1234567890” from mobile phone via SPP profile
>> +SPPDATA=10,1234567890

Example: Dial number “10086” using a mobile phone when HFP connected
>> +HFPSTAT=4
>> +HFPAUDIO=1
>> +HFPSTAT=6,10086

Commands Table

General Commands

AT+HELP - Firmware Function/Command Summary

Command

AT+HELP

Response

<FIRMWARE FUNCTION: appropriate working scenario >
<OTA PATH: latest suitable firmware path on server for upgrade On-The-Air>
<ENABLED PROFILES: LINKS: ON/OFF>
<COMMAND SUMMARY: DESCRIPTION: PROFILE CATEGORY>

Description

Using help command to get the basic summary information

AT+SEP - Get/Set Event/Response Separator

Command

AT+SEP{=Param}

Param

hex value 0x01~0xFF, default: ‘,’ , specially, using ‘0’ instead of ‘xFF’ for convenience

Response

+SEP=Param

Description

The parameter of events/responses may contain value same to the default separator,
using this command to replace default separator for conflict prevention
(replace the default separator ‘,’ to hex value ‘xFF’ typically)
Example:Read module’s paired record (device name contains ‘,’ already)
<< AT+PLIST
>> +PLIST=1,32808,1C5CF226D773, Tony, iPhone12
>> +PLIST=2,40, A0BC30075421, Samsung S8
>> +PLIST=E
>> OK
Example: Replace separator to ‘0xFF’
<< AT+SEP=0
>> OK
Example: Read module’s paired record again
<< AT+PLIST
>> +PLIST=1<FF>32808<FF>1C5CF226D773<FF>Tony, iPhone12
>> +PLIST=2<FF>40<FF> A0BC30075421<FF>Samsung S8
>> +PLIST=E
>> OK

AT+VER - Get Firmware Version

Command

AT+VER

Response

+VER=Param1,Param2,Param3

Param1

Module type

Param2

Firmware version

Param3

Data of production

Note

The date of production in response will not be changed after firmware upgrade

Example:
<< AT+VER
>> +VER=BT1036,V2.6.1,20220922
>> OK

AT+BAUD - Get/Set Uart Baudrate

Command

AT+BAUD{=Param}

Param

2400/4800/9600/19200/38400/57600/115200(default)/128000/
230400/256000/460800/512000/921600/1382400

Response

+BAUD=Param1,Param2,Param3

Param

All baudrates supported by current module

Description

Module will change baudrate to target value immediately or
after reboot depending on firmware
Example:Query baudrates supported by current module then change baudrate from 115200 bps to 921600 bps
<< AT+BAUD
>> +BAUD=2400,4800,9600,19200,38400,57600,115200,128000,230400,256000,
460800,512000,921600,1382400
>> OK

<< AT+BAUD=921600
>> OK
Module switch baudrate to 921600 immediately, host change baudrate as well, query module’s name at new baudrate
<< AT+NAME
>> +NAME=FSC-BT91036-1F26
>> OK

AT+I2CREG - Read/Write I2C Register

Command

AT+I2CREG=Param1, Param2, Param3 {,Param4}

Param1

i2c bus address, 2 byes hex string

Param2

i2c register address, 2/4 byes hex string

Param3

bytes to read/write (1~64)

Param4

value to write

Response

+I2CREG=Param

Param

i2c read return value

Description

Command can be used only if module’s build-in codec is disabled,
the i2c bus is master by default.
Example:Read external i2c slave device, address:0x34, register 0003, bytes:2; then modify value to 0xA13B
<< AT+I2CREG= 34,0003,2
>> +I2CREG=805F
>> OK
<< AT+I2CREG= 34,0003,2,A13B
>> OK

AT+I2SCFG - Get/Set I2S Settings

Command

AT+I2SCFG{=Param}

Param

A base-10 representation of a bit field, default:0, for each bit

BIT[0]

0:disable; 1:enable

BIT[1]

0:master; 1:slave

BIT[2]

0:FS=48000Hz;1:FS=44100Hz

BIT[3-4]

00: I2S standard format
10: PCM short frame format

BIT[5-6]

00: bit depth=16bits
10: bit depth=32bits (only 16bits of MSB effective)
11: bit depth=32bits (only used for PCM mode)

Response

+I2SCFG=Param

Description

The BT90X modules support serval external codecs by default,
e.g. ES8388, TLV320AIC3204 and etc. BT1036/BT955 built-in codec
If +I2SCFG=0, module will auto detect on of them on booting

Note

Use command AT+HFPSR for setting HFP voice call sample rate

Example:usual configuration and description

0

Analog mode, module will probe internal/external codecs via I2C on booting,
and will report +CODEC= id to indicate user which codec has been recognized

1

I2S Master; Sample rate=48000Hz; Resolution=16bits; Bit clock= 48000*16*2ch=1.536Mhz

3

I2S Slave; Sample rate=48000Hz; Resolution=16bits; Bit clock= 48000*16*2ch=1.536Mhz

65

I2S Master; Sample rate=48000Hz; Resolution=32bits; Bit clock= 48000*32*2ch=3.072Mhz

67

I2S Slave; Sample rate=48000Hz; Resolution=32bits; Bit clock= 48000*32*2ch=3.072Mhz

113

PCM Master; Sample rate=48000Hz; Resolution=16bits; Bit clock= 48000*16*2ch=1.536Mhz

AT+MICGAIN - Get/Set Analog Input Gain

Command

AT+MICGAIN{=Param}

Param

Gain (0~15, default:8)

Description

Adjust codec analog input gain,
only work for module with codec build in (unavailable for I2S input)

AT+SPKVOL - Get/Set Analog Output Volume

Command

AT+SPKVOL{=Param1,Param2}

Param1

Volume for A2DP Streaming (0~15, default:8)

Param2

Volume for HFP Call (0~15, default:8)

Description

Adjust codec analog output gain,
only work for module with codec build in (unavailable for I2S output)

AT+REBOOT - Soft Reboot

Command

AT+REBOOT

Response

OK

Description

Module release all Bluetooth connections with remote device then reboot

Example:
<< AT+REBOOT
>> OK

AT+RESTORE - Restore Factory Settings

Command

AT+RESTORE

Response

OK

Description

Module restore all factory settings then reboot

Example:
<< AT+RESTORE
>> OK

AT+BTEN - Bluetooth On/Off

Command

AT+BTEN{=Param}

Param

0-Power off 1-Power on

AT+PROFILE - Bluetooth Profile Selection

Command

AT+PROFILE{=Param}

Param

A base-10 representation of a bit field, for each bit:

BIT[0]

SPP (Serial Port Profile)

BIT[1]

GATT Server (Generic Attribute Profile)

BIT[2]

GATT Client (Generic Attribute Profile)

BIT[3]

HFP-HF (Hands-Free Profile Handsfree)

BIT[4]

HFP-AG (Hands-Free Profile Audio Gateway)

BIT[5]

A2DP Sink (Advanced Audio Distribution Profile)

BIT[6]

A2DP Source (Advanced Audio Distribution Profile)

BIT[7]

AVRCP Controller (Audio/Video remote controller Profile)

BIT[8]

AVRCP Target (Audio/Video remote controller Profile)

BIT[9]

HID Keyboard (Human Interface Profile)

BIT[10]

PBAP Server (Phonebook Access Profile)

BIT[15]

iAP2 (For iOS devices)

Response

+PROFILE=Param

Description

GATT Server and Client, HFP Sink and Source, A2DP Sink and Source, AVRCP Controller
and Target cannot be enabled simultaneously because of mutual exclusion.
Example:Read current profile selection
<< AT+PROFILE
>> +PROFILE=1195
Example:Enable SPP, GATT Server, HFP Source, A2DP Source profile, disable the others
<< AT+PROFILE=83
>> OK
Example:Enable SPP, A2DP Sink, disable the others
<< AT+PROFILE=33
>> OK

AT+AUTOCONN - Power On Auto Reconnect Profile Selection

Command

AT+AUTOCONN{=Param}

Param

A base-10 representation of a bit field, format same with AT+PROFILE

Response

+AUTOCONN=Param

Description

Module will attempt to establish connection to devices in paired list after power on.

AT+STAT - Get All Profile State

Command

AT+STAT

Response

+STAT=Param1, Param2, Param3…

Description

Query all current enabled profile’s state

Example: Read current profile selection
<< AT+PROFILE
>> +PROFILE=83
Example:Read profile state
<< AT+STAT
+STAT=3,1,2,5
>> OK
_images/profile_state.png

AT+DEVSTAT - Read Device State

Command

AT+DEVSTAT

Response

+DEVSTAT=Param

Param

A base-10 representation of a bit field, for each bit:

BIT[0]

0: Power Off; 1: Power On

BIT[1]

0: BR/EDR Not Discoverable; 1: BR/EDR Discoverable

BIT[2]

0: BLE Not Advertising; 1: BLE Advertising

BIT[3]

0: BR/EDR Not Scanning; 1: BR/EDR Scanning

BIT[4]

0: BLE Not Scanning; 1: BLE Scanning

Example:usual combination and description

0

Device power off

1

Device power on

3

Device power on, BR/EDR Discoverable

5

Device power on, BR/EDR Not Discoverable, BLE Advertising

7

Device power on, BR/EDR Discoverable, BLE Advertising

13

Device power on, BR/EDR Not Discoverable, BLE Advertising, Scanning nearby BR/EDR devices

AT+ADDR - Get BR/EDR MAC Address

Command

AT+ADDR

Response

+ADDR=Param

Param

Module’s BR/EDR MAC address (12 Bytes ASCII)

Example:
<< AT+ADDR
>> +ADDR=DC0D30010203
>> OK

AT+LEADDR - Get BLE MAC Address

Command

AT+LEADDR

Response

+LEADDR=Param

Param

Module’s LE MAC address (12 Bytes ASCII)

AT+NAME - Get/Set BR/EDR Local Name

Command

AT+NAME{=Param1{,Param2}}

Param1

BR/EDR local name(1~31 Bytes ASCII)

Param2

MAC address suffix(0/1,default:1)
0: Disable suffix
1: Enable suffix “-XXXX” (lower 4 bytes of MAC address) after local name

Response

+NAME=Param

Description

Write local name if parameter exist, otherwise read current local name

Example:Read current BR/EDR local name
<< AT+NAME
>> +NAME=FSC-BT1036-XXXX
>> OK

Example:Change module’s BR/EDR local name to “ABC”,and disable suffix
<< AT+NAME=ABC,0
>> OK

Example:Change module’s BR/EDR local name to “ABC” and enable suffix
<< AT+NAME=ABC,1
>> OK

AT+LENAME - Get/Set BLE Local Name

Command

AT+LENAME{=Param1{,Param2}}

Param1

BLE local name(1~25 Bytes ASCII)

Param2

MAC address suffix(0/1,default:1)
0-Disable suffix
1-Enable suffix “-XXXX” (lower 4 bytes of MAC address) after local name

Response

+LENAME=Param

AT+SSP - Get/Set BR/EDR Pairing Mode

Command

AT+SSP{=Param}

Param

Pairing mode (0~3, default:2)
(0) Legacy pairing, use pin code for pairing
(1) Secure simple pairing, auto pairing
(2) Secure simple pairing, display yes/no in pairing
(3) Secure simple pairing, passkey compare,
user need to accept/reject pair request with command AT+CFM

Response

+SSP=Param

Note

need reboot

AT+PIN - Get/Set BR/EDR Pin Code

Command

AT+PIN{=Param}

Param

Pin code(4~15 Bytes ASCII, default:0000)

Response

+PIN=Param

Description

Pin code only work in legacy pairing mode, see AT+SSP

Example:Read module’s pin code
<< AT+PIN
>> +PIN=0000
>> OK

Example: Change module’s pin code to “1234”
<< AT+PIN=1234
>> OK

AT+CFM - Accept/Reject Remote Pairing Request

Command

AT+CFM=Param1, Param2

Param1

12 Bytes MAC address of remote device

Param2

0-Reject remote pairing request
1-Accept remote pairing request

Description

Only used for pairing request in pairing mode 3, see AT+SSP

AT+COD: Get/Set Device Class

Command

AT+COD=Param

Param

Class of device(6 bytes ASCII, default:240408 Handsfree device)

Response

+COD=Param

Related configuration reference: COD.

AT+PAIR: Get/Set BR/EDR/BLE Visibility

Command

AT+PAIR=Param

Param

Mode(0-3)
0: Leave BR/EDR/BLE discoverable mode (stop advertising/broadcasting)
1: Enter BR/EDR discoverable mode (start broadcasting)
2: Enter BLE discoverable mode (start advertising)
3: Enter BR/EDR/BLE discoverable mode (start advertising/broadcasting)

Description

Module will always be discoverable if no device connected (BR/EDR or BLE),
and be undiscoverable if connected with remote device, unless received this command

AT+PAGE: Get/Set BR/EDR Connectability

Command

AT+PAGE=Param

Param

Mode(0-1)
0: Leave BR/EDR connectable mode (stop paging)
1: Enter BR/EDR connectable mode (start paging)

Description

Module will always be connectable mode if no device connected,
and be unconnectable if connected with remote device, unless received this command

AT+SCAN - Scan Nearby Devices

Command

AT+SCAN=Param1{,Param2{,Param3}}

Param1

scan type(0~3)
0: Stop scan
1: Scan nearby BR/EDR devices
2: Scan nearby BLE devices
3: Scan nearby BR/EDR/BLE devices

Param2

(1~48)Scan period. unit:1.28s, default:12.8s

Param3

(1~25 Bytes ASCII)Name filter. Filter scan results with name if set

Description

Format description reference: +SCAN - Scan Result

AT+RSSI: Get BR/EDR Signal Strength

Command

AT+RSSI=Param

Param

12 Bytes MAC address of current connected device

Response

+PIN=Param

Param

RSSI value (-127 ~ 0)

AT+PLIST - Get/Delete Paired List

Command

AT+PLIST{=Param}

Param

(0/1~8/12 Bytes MAC address)
(0) Clear all paired record
(1~8) Clear specific paired record with index
(MAC) Clear specific paired record with MAC address

Response1

+PLIST=Param1, Param2, Param3{,Param4}

Param1

(1~8) Paired device’s index

Param2

A base-10 representation of a bit field, support profiles of device, see AT+PROFILE

Param3

(MAC) Paired device’s MAC address

Param4

(UTF8) Paired device’s name

Response2

+PLIST=E End of the paired record

Example:Read module’s paired record
<< AT+PLIST
>> +PLIST=1,32808,1C5CF226D773, iPhone12
+PLIST=2,40, A0BC30075421, Samsung S8
+PLIST=E
>> OK

Example:Clear module’s paired record
<< AT+PLIST=0
>> OK

AT+DSCA - Release All Connections

Command

AT+DSCA

Description

Module release all Bluetooth connections with remote device

AT+AUDROUTE - Audio Route Manager

Command

AT+AUDROUTE{=Param}

Param

Note: HF1 & HF2 means peer Bluetooth headphones
0 Stop audio routing
1 Route music (a2dp streaming) from Module to HP1/HP2 simultaneously
2 Route voice call (hfp sco) between Module and HP1
3 Route voice call (hfp sco) between Module and HP2
4 Route voice call (hfp sco) between HP1 and HP2 (intercom mode)
5 Route voice call (hfp sco) from Module to HP1/HP2 simultaneously
6 Route music (a2dp streaming) from Module to HP1 only
7 Route music (a2dp streaming) from Module to HP2 only

Description

Some route mode require specify firmware version.

AT+TPMODE - Turn On/Off Throughput Mode

Command

AT+TPMODE{=Param}

Param

Throughput mode(0~1,default:0) 0: Turn Off 1: Turn On

Response

+TPMODE=Param

Description

When SPP/GATT profile connected and throughput mode is on,
the AT command will be de-active,
every byte received via physical UART will be sent to air, vice visa

AT+TXPOWER - tx power configuration

Command

AT+TXPOWER{=Param}

Param

(value:0-15, default:15)

Value

Power(dBm)

0

-36.1

1

-8.2

2

-2.9

3

0.5

4

2.3

5

4.1

6

5.4

7

6.5

8

7.2

9

8.0

10

8.6

11

9.1

12

9.4

13

9.8

14

10.0

15

10.2

HFP Commands

AT+HFPSTAT - Read HFP State

Command

AT+HFPSTAT

Response

+HFPSTAT=Param1{,Param2{,Param3}}

Description

Format description reference: +HFPSTAT - HFP State

AT+HFPSR - Get/Set HFP Sample Rate

Command

AT+HFPSR{=Param}

Param

Sample rate (Hz) for HFP voice call, available value: 0/8000/16000/48000

Response

+HFPSR=Param

Description

Resample HFP voice call to specify rate in I2S mode,
the parameter will override settings in AT+I2SCFG for voice call

AT+HFPCFG - Get/Set HFP Configuration

Command

AT+HFPCFG{=Param}

Param

A base-10 representation of a bit field, default:2, for each bit:

BIT[0]

When the HFP is abnormally disconnected,Reconnect to last disconnected device

BIT[1]

0-disable echo cancellation, 1-enable echo cancellation

BIT[2]

0-HFP 3-way-calling function disable, 1-HFP 3-way-calling function enable

AT+HFPCONN - Establish HFP Connection

Command

AT+HFPCONN{=Param}

Param

MAC address of target device (12 Bytes ASCII)

Description

Reconnect to last HFP device if parameter not exist

Example:Connect to last HFP device
<< AT+HFPCONN
>> OK
Example:Connect to specific HFP device with MAC address
<< AT+HFPCONN=1C5CF226D773
>> OK

AT+HFPDISC - Release HFP Connection

Command

AT+HFPDISC

Description

Release current HFP connection with remote device

AT+HFPDIAL - Dial/Redial Phone Number

Command

AT+HFPDIAL{=Param}

Param

Phone number (1~25 Bytes ASCII)

Description

Dial specific number if parameter exist, otherwise redial

Example:Redial
<< AT+HFPDIAL
>> OK
Example:Dial number “075527924639”
<< AT+HFPDIAL=075527924639
>> OK

AT+HFPDTMF - Send DTMF code

Command

AT+HFPDTMF{=Param}

Param

DTMF (0~9/#/*)

Example:Send DTMF code “#” while talking
<< AT+HFPDTMF=#
>> OK

AT+HFPANSW - Pick Up Incoming Call

Command

AT+HFPANSW

Description

Pick up an incoming call

AT+HFPCHUP - Reject/Hung up Call

Command

AT+HFPCHUP

Description

Reject incoming call or hung up outgoing/active call

AT+HFPMCAL - Three way calling Control

Command

AT+HFPMCAL=Param

Param

0: Release held call or reject waiting call
1: Release active call and accept another call
2: Hold active call and accept another call

AT+HFPADTS - Transfer Voice Audio Between Local and Remote Device

Command

AT+HFPADTS=Param

Param

1: Transfer voice audio from module to remote device
2: Transfer voice audio from remote device to module

Description

Transfer voice audio between module and remote device by default if no parameter set

AT+HFPVR - Start/Stop Voice Recognition of Remote Device

Command

AT+HFPVR=Param

Param

0-Stop 1-Start

Description

Start/Stop Voice Recognition of Remote Device (such as Siri for iOS devices)

AT+HFPINFO - Read HFP information

Command

AT+HFPINFO

Description

Return the current HFP status, signal strength, battery, device name, etc.

AT+MICMUTE - Mute Mic

Command

AT+MICMUTE=Param

Param

0-unmute 1-mute

Description

mute mic when call active

A2DP/AVRCP Commands

AT+A2DPSTAT - Read A2DP State

Command

AT+A2DPSTAT

Response

+A2DPSTAT=Param

Description

Format description reference: +A2DPSTAT - A2DP State

AT+A2DPCONN - Establish A2DP Connection

Command

AT+A2DPCONN{=Param}

Param

MAC address of target device (12 Bytes ASCII)

Description

Reconnect to last A2DP device if parameter not exist

AT+A2DPDISC - Release A2DP Connection

Command

AT+A2DPDISC

Description

Release current A2DP connection with remote device

AT+A2DPINFO - Read A2DP information

Command

AT+A2DPINFO

Description

Return the current A2DP status, remote device name , etc.

AT+AVRCPSTAT - Read AVRCP State

Command

AT+AVRCPSTAT

Response

+AVRCPSTAT=Param

Description

Format description reference: +AVRCPSTAT - AVRCP State

AT+AVRCPCFG - Get/Set AVRCP Configuration

Command

AT+AVRCPCFG{=Param}

Param

A base-10 representation of a bit field, default:3, for each bit:

BIT[0]

Auto get track ID3 information (title, artist, album) on track changed.default:1

BIT[1-3]

Auto get track play progress if value > 0. default:1 second

BIT[4]

Browsing function enable/disable

BIT[5]

Auto pull media cover art image to specify folder

Example: Read AVRCP configuration
<< AT+AVRCPCFG
>> +AVRCPCFG=1
OK
Example: Get track play progress every 5 second
<< AT+AVRCPCFG=9
>> OK

AT+PLAYPAUSE - Track Play/Pause

Command

AT+PLAYPAUSE

Description

Send play or pause command to remote media player according to current play status

AT+PLAY - Track Play

Command

AT+PLAY

Description

Send play command to remote media player

AT+PAUSE - Track Pause

Command

AT+PAUSE

Description

Send pause command to remote media player

AT+STOP - Track Stop

Command

AT+STOP

Description

Send stop command to remote media player

AT+FORWARD - Track Forward

Command

AT+FORWARD

Description

Send forward command to remote media player

AT+BACKWARD - Track Backward

Command

AT+BACKWARD

Description

Send backward command to remote media player

AT+REPEAT - Set Media Player Repeat Mode

Command

AT+REPEAT{=Param}

Param

Repeat mode (0/1) 0-off 1-on

Response

+PLAYMODE=Param1,Param2

Param

Format description reference: +PLAYMODE - Media Player Repeat/ Shuffle Mode

AT+SHUFFLE - Set Media Player Shuffle Mode

Command

AT+SHUFFLE{=Param}

Param

Shuffle mode (0/1) 0-off 1-on

Response

+PLAYMODE=Param1,Param2

Param

Format description reference: +PLAYMODE - Media Player Repeat/ Shuffle Mode

AT+GETMP - List Media Players of Remote Device

Command

AT+GETMP

Response

+BROWDATA=Param1,Param2,Param3,Param4

Param

Format description reference: +BROWDATA - Media Player Filesystem Browsing Data

Description

List media players of remote device, only player with browsable flag set
support browsing. For some phones (e.g. iOS devices),
user may need to launch the player on phone side at the first time.

AT+SETMP - Select Media Player

Command

AT+SETMP=Param

Param

Media Player index

Response

+BROWDATA=Param1,Param2

Param

Format description reference: +BROWDATA - Media Player Filesystem Browsing Data

Description

Select the media player to browse, player’s browsable flag must be set,
we will enter the root directory after player selected.

AT+GETFD - List Sub Folders/Tracks of Selected Folder

Command

AT+GETFD=Param1,Param2

Param1

Start position, (1~65535)

Param2

End position, (1~65535), Param2 >= Param1

Description

List sub folders or media items in current folder.

AT+SETFD - Select and Enter Folder

Command

AT+SETFD=Param

Param

(0):Enter up level folder (other): Enter selected folder

Description

Select and enter the folder to browse.

AT+GETNP - List Tracks in Now Playing List

Command

AT+GETNP=Param1,Param2

Param1

(1~65535), Start position

Param2

(1~65535), End position, Param2 >= Param1

Response

+BROWDATA=M,Param1,Param2,Param3

Param

Format description reference: +BROWDATA - Media Player Filesystem Browsing Data

AT+ADDMP - Add Track to Media Player

Command

AT+ADDMP=Param

Param

Track ID

Description

Add selected track to media player and start to play.

PBAP Commands

AT+PBSTAT - Read PBAP state

Command

AT+PBSTAT

Response

+PBATAT=Param

Description

Format description reference: +PBSTAT - PBAP State

AT+PBCONN - Establish PBAP Connection

Command

AT+PBCONN{=Param}

Param

MAC address of target device (12 Bytes ASCII)

Description

Module will use current HFP device’ MAC address if parameter not exist
For some firmware release, module will establish PBAP connection
automatically on received command AT+PBDOWN

AT+PBDISC - Release PBAP Connection

Command

AT+PBDISC

Description

Release current PBAP connection with remote device

AT+PBDOWN - Download Phonebook

Command

Param1{, Param2{, Param3{, Param4}}}

Param1

Phonebook type(0-5)
(0) Phonebook (SIM Storage)
(1) Phonebook (Phone Storage)
(2) Received call log
(3) Dialed call log
(4) Missed call log
(5) All call log

Param2

Max items (1~65535, default:3000 for phonebook; 50 for call log)

Param3

Phonebook format (defaut:0)
(0) Family Name, Middle Name, Given Name
(1) Given Name, Middle Name, Family Name
(2) Raw vCard 2.1

Param4

Contact photo required (0/1)

Description

For some phones (e.g. iPhone), the contact download permission
must be turned on in phone’s Bluetooth settting

AT+PBABORT - Abort Downloading

Command

AT+PBABORT

Description

Abort downloading

SPP Commands

AT+SPPSTAT - Read SPP State

Command

AT+SPPSTAT

Response

+SPPATAT=Param

Description

Format description reference: +SPPSTAT - SPP State

AT+SPPCONN - Establish SPP Connection

Command

AT+SPPCONN{=Param}

Param

MAC address of target device (12 Bytes ASCII)

AT+SPPDISC - Release SPP Connection

Command

AT+SPPDISC

Description

Release current SPP connection with remote device

AT+SPPSEND - Send Data Via SPP

Command

AT+SPPSEND=Param1,Param2

Param1

Payload length (1~492)

Param2

Payload (1~492 Bytes UTF8)

Description

If throughput mode is on, this command is de-active

Example: Send data “1234567890” to remote device via SPP
<< AT+SPPSEND=10,1234567890
>> OK

GATT Commands

AT+GATTSTAT - Read GATT State

Command

AT+GATTSTAT

Response

+GATTATAT=Param

Description

Format description reference: +GATTSTAT - GATT State

AT+GATTDISC - Release GATT Connection

Command

AT+GATTDISC

Description

Release current GATT connection with remote device

AT+GATTSEND - Send Data Via GATT

Command

AT+GATTSEND=Param1,Param2

Param1

Payload length (1~492)

Param2

Payload (1~492 Bytes UTF8)

Description

If throughput mode is on, this command is de-active

Example: Send data “1234567890” to remote device via GATT
<< AT+SPPSEND=10,1234567890
>> OK

HID Commands

AT+HIDSTAT - Read HID State

Command

AT+HIDSTAT

Response

+HIDATAT=Param

Description

Format description reference: +HIDSTAT - HID State

AT+HIDCONN - Establish HID Connection

Command

AT+HIDCONN{=Param}

Param

MAC address of target device (12 Bytes ASCII)

AT+HIDDISC - Release HID Connection

Command

AT+HIDDISC

Description

Release current HID connection with remote device

AT+HIDMODE - Get/Set HID Input Mode

Command

AT+HIDMODE{=Param}

Param

HID keyboard input mode (0~1), default 1
(0) Hex key code
(1) Ascii key code (English)

Note

Module can support various keyboard language with specify firmware,
such as:TURKEY SPAIN PORTUGAL FRANCE GERMANY ITALY CZECH JAPAN

AT+HIDDLY - Get/Set HID Report Period

Command

AT+HIDDLY{=Param}

Param

HID report period in millisecond, default 10 ms

AT+HIDSEND - Send HID Keyboard Report

Command

AT+HIDSEND=Param1,Param2

Param1

Report length

Param2

Report payload

Note

For special key code:
0x0D -> ENTER
0x08 -> BACKSPACE
0x09 -> TAB
0x20 -> SPACE
Example: Send key code ‘A’ to remote device (on AT+HIDMODE=1)
>> AT+HIDSEND=1,A
<< OK
Example: Send key code ‘A’ to remote device (on AT+HIDMODE=0)
<< AT+HIDSEND=4, xA1 x01 x00 x04
>> OK
Note: As payload is hex value, hence actual command is:
41 54 2B 48 49 44 53 45 4E 44 3D 34 2C A1 01 00 04 0d 0a
Where:
A1 : report start
01 : page id 1
00 : modifier
04 : key code
Module will auto send debounce key code by itself

AT+HIDCMD - Send HID User Report

Command

AT+HIDCMD=Param

Param

2 bytes hid user report
e.g., for iPhone:
Play/Pause: 00 CD
Stop: 00 B7
Forward: 00 B5
Backward: 00 B6
Fast Forward: 00 B3
Rewind:00 B4
Record:00 B2
VolumpUp:00 E9
VolumpDn:00 EA
Mute:00 E2
On screen keyboard Toggle:01 AE
Example: Send Volume Up to iPhone
<< AT+HIDCMD= x00 xE9
>> OK
Note: As the payload is hex value, hence actual command is:
41 54 2B 48 49 44 43 4D 44 3D 00 E9 0D 0A

Events Table

General Events

+PWRSTAT - Powering State

Format

+PWRSTAT=Param

Param

0-Powering off 1-Powering on(booting)

Description

AT Command is not recommended to be used while powering on/off state

+SCAN - Scan Result

Format1

+SCAN =Param1,Param2,Param3, Param4,Param5,Param6

Param1

Index

Param2

RSSI (-127 ~ -1)

Param3

Device address type (0~3)
(0) BR/EDR address
(1) LE public address
(2) LE random address
(3) iOS device with Carplay support

Param4

MAC address (12 Bytes ASCII)

Param5

Device Name for BR/EDR devices or advertising data for LE devices

Param6

Class of device(6 Bytes ASCII)

Format2

+SCAN=E: Scan stopped

Example: Scan BR/EDR nearby devices
<< AT+SCAN=1
>> OK
>> +SCAN=1,-32,3,B019C66209FA,wt-iphone,7A020C
>> +SCAN=2,-74,0,DC0D30000053,BW226,040680
>> +SCAN=3,-43,0,00158354F994,LAPTOP-3L,120104
>> +SCAN=E

+PAIRREQ - Pair Request

Format

+PAIRREQ=Param1,Param2{,Param3}

Param1

Passkey (000000~999999)

Param2

MAC address (12 Bytes ASCII) of current pairing device

Param3

Name of current pairing device

+PAIRED - Pair Result

Format

+PAIRED=Param1,Param2

Param1

Pair result (0)-Success (1~255)-Failed reason

Param2

MAC address (12 Bytes ASCII) of current pairing device

+CODEC - Codec ID

Format

+CODEC=Param

Param

Code id
(1) NAU88L25B
(2) TI TLV32AIC3204
(3) ES8388

Description

Firmware integrated I2C drivers of several codecs,
such as NAU88L25B/ TLV32AIC3204/ ES8388, and probe one of them on booting。
BT1036, BT955, BT936 chips have built-in Codec, and do not report Codec instructions

HFP Events

+HFPSTAT - HFP State

Format

+HFPSTAT=Param1{,Param2{,Param3}}

Param1

(0~10)
(0) Unsupported
(1) Standby
(2) Connecting
(3) Connected
(4) Outgoing call
(5) Incoming call
(6) Active call
(7) Active held (3-way-calling)
(8) First call active, second call waiting (3-way-calling)
(9) First call active, second call held (3-way-calling)
(10) First call outgoing, second call held (3-way-calling)

Param2

Call number, only present for state > 3

Param3

Call number(Three-way calling)

Example: Dial number 10086
<< AT+HFPDIAL=10086
>> +HFPSTAT=3
>> +HFPSTAT=4,10086
>> +HFPAUDIO=1
Example: Incoming call with number 13265463800
>> +HFPSTAT=5, 13265463800
>> +HFPAUDIO=1

+HFPDEV - HFP Remote Device Information

Format

+HFPDEV=Param1{,Param2}

Param1

(12 Bytes ASCII), Remote MAC address of current HFP connection

Param2

(UTF8), Remote device name of current HFP connection

Example: HFP connect success with device
>> +HFPDEV=1C5CF226D774, iPhone

+HFPAUDIO - HFP Voice Audio State

Format

+HFPAUDIO=Param

Param

(0) HFP voice audio disconnected, audio input/output routed to remote device
(1) HFP voice audio connected, audio input/output routed to module

+HFPSIG - HFP Remote Device Network Signal Strength

Format

+HFPSIG=Param

Param

(0~5)Network signal strength of remote device

+HFPROAM - HFP Remote Device Roaming State

Format

+HFPROAM=Param

Param

(0/1) Roaming state of remote device

+HFPBATT - HFP Remote Device Battery Level

Format

+HFPBATT=Param

Param

(0~5) Battery level of remote device

+HFPNET - HFP Remote Device Network Operator Selection

Format

+HFPNET=Param

Param

(UTF8)Network operator selection of remote device

+HFPMANU - HFP Remote Device Manufacture

Format

+HFPMANU=Param

Param

(UTF8)Manufacture name of remote device

+HFPNUM - HFP Remote Device Phone Subscriber Number

Format

+HFPNUM=Param

Param

(ASCII)Phone subscriber number of remote device

+HFPIBR - HFP Remote Device In-band-ring Support

Format

+HFPIBR=Param

Param

(0/1) In-band-ring support

Description

Report whether the current connected phone support in-band-ring

+HFPRING - HFP Remote Device Ringing

Format

+HFPRING=Param

Param

(0/1) In-band-ring off/on

Description

Phone is ringing when call incoming, the host platform should play a local ringtone
if in-band-ring not supported by remote mobile phone

A2DP/AVRCP Events

+A2DPSTAT - A2DP State

Format

+A2DPSTAT=Param

Param

(0) Unsupported
(1) Standby
(2) Connecting
(3) Connected
(4) Paused
(5) Streaming

+A2DPDEV - A2DP Remote Device Information

Format

+A2DPDEV=Param1{,Param2}

Param1

(12 Bytes ASCII), Remote device’s MAC address of current A2DP connection

Param2

(UTF8), Remote device’s name of current A2DP connection

+AVRCPSTAT - AVRCP State

Format

+AVRCPSTAT=Param

Param

(0) Unsupported
(1) Standby
(2) Connecting
(3) Connected

+PLAYSTAT - Media Player State

Format

+PLAYSTAT=Param

Param

(0) Stopped
(1) Playing
(2) Paused
(3) Fast Forwarding
(4) Fast Rewinding

+PLAYMODE - Media Player Repeat/ Shuffle Mode

Format

+PLAYMODE=Param1,Param2

Param1

Repeat Mode (1~4)
(1) Off
(2) Single Track
(3) All Tracks
(4) Group

Param2

Shuffle Mode (1~3)
(1) Off
(2) All Tracks
(3) Group

+TRACKSTAT - Media Player Play Progress

Format

+TRACKSTAT=Param1,Param2,Param3

Param1

(0~4), Media Player State, see +PLAYSTAT

Param2

(Decimal ASCII),Elapsed time of current track in second

Param3

(Decimal ASCII),Total time of current track in second

Example: Read media player play progress every 1s
>> +TRACKSTAT=1,54,322
>> +TRACKSTAT=1,55,322
>> +TRACKSTAT=1,56,322

+TRACKINFO - Media Track Information

Format

+TRACKINFO=Param1,Param2,Param3

Param1

title

Param2

artist

Param3

album

Example: Phone playing song “Creep-Radio Head”
>> +TRACKINFO=Creep , Radiohead , Pablo Honey

+BROWSTAT - Media Browsing State

Format

+BROWSTAT=Param

Param

(0) Unsupported
(1) Standby
(2) Connecting
(3) Connected
(4) Browsing

+BROWDATA - Media Player Filesystem Browsing Data

Format

+BROWDATA=Param1, Param2 {, Param3{, Param4}}

Param1

Browsing type, for each type, the following data means:

P

Parame1: media player information
Parame2: 0 – support browsing; 1- not support browsing
Parame3: media player id
Parame4: media player name

R

Parame1: root dictionary name
Parame2: root dictionary name

F

Parame1: folder ID and name
Parame2: folder ID
Parame3: folder name

M

Parame1: media track ID and name
Parame2: media track ID
Parame3: media track name

E

Parame1: browsing operation result code
Parame2: 0 - browsing success; other - browsing error code

+BIPSTAT - BIP State

Format

+BIPSTAT=Param

Param

(0) Unsupported
(1) Standby
(2) Connecting
(3) Connected
(4) Downloading

Description

BIP Profile only used for media player cover art image downloading now

+COVERART - Media Track Cover Art Download Success

Format

+COVERART=Param

Param

Image ID

Description

Cover art image should be placed in specify folder with name ImageID.jpg

Phonebook Access Events

+PBSTAT - PBAP State

Format

+PBSTAT=Param

Param

(0) Unsupported
(1) Standby
(2) Connecting
(3) Connected
(4) Downloading

+PBCNT - Phonebook Entries of Remote Device

Format

+PBCNT=Param

Param

Phonebook entries of remote device

+PBDATA - Phonebook Data

Format1

+PBDATA=Param1,Param2,Param3{,Param4}

Param1

Type
(0) Phonebook (SIM Storage)
(1) Phonebook (Phone Storage)
(2) Received call log
(3) Dialed call log
(4) Missed call log

Param2

Name

Param3

Number

Param4

(15 Bytes ASCII), Call time if current download type is call log
Format:
Year(4Bytes) Month(2Bytes) Day(2Bytes) T(1Byte) Hour(2Bytes)
Minute(2Bytes) Second(2Bytes). e.g. 20161012T152826 represents
2016/10/12/15/28/26

Param4-2

Contact photo download compete flag if current download type is Phonebook,
otherwise this parameter will not exist

Format2

+PBDATA=E: Download complete

Description

Call time may not exist for some mobile phones

Example: Download all phonebook
<< AT+PBDOWN=1
>> +PBCNT=234
+PBDATA=1 , Jack , 18219146201
+PBDATA=1 , kenan , 8613771972680
……
+PBDATA=E

Example: Download 10 dialed call log
<< AT+PBDOWN=3,10
>> +PBDATA=3 , China Mobile , 10086 , 20171013T103516
+PBDATA=3 , Jerry , 18688967507 , 20171012T152826
……
+PBDATA=E

SPP Events

Note

Events for iAP2 (Apple Accessory Protocol) and AAP (Android Auto Protocol) are almost the same with SPP, which are:

  • +IAPSTAT, +IAPDATA for iAP2 profile

  • +AAPSTAT, +AAPDATA for AAP profile

Document will omit these events.

+SPPSTAT - SPP State

Format

+SPPSTAT=Param

Param

(0) Unsupported
(1) Standby
(2) Connecting
(3) Connected

+SPPDATA - SPP Received Incoming Data

Format

+SPPDATA=Param1,Param2

Param1

Payload length

Param2

Payload

Example: Received data “1234567890” from remote device via SPP
<< +SPPDATA=10,1234567890

GATT Events

+GATTSTAT - GATT State

Format

+GATTSTAT=Param

Param

(0) Unsupported
(1) Standby
(2) Connecting
(3) Connected

+GATTDATA - GATT Received Incoming Data

Format

+SPPDATA=Param1,Param2

Param1

Payload length

Param2

Payload

Example: Received data “1234567890” from remote device via GATT
<< +GATTDATA=10,1234567890

HID Events

+HIDSTAT - HID State

Format

+HIDSTAT=Param

Param

(0) Unsupported
(1) Standby
(2) Connecting
(3) Connected

Appendix

Download PDF

Download PDF