FSC-BT690 User Guide

Introduction

[中文]

Description

This design guide is suitable for engineers developing FSC-BT690 series Bluetooth modules

Module Default Settings

Name

Feasycom

Service UUID

FFF0

Write UUID

FFF2

Notify UUID

FFF1

UART Baudrate

115200/8/N/1

Hardware Description

Pin Diagram

_images/BT690%E5%BC%95%E8%84%9A.png

Pin Description

Pin

Pin Name

Type

Pin Descriptions

1

GND

GND

GND

2

RESET

I

External reset input: Active LOW, with an inter an internal pull-up

3

UART_RX

I

UART data input

4

UART_TX

O

UART data output

10

RF_OUT

RF

Rf output, impedance 50 ohms

20

VDD

Power

Power supply voltage 3.3V, LDO power supply preferred

Hardware Design Notes

  • The simple test of the module only needs to connect VDD/GND/UART_RX/UART_TX to use

  • After drawing the schematic diagram, please send it to Feasycom for review, so as to prevent the Bluetooth distance from not reaching the best effect

Function Description

Mode

Throughput mode

when disconnected, the data received by the serial port is analyzed according to the AT command;
when connected, all the data received by the serial port is sent to the remote Bluetooth as it is.

Command mode

when disconnected, the data received by the serial port is analyzed according to the AT command;
when connected, The data received by the serial port is still parsed according to the AT command.
when it is necessary to send data to the remote end, send AT+LESEND command.

GATT Throughput Service

type

UUID

Permissions

Description

Service

0xFFF0

GATT Throughput Service

Write

0xFFF2

Write,Write Without Response

APP send data to module

Notify

0xFFF1

Notify

Module send data to remote

AT Command Description

Command Description

Throughout this specification:

  • Content between { } is optional

  • Content behind << represents a COMMAND from Host

  • Content behind >> represents a RESPONSE to Host

PS:Note All commands of the BT690 cannot be saved after a power failure. Customers should pay attention to the initial configuration parameters before using the module

Command

The command is the control command sent by the host to the module actively. After receiving the command, the module needs to reply <CR><LF>OK<CR><LF> as a response.

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>

  • The module should always return the result of instruction execution (success returns OK,failure returns ERROR)

Example:
Read module’s name
<< AT+VER
>> +VER=1.0.0,FSC-BT690
>> OK

Write invalid baudrate
<< AT+BAUD=0
>> ERROR

Event

Event is the data that the module actively sends to the host. Generally used to indicate a change of state or data received.

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 ‘,’

Example:
Receive data from APP in command mode
>> +DATA=10,1234567890

Commands Table

AT - Serial communication test

Command

AT

Response

OK

Description

When powering on or changing the baud rate, test the UART communication between the host and the module

Example:
<< AT
>> OK

AT+NAME - Get/Set Local Name

Command

AT+NAME{=Param1{,Param2}}

Param1

local name(1~29 Bytes ASCII)

Param2

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

Param

local name

Description

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

Example:
Read current local name
<< AT+NAME
>> +NAME=Feasycom
>> OK

Change module’s local name to “ABC”
<< AT+NAME=ABC
>> OK

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

AT+VER - Get Firmware Version

Command

AT+VER

Response

+VER=Param

Param

Firmware version

Description

Get Firmware Version

Example:
<< AT+VER
>> +VER=1.0.0,FSC-BT690
>> OK

AT+ADDR - Get MAC Address

Command

AT+ADDR

Response

+ADDR=Param

Param

Module’s MAC address (12 Bytes ASCII)

Description

Get MAC Address

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

AT+BAUD - Get/Set Uart Baudrate

Command

AT+BAUD{=Param}

Param

baudrate(2400/4800/9600/14400/19200/28800/38400/
57600/115200/230400/460800/500000/921600/1000000,
default:115200)

Response

+BAUD=Param

Param

baudrate

Description

Module will change baudrate to target value immediately

Example:
Query baudrate
<< AT+BAUD
>> +BAUD=115200
>> OK

Change baudrate
<< AT+BAUD=9600
>> OK

AT+REBOOT - Soft Reboot

Command

AT+REBOOT

Response

OK

Description

Module release all Bluetooth connections 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+TXPOWER - Get/Set TX Power

Command

AT+TXPOWER{=Param}

Param

tx power(0~11 default:8)
The transmitted power from 0 to 11 is:-19.5db,-13.5dB,-10.0db,-7.0db,
-5.0db,-3.5db,-2.0db,-1.0db,0db,1.0db,1.5db,2.5db

Response

+TXPOWER=Param

Param

tx power

Description

Get/Set TX Power

Example:
Get tx powe
<< AT+TXPOWER
>> +TXPOWER=3
>> OK

Set tx power to 0dbm
<< AT+TXPOWER=8
>> OK

AT+LPM - Get/Set Low Power Config

Command

AT+LPM{=Param}

Param

low power mode (0/1, default: 0)
0: disable
1: enable low power and wake up by UART

Response

+LPM=Param

Param

low power mode

Description

Get/Set low power config

Example:
Get low power config
<< AT+LPM
>> +LPM=0
>> OK

Set serial port wakeup mode
<< AT+LPM=1
>> OK

AT+ADVIN - Get/Set Advertising Interval

Command

AT+ADVIN{=Param}

Param

advertising interval (100~10000 ms, default: 152ms)

Response

+ADVIN=Param

Param

advertising interval

Description

Get/Set advertising interval

Example:
Get advertising interval
<< AT+ADVIN
>> +ADVIN=687
>> OK

Set advertising interval to 100ms
<< AT+ADVIN=100
>> OK

AT+ADVDATA - Get/Set Advertising Manufacturer Specific Data

Command

AT+ADVDATA{=Param}

Param

manufacturer specific data, tag 0xff(len <= 25)

Response

+ADVDATA=Param

Param

manufacturer specific data, tag 0xff

Description

Get/Set advertising manufacturer specific data

Example:
Get advertising manufacturer specific data, \x is hexadecimal data
<< AT+ADVDATA
>> +ADVDATA=\x03\x01\x02
>> OK

Set advertising manufacturer specific data, \x is hexadecimal data
<< AT+ADVDATA=\x03\x01\x02
>> OK

AT+ADVTYPE - Get/Set Broadcast Type

Command

AT+ADVTYPE{=Param}

Param

broadcast type: 0:not directionally connectable 1:non-connectable broadcast

Response

+ADVTYPE=Param

Param

broadcast type

Description

Get/Set broadcast type

Example:
Get broadcast type
<< AT+ADVTYPE
>> +ADVIN=0
>> OK

Set the broadcast type to non-connectable broadcast
<< AT+ADVTYPE=1
>> OK

AT+DISC - Disconnect Specified Connection

Command

AT+DISC

Response

OK

Description

disconnect Bluetooth connection

Example:
disconnect device
<< AT+DISC
>> OK

AT+TPMODE - Get/Set Throughput Mode

Command

AT+TPMODE{=Param}

Param

Mode(0~1,default 1)
0: Command Mode
1: Throughput Mode

Response

+TPMODE=Param

Param

Mode

Description

Command Mode:
When bluetooth connected and in throughput mode,
the AT command will be de-active.
Throughput Mode:
every byte received via physical UART will be sent
to remote.
Example:
Throughput Mode
<< AT+TPMODE=1
>> OK

Command Mode
<< AT+TPMODE=0
>> OK

AT+LESEND - Send Data to Remote Device

Command

AT+LESEND{=Param1,Param2}

Param1

Connection index

Param2

data

Response

OK

Description

Send data to remote device

Example:
Send data to the connected device
<< AT+LESEND=4,2022
>> OK

Event Table

+GATTSTAT - GATT State

Indication

+GATTSTAT=Param1

Param1

GATT State (1~3)
1: Standby
2: Connecting
3: Connected

Description

In the command mode, if the connection status of the module changes, it will be actively reported through +GATTSTAT

Example:
Connected
>> +GATTSTAT=3

Application Scenarios

Get/Set The Default Parameters of The Module

When the module is disconnect state, it will parse the uart data according to the AT command. The host can get and set the default parameters of the module, as shown in the figure below:

  1. Set the device name to ABC

  2. Get device name

  3. Get MAC address

@startuml
hide footbox
skinparam sequenceMessageAlign center

box "local" #LightBlue
participant Host as host
participant Module as bt
end box


rnote over host, bt: Set the device name to ABC

host -> bt: AT+NAME=ABC\\r\\n
bt -> host: \\r\\nOK\\r\\n"

rnote over host, bt: Get device name

host -> bt: AT+NAME\\r\\n
bt -> host: \\r\\n+NAME=ABC\\r\\n\\r\\nOK\\r\\n"

rnote over host, bt: Get MAC address

host -> bt: AT+ADDR\\r\\n
bt -> host: \\r\\n+ADDR=DC0D30010203\\r\\n\\r\\nOK\\r\\n

@enduml

Process of Sending Data

When the module is powered on, it will continue to send advertising data, and the remote device (mobile phone) can scan the advertising packet. And initiate a connection request to the module. After the connection is successful, the module will pull up the connection status pin to notify the host that the Bluetooth connection is successful. The host can send data to the remote device through the Bluetooth module, and the remote device can also send data to the host.

@startuml
hide footbox
skinparam sequenceMessageAlign center

box "local" #LightBlue
participant Host as host
participant Module as bt
end box

box "remote" #LightBlue
participant ”Remote BT“ as remote
end box

rnote over host, remote: create connecion

        bt --> remote: adv pkt
        bt <-  remote: scan
        bt --> remote: adv pkt
        bt <-  remote: req create connection

rnote over host, remote: connecion successful

host <- bt: pull up the connection status pin

rnote over host, remote: send data

host -> bt: uart send ABC
        bt ->  remote: bt send ABC
        bt <-  remote: bt send DEF
host <- bt: uart send DEF

        bt <-  remote: disconnect connection

host <- bt: disconnect connection

host <- bt: pull down the connection status pin
        bt --> remote: adv pkt

@enduml

The Module Acts as the Central to Connect to The Remote Device

The module can be used as a master device to connect to the slave device, and the host can send commands to control the module to scan and connect and disconnect. The figure below shows the process of connecting other devices:

@startuml

hide footbox
skinparam sequenceMessageAlign center

box "local" #LightBlue
participant Host as host
participant Module as bt
end box

box "remote" #LightBlue
participant ”Remote BT“ as remote
end box

host -> bt: AT+SCAN=1\\r\\n
host <- bt: \\r\\nOK\\r\\n
        bt ->  remote: SCAN
        bt <-- remote: adv pkt
host <- bt: \\r\\n+SCAN=1,DC0D30001ED4,-65,10,FSC-BT946\\r\\n
host -> bt: AT+LECCONN=DC0D30001ED41\\r\\n
host <- bt: \\r\\nOK\\r\\n
        bt ->  remote: req create connection

rnote over host, remote: connection success

host <- bt: pull up the connection status pin

rnote over host, remote: send data

host -> bt: uart send ABC
        bt ->  remote: bt send ABC
        bt <-  remote: bt send DEF
host <- bt: uart send DEF

host -> bt: AT+DISC\\r\\n
host <- bt: \\r\\nOK\\r\\n
        bt ->  remote: disconnect remote

rnote over host, remote: disconnect connection

host <- bt: pull down the connection status pin
        bt --> remote: adv pkt

@enduml

Appendix

Download PDF Document

Download PDF Document