FSC-BT1035 programming user guide
Introduction
Description
This design guide is suitable for engineers to develop FSC-BT1035 series Bluetooth modules, also suitable for BT806、BT802 series modules
Module Default Settings
| Name | FSC-BT1035 | 
| LE-Name | FSC-BT1035-LE | 
| Pin Code | 0000 | 
| Secure Simple Pairing Mode | ON | 
| UART Baudrate | 115200/8/N/1 | 
Hardware Description
Pin Diagram
FSC-BT1035 as an example:
 
Pin Description
| Pin | Pin Name | Type | Pin Descriptions | 
|---|---|---|---|
| 4 | I2S_CLK | I/O | I2S BCLK | 
| 5 | I2S_IN | I | I2S DATA IN | 
| 6 | I2S_OUT | O | I2S DATA OUT | 
| 7 | I2S_WS | I/O | I2S SYNC | 
| 8 | RESET | I | External reset input: active Low | 
| 13 | UART_TX | O | UART TX | 
| 14 | UART_RX | I | UART RX | 
| 15 | UART_CTS | I/O | UART CTS | 
| 16 | UART_RTS | I/O | UART RTS(default: PA mute pin) | 
| 17 | LED0 | I/O | Output square wave in pairing mode, output high level when bluetooth is connected | 
| 32 | GND | GND | GND | 
| 33 | VDD | VDD | Power supply for I/O ports, DC 3.3V | 
| 34 | SYS_CTRL | I | Delay 100ms, pull high | 
| 36 | VDD_IO | I | pio supply | 
| 37 | USB_DP | USB D+ | |
| 38 | USB_DN | USB D- | |
| 43 | MIC_LP | Audio | MIC0/Line_IN differential L input, positive | 
| 44 | MIC_LN | Audio | MIC0/Line_IN differential L input, negative | 
| 45 | MIC_BIAS | Audio | MIC Power Supplies | 
| 46 | SPK_RN | Audio | Headphone/speaker differential R output, negative | 
| 47 | SPK_RP | Audio | Headphone/speaker differential R output, positive | 
| 48 | SPK_LN | Audio | Headphone/speaker differential L output, negative | 
| 49 | SPK_LP | Audio | Headphone/speaker differential L output, positive | 
| 51 | EXT_ANT | ANT | Change the 0 ohm resistance near the antenna, you can connect an external Bluetooth antenna | 
Hardware Design Notes
- The simple test of the module only needs to connect VDD/VDD_IO/VREG_IN/GND/UART_RX/UART_TX to use 
- After drawing the schematic diagram, 
- please send it to Feasycom for review,so as to avoid the Bluetooth distance not reaching the best effect 
Function Description
Profiles & Features
- SPP (Serial Port Profile) 
- GATTS (Generic Attribute Profile LE-Peripheral role) 
- GATTC (Generic Attribute Profile LE-Central role) 
- HFP-HF (Hands-Free Profile) 
- HFP-AG (Hands-Free-AG Profile) 
- A2DP-Sink (Advanced Audio Distribution Profile) 
- A2DP-Source (Advanced Audio Distribution Profile) 
- AVRCP-Controller (Audio/Video remote controller Profile) 
- AVRCP-Target (Audio/Video remote controller Profile) 
- HID-DEVICE (Human Interface Profile) 
- PBAP (Phonebook Access Profile) 
GATT Default service and characteristic
| Type | UUID | Characteristic | Description | 
| Service | 0xFFF0 | throughput services | |
| Write | 0xFFF2 | Write,Write Without Response | app send to module | 
| Notify | 0xFFF1 | Notify | module send to app | 
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
- 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 “ERROR” for failure 
Event Format
- 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 ‘,’ 
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+VER - Get Firmware Version
| Command | AT+VER | 
| Response | +VER=Param1,Param2,Param3 | 
| 
 | Module type | 
| 
 | Firmware version | 
| 
 | Firmware Compile time | 
AT+BAUD - Get/Set Uart Baudrate
| Command | AT+BAUD{=Param} | 
| 
 | 9600/19200/38400/57600/115200(default)/230400/460800/921600 | 
| Response | +BAUD=Param | 
| Description | Module will change baudrate to target value immediately or after reboot depending on firmware | 
AT+I2SCFG - Get/Set I2S Settings
| Command | AT+I2SCFG{=Param} | 
| 
 | A base-10 representation of a bit field, default:0, for each bit | 
| 
 | 0:disable; 1:enable | 
| 
 | 0:master; 1:slave | 
| 
 | 0:FS=48000Hz;1:FS=44100Hz | 
| 
 | 0:left justified; 1:right justified | 
| 
 | 0:data 1 bit delay; 1:data no delay | 
| 
 | 00: bit depth=16bits 01: bit depth=24bits 10: bit depth=32bits | 
| Response | +I2SCFG=Param | 
Example:usual configuration and description
| 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 | 
AT+MICGAIN - Get/Set Analog Input Gain
| Command | AT+MICGAIN{=Param} | 
| 
 | Microphone input gain (0~15, default:10) | 
AT+SPKVOL - Get/Set Analog Output Volume
| Command | AT+SPKVOL{=Param} | 
| 
 | audio speaker volume (0~15, default:10) | 
AT+REBOOT - Soft Reboot
| Command | AT+REBOOT | 
| Response | OK | 
| Description | Module release all Bluetooth connections with remote device then reboot | 
AT+RESTORE - Restore Factory Settings
| Command | AT+RESTORE | 
| Response | OK | 
| Description | Module restore all factory settings then reboot | 
AT+BTEN - Bluetooth On/Off
| Command | AT+BTEN{=Param} | 
| 
 | 0-Power off 1-Power on | 
AT+PROFILE - Bluetooth Profile Selection
| Command | AT+PROFILE{=Param} | 
| 
 | A base-10 representation of a bit field, for each bit: | 
| 
 | SPP (Serial Port Profile) | 
| 
 | GATT Server (Generic Attribute Profile) | 
| 
 | GATT Client (Generic Attribute Profile) | 
| 
 | HFP-HF (Hands-Free Profile Handsfree) | 
| 
 | HFP-AG (Hands-Free Profile Audio Gateway) | 
| 
 | A2DP Sink (Advanced Audio Distribution Profile) | 
| 
 | A2DP Source (Advanced Audio Distribution Profile) | 
| 
 | AVRCP Controller (Audio/Video remote controller Profile) | 
| 
 | AVRCP Target (Audio/Video remote controller Profile) | 
| 
 | HID Keyboard (Human Interface Profile) | 
| 
 | PBAP Server (Phonebook Access Profile) | 
| Response | +PROFILE=Param | 
| Description | BT1035、BT806 not support HFP-HF、 A2DP Sink、AVRCP Controller、HID Keyboard、PBAP | 
AT+AUTOCONN - Turn On/Off Power On Auto Reconnect
| Command | AT+AUTOCONN{=Param} | 
| 
 | (0~15, default:3) (0)    Turn Off (1-15) Turn on and reconnect times | 
| Response | +AUTOCONN=Param | 
| Description | Module will attempt to connect last device after power on if set. | 
AT+STAT - Get All Profile State
| Command | AT+STAT | 
| Response | +STAT=Param1, Param2, Param3… | 
| 
 | DEVSTAT | 
| 
 | SPPSTAT | 
| 
 | GATTSTAT | 
| 
 | HFPSTAT | 
| 
 | A2DPSTAT | 
| 
 | AVRCPSTAT | 
AT+DEVSTAT - Read Device State
| Command | AT+DEVSTAT | 
| Response | +DEVSTAT=Param | 
| 
 | A base-10 representation of a bit field, for each bit: | 
| 
 | 0: Power Off; 1: Power On | 
| 
 | 0: BR/EDR Not Discoverable; 1: BR/EDR Discoverable | 
| 
 | 0: BLE Not Advertising; 1: BLE Advertising | 
| 
 | 0: BR/EDR Not Scanning; 1: BR/EDR Scanning | 
| 
 | 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 | 
| 
 | Module’s BR/EDR MAC address (12 Bytes ASCII) | 
AT+LEADDR - Get BLE MAC Address
| Command | AT+LEADDR | 
| Response | +LEADDR=Param | 
| 
 | Module’s LE MAC address (12 Bytes ASCII) | 
AT+NAME - Get/Set BR/EDR Local Name
| Command | AT+NAME{=Param1{,Param2}} | 
| 
 | BR/EDR local name(1~31 Bytes ASCII) | 
| 
 | MAC address suffix(0/1,default:0) 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 | 
AT+LENAME - Get/Set BLE Local Name
| Command | AT+LENAME{=Param1{,Param2}} | 
| 
 | BLE local name(1~31 Bytes ASCII) | 
| 
 | MAC address suffix(0/1,default:0) 0-Disable suffix 1-Enable suffix “XXXX” (lower 4 bytes of MAC address) after local name | 
| Response | +LENAME=Param | 
AT+PIN - Get/Set BR/EDR Pin Code
| Command | AT+PIN{=Param} | 
| 
 | Pin code(4~15 Bytes ASCII, default:0000) | 
| Response | +PIN=Param | 
| Description | Pin code only work in legacy pairing mode, see AT+SSP | 
AT+COD - Get/Set Device Class
| Command | AT+COD=Param | 
| 
 | Class of device(6 bytes ASCII, default:5A020C Handsfree device) | 
| Response | +COD=Param | 
Related configuration reference: COD.
AT+PAIR - Get/Set BR/EDR/BLE Visibility
| Command | AT+PAIR=Param | 
| 
 | Mode(0-1),default:0 0: Leave BR/EDR/BLE discoverable mode (stop advertising/broadcasting) 1: 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+SCAN - Scan Nearby Devices
| Command | AT+SCAN=Param1{,Param2}} | 
| 
 | scan type(0~2) 0: Stop scan 1: Scan nearby BR/EDR devices 2: Scan nearby BLE devices | 
| 
 | BLE SCAN report type or BR/EDR scan time BLE Sacn 0: Report like BR/EDR, 1: Report advertising data BR/EDR Sacn 0 - 255 | 
| Description | Format description reference: +SCAN - Scan Result | 
AT+PLIST - Get/Delete Paired List
| Command | AT+PLIST{=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} | 
| 
 | (1~8) Paired device’s index | 
| 
 | (MAC) Paired device’s MAC address | 
| 
 | (UTF8) Paired device’s name | 
| Response2 | +PLIST=E End of the paired record | 
AT+DSCA - Release All Connections
| Command | AT+DSCA | 
| Description | Module release all Bluetooth connections with remote device | 
AT+TPMODE - Turn On/Off Throughput Mode
| Command | AT+TPMODE{=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+AUXCFG - Audio Input Mode Configuration
| Command | AT+AUXCFG{=Param} | 
| 
 | mode(0-3,default:0) 0: USB Mode 1: LineIn Mode 2: Spdif Mode 3: I2S Mode | 
| Description | This command is used to configure the input mode of the module, BT1035、BT806 does not support spdif | 
AT+PRINT - Turn on/off reporting data
| Command | AT+PRINT{=Param} | 
| 
 | 0-off 1-on 。 default: Open report data | 
AT+MUTEPIO - Set PA_MUTE pin
| Command | AT+MUTEPIO{=Param} | 
| 
 | PIO(0 ~ 63, default:PIO2) | 
AT+LINKKEY - Get Link key
| Command | AT+LINKKEY=Param | 
| 
 | MAC address of target device (12 Bytes ASCII) | 
| Response | +LINKKEY=Param1,Param2 | 
| 
 | MAC address of target device (12 Bytes ASCII) | 
| 
 | Device’s link key | 
| Description | Get Paired Device’s link key | 
AT+RSSI - Get RSSI
| Command | AT+RSSI=Param | 
| 
 | MAC address of target device (12 Bytes ASCII) | 
| Response | +RSSI=Param1,Param2 | 
| 
 | MAC address of target device (12 Bytes ASCII) | 
| 
 | Device’s RSSI | 
| Description | Get Paired Device’s RSSI | 
AT+MUTEDELAY - Get/Set Mute Delay
| Command | AT+MUTEDELAY{=Param} | 
| 
 | Mute Delay(0 ~ 60, default:20) Units:50ms | 
AT+LINEPIO - Get/Set Analog intput detect PIO
| Command | AT+LINEPIO{=Param} | 
| 
 | Analog input detect PIO(0 ~ 63, default:PIO44) | 
AT+LINKCFG - Turn On/Off Auto Link
| Command | AT+LINKCFG{=Param1{,Param2}} | 
| 
 | 0:turn off 1:turn on | 
| 
 | 0:scan all devices 1: only scan Major Service Class is Rendering or Audio | 
| Description | if set, Module will scan nearby devices for 5.12 seconds, find the one which has best signal strength, then connect to it automatically. Module is not connected, it will always scan nearby devices | 
| Note | BT1035 use AT+LINKCFG, BT806 use AT+AUTOLINK | 
HFP Commands
AT+HFPSTAT - Read HFP State
| Command | AT+HFPSTAT | 
| Response | +HFPSTAT=Param | 
| Description | Format description reference: +HFPSTAT - HFP State | 
AT+HFPCONN - Establish HFP Connection
| Command | AT+HFPCONN{=Param} | 
| 
 | MAC address of target device (12 Bytes ASCII) | 
| Description | Reconnect to last HFP device if parameter not exist | 
AT+HFPDISC - Release HFP Connection
| Command | AT+HFPDISC | 
| Description | Release current HFP connection with remote device | 
AT+HFPRING - Simulate Incoming Call
| Command | AT+HFPRING{=Param} | 
| 
 | Phone number (1~15 Bytes ASCII) | 
| Description | Dial specific number if parameter exist, otherwise redial | 
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+HFPAUDIO - Establish/Release Voice Audio
| Command | AT+HFPAUDIO{=Param} | 
| 
 | 0-Release voice audio connection with remote hfp sink device 1-stablish voice audio connection with remote hfp sink device | 
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} | 
| 
 | 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+A2DPCFG - Read/Write A2DP Configuration
| Command | AT+A2DPCFG{=Param} | 
| 
 | A base-10 representation of a bit field, for each bit | 
| 
 | 0: Disable AAC Codec 1: Enable AAC Codec | 
| 
 | 0: Disable APTX Codec 1: Enable APTX Codec | 
| 
 | 0: Disable APTX-LL Codec 1: Enable APTX-LL Codec | 
| 
 | 0: Disable APTX-HD Codec 1: Enable APTX-HD Codec | 
| 
 | 0: Disable APTX-AD Codec 1: Enable APTX-AD Codec | 
| 
 | 0: Disable LDAC Codec 1: Enable LDAC Codec | 
| Description | BT806 does not support | 
AT+A2DPENC - Read A2DP Encoder
| Command | AT+A2DPENC | 
| Response | +A2DPENC=Param | 
| 
 | BT1035: 1:SBC 2:APTX 3:APTX-HD 4:APTX-LL 5:APTX-AD BT806: 1:SBC 2:FASTSTREAM 3:APTX 4:APTX-LL | 
AT+A2DPAUDIO - Establish/Release A2DP Audio Connection
| Command | AT+A2DPAUDIO{=Param} | 
| 
 | 0-Release A2DP audio connection with remote a2dp sink device 1-Establish A2DP audio connection with remote a2dp sink device | 
AT+AVRCPSTAT - Read AVRCP State
| Command | AT+AVRCPSTAT | 
| Response | +AVRCPSTAT=Param | 
| Description | Format description reference: +AVRCPSTAT - AVRCP State | 
AT+AVRCPCONN - Establish AVRCP Connection
| Command | AT+AVRCPCONN{=Param} | 
| 
 | MAC address of target device (12 Bytes ASCII) | 
| Description | Reconnect to last device if parameter not exist | 
AT+AVRCPDISC - Release AVRCP Connection
| Command | AT+AVRCPDISC | 
| Description | Release current AVRCP connection with remote device | 
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} | 
| 
 | 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 | 
| 
 | Payload length (1~492) | 
| 
 | Payload (1~492 Bytes UTF8) | 
| Description | If throughput mode is on, this command is de-active | 
| Note | BT1035 max payload length only support 236 | 
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+GATTCONN - Establish GATT Central Connection
| Command | AT+GATTCONN=Param1{,Param2,Param3,Param4} | 
| 
 | MAC address of target device & MAC address type (13 Bytes ASCII) | 
| 
 | Service-UUID, Support 16 Bit and 128 Bit(4 Bytes/32 Bytes ASCII) | 
| 
 | Write-UUID, Support 16 Bit and 128 Bit(4 Bytes/32 Bytes ASCII) | 
| 
 | Notify-UUID, Support 16 Bit and 128 Bit(4 Bytes/32 Bytes ASCII) | 
| Description | GATT Client enable is valid | 
AT+GATTSEND - Send Data Via GATT
| Command | AT+GATTSEND=Param1,Param2 | 
| 
 | Payload length (1~492) | 
| 
 | Payload (1~492 Bytes UTF8) | 
| Description | If throughput mode is on, this command is de-active | 
| Note | BT1035 max payload length only support 236 | 
Events Table
General Events
+SCAN - Scan Result
| Format | +SCAN =Param1,Param2,Param3, Param4,Param5,Param6,Param7 | 
| 
 | Index | 
| 
 | Device address type (0~2) (0) LE public address (1) LE random address (2) BR/EDR address | 
| 
 | MAC address (12 Bytes ASCII) | 
| 
 | RSSI (-127 ~ -1) | 
| 
 | Size of Param6 if exist | 
| 
 | Device Name for BR/EDR devices or advertising data for LE devices | 
| 
 | Class of device | 
+PAIRED - Pair Result
| Format | +PAIRED=Param | 
| 
 | MAC address (12 Bytes ASCII) of current pairing device | 
HFP Events
+HFPSTAT - HFP State
| Format | +HFPSTAT=Param | 
| 
 | (0)  Unsupported (1)  Standby (2)  Connecting (3)  Connected (4)  Outgoing call (5)  Incoming call (6)  Active call | 
+HFPDEV - HFP Remote Device Information
| Format | +HFPDEV=Param1{,Param2} | 
| 
 | (12 Bytes ASCII), Remote MAC address of current HFP connection | 
| 
 | (UTF8), Remote device name of current HFP connection | 
+HFPAUDIO - HFP Voice Audio State
| Format | +HFPAUDIO=Param | 
| 
 | (0) HFP voice audio disconnected, audio input/output routed to remote device (1) HFP voice audio connected, audio input/output routed to module | 
+HFPBATT - HFP Remote Device Battery Level
| Format | +HFPBATT=Param | 
| 
 | (0~9) Battery level of remote device | 
+HFPSR - HFP Sample rate
| Format | +HFPSR=Param | 
| 
 | Sample rate: 8000/16000/32000 | 
A2DP/AVRCP Events
+A2DPSTAT - A2DP State
| Format | +A2DPSTAT=Param | 
| 
 | (0)   Unsupported (1)   Standby (2)   Connecting (3)   Connected (4)   Streaming (5)   Paused | 
+A2DPDEV - A2DP Remote Device Information
| Format | +A2DPDEV=Param1{,Param2} | 
| 
 | (12 Bytes ASCII), Remote device’s MAC address of current A2DP connection | 
| 
 | (UTF8), Remote device’s name of current A2DP connection | 
+AVRCPSTAT - AVRCP State
| Format | +AVRCPSTAT=Param | 
| 
 | (0)   Unsupported (1)   Standby (2)   Connecting (3)   Connected | 
+PLAYSTAT - Media Player State
| Format | +PLAYSTAT=Param | 
| 
 | (0)   Stopped (1)   Playing (2)   Paused (3)   Fast Forwarding (4)   Fast Rewinding | 
+CTPLAY - Track Play
| Format | +CTPLAY | 
| Description | Receive play command | 
+CTPAUSE - Track PAUSE
| Format | +CTPAUSE | 
| Description | Receive pause command | 
+CTSTOP - Track STOP
| Format | +CTSTOP | 
| Description | Receive stop command | 
+CTFWD - Track Forward
| Format | +CTSTOP | 
| Description | Receive forward command | 
+CTBACK - Track Backward
| Format | +CTBACK | 
| Description | Receive backward command | 
SPP Events
+SPPSTAT - SPP State
| Format | +SPPSTAT=Param | 
| 
 | (0)   Unsupported (1)   Standby (2)   Connecting (3)   Connected | 
+SPPDATA - SPP Received Incoming Data
| Format | +SPPDATA=Param1,Param2 | 
| 
 | Payload length | 
| 
 | Payload | 
GATT Events
+GATTSTAT - GATT State
| Format | +GATTSTAT=Param | 
| 
 | (0)   Unsupported (1)   Standby (2)   Connecting (3)   Connected | 
+GATTDATA - GATT Received Incoming Data
| Format | +SPPDATA=Param1,Param2 | 
| 
 | Payload length | 
| 
 | Payload | 
Application scenarios
profiles initializing and change parameter
The following figure shows Profile initialization and name modification
MCU change device name CARKIT reference code:
 1void change_name(void)
 2{
 3    uart_send("AT+NAME\r\n");
 4    if(uart_read("+NAME",name_buf))
 5    {
 6        if(memcmp(name_buf,"CARKIT",6))
 7        {
 8            uart_send("AT+NAME=CARKIT,0\r\n");      //defalut disable MAC address suffix
 9            uart_send("AT+NAME\r\n"); // read bt name
10            if(uart_read("+NAME",name_buf))
11            {
12                if(memcmp(name_buf,"CARKIT",6))
13                {
14                    //change name fail
15                }
16                else
17                {
18                    //change name success
19                }
20            }
21        }
22    }
23}
Note
modify any parameters, it is recommended to query first and then modify the final verification
Source mode connection