The Proteus-II exists in two variants, one variant with integrated PCB-antenna, and the other
variant with 50Ω connection to an external antenna. For the general functionality there is no
difference between the variants.
The Proteus-II module is a radio sub module/device for wireless communication between devices such as control systems, remote controls, sensors etc. . On the basis of Bluetooth®LE 5
it offers a fast and secure data transmission of data packages between two or more parties
(point to point topology).A serial interface (UART) is available for communication with the
host system.
The Proteus-II uses the Bluetooth®LE standard to provide general data transmission between several devices. The standard itself offers a wide range of configurations and possibilities to suit and optimize sophisticated customer applications. To fulfill the needs and
specifications of such applications a tailored firmware can be developed on the basis of the
Proteus-II hardware. This includes the connection and communication to custom sensors,
custom Bluetooth®LE profiles, timing configurations, security configuration as well as power
consumption optimizations.
1.1.1. Key features
The Proteus-II offers the following key features that are described in the manual in more
detail:
SPP-like connection-based secured data transmission: The Proteus-II firmware imple-
ments an SPP-like Bluetooth®LE profile that allows the bidirectional data transmission
between several Proteus-II and/or to other Bluetooth®LE devices implementing the
AMBER SPP profile. Any module in the network can initiate connection setup. Secured
connections allow the transmission of encrypted data (user-defined key or pairing).
Fast sensor data transmission via Beacons: The Proteus-II supports the transmission and
reception of Beacons. Beacons are fast broadcast messages that allow the energyefficient unidirectional transmission of data. Especially in sensor networks, this feature
is suitable for the frequent transmission of measurement data as it removes the need
for connection-based communication and therefore is more energy efficient.
Advanced customization capabilities: The configurable Device Information Service (DIS),
the UUID and the appearance of the Bluetooth®LE profile, enable to personalize the
Proteus-II to fuse with the user’s end product.
Low power position sensing solutions: The current TX power of any Proteus-II is always
transmitted with each advertising packet when the module is in command mode. With
this, distance estimation and position sensing solutions can be realized conveniently
by performing a passive scan.
Fast serial interface: The Proteus-II offers a UART-interface to communicate with a host
using a user-defined baud rate and a simple command interface.
Latest microprocessor generation provided by Nordic Semiconductor nRF52 series:
The heart of the Proteus-II is a Bluetooth®LE chip of the nRF52 series offering high
performance values combined with low power consumption. It is a 32 Bit ARM CortexM4F CPU with 512kB flash + 64kB RAM and up to 4dBm output power.
Bluetooth®5 stack: The Bluetooth®5 stack enables fast and energy efficient data trans-
mission using state-of-the-art technology of Nordic Semiconductors.
High throughput mode: The Proteus-II contains the so called "High throughput mode" that
allows to send up to 4 data packets per connection interval. This increases significantly the throughput. This mode and its usage is described in Proteus-II - Application Note 4".
All Bluetooth®LE roles supported: The integrated Bluetooth®LE stack supports all Bluetooth®LE
roles. Depending on the current state of operation the Proteus-II firmware automatically switches its role to execute the user’s instructions.
Flexible wired interfacing: If custom hardware does not support UART communication or
in case of a host less implementation, the Proteus-II is equipped with extra pins suited
for custom device/sensor connection. With help of these, a tailored firmware can be
developed which is optimized to the customer’s needs. The pins can be configured to
various functions such as UART, SPI, I2C, ADC, PWM, NFC and GPIO.
OTA firmware update: The Proteus-II firmware provides over the air firmware update ca-
pabilities. Firmware updates can be applied using the Nordic Apps for cell phones.
Peripheral only mode: The Proteus-II firmware provides the "peripheral only" operation
mode (see chapter10), that allows the easy adaption of already existing custom hardware with the Bluetooth®LE interface. By default, this mode offers the static passkey
pairing method with bonding and a transparent UART interface. With this, custom hardware can be accessed by mobile Bluetooth®LE devices (like smart phones including
a custom App) using an authenticated and encrypted Bluetooth®LE link without the
need of configuring the module.
1.1.2. Connectivity
The Bluetooth®LE standard allows to setup a network with various Bluetooth®LE devices
from different manufacturers. To be able to communicate with Proteus-II devices, the AMBER SPP-like profile must be known and implemented by all network participants. Thus
arbitrary Bluetooth®LE devices (like iOS or Android devices) must implement this profile,
too. To do so, the Proteus-II application note 1 contains the design data of the AMBER
SPP-like profile.
Table 4: Power consumption for 100% transmission/reception
Due to the Bluetooth®LE time slot operation, the real operating currents are
reduced significantly and depend on the user selectable advertising and connection interval settings.
1
Transmitter only with DC/DC converter from nRF52 data sheet.
Besides the static TX, RX, idle and sleep current the average current is of interest. Here an
example for a typical behavior of a peripheral device in advertising mode (see Figure3and
Figure4). Currents and state durations are dependent on the configuration of the module.
In this state the module transmits the advertising packets on the 3 advertising channels.
Nordic Semiconductor provides an online tool calculating the average current of a Bluetooth
connection. It can be accessed at https://devzone.nordicsemi.com/power/ .
with external antenna. In case of module with
integrated antenna, do not connect.
2GNDSupplyGround
3SWDCLKInput
4SWDIOInput
5P0.21/RESETInput
Serial wire clock. Uses internal pull down resistor. Do not connect if not needed.
Serial wire input/output. Uses internal pull up resistor. Do not connect if not needed.
Reset pin. A low signal resets the module. Uses
internal pull up resistor.
Boot pin. A low signal during and short after re-
6P0.05/AIN3BOOTInput
set starts the module in OTA bootloader mode.
Uses internal pull up resistor1. Do not connect if
not needed.
7VDDSupplySupply voltage
Operation mode pin with internal pull down resis-
8P0.10/NFC22OP_MODEInput
tor1during start-up. Low level or open: Normal
Mode. High level: Peripheral only Mode. Do not
connect if not needed.
9P0.09/NFC12RESERVEDI/ODo not connect.
10P0.00/XL1
3
LED_1Output
Indicates the module state (active high). Do not
connect if not needed.
11P0.01/XL2
3
LED_2Output
Indicates the module state (active high). Do not
connect if not needed.
12P0.02/AIN0UTXDOutputUART(Transmission)
13P0.03/AIN1URXDInput
14P0.04/AIN2/RTSOutput
15P0.28/AIN4/CTSInput
UART (Reception). Uses internal pull up resistor1.
Only used if flow control is enabled. Do not connect if not needed.
Only used if flow control is enabled. Do not connect if not needed.
Wake-up will allow leaving the system-off mode
16P0.29/AIN5WAKE_UPInput
or re-enabling the UART. Uses internal pull up
resistor1. Do not connect if not needed.
17GNDSupplyGround
Table 8: Pinout
1
Internal pull ups or pull downs are configured at startup by the firmware installed in the SoC. The pull up on
the /RESET pin cannot be disabled by firmware.
2
NFC pins available for NFC function in custom firmware. The standard firmware of Proteus-II does not
implement this function.
3
Pins available to connect an external crystal in custom firmware. The standard firmware of Proteus-II does
In factory state the modules are immediately ready for operation; the following pins are required in the minimal configuration:
VDD, GND, UTXD, URXD, /RESET
If the flow control is enabled additionally the pins /RTS and /CTS shall be connected.
We recommend to additionally have the pins SWDIO and SWDCLK accessible in order to
support a fail-safe firmware update. A standard socket on the customer’s PCB for connecting a flash adapter can be useful for debugging purposes (e.g. a JTAG 2*10 pin header with
2.54mm pin-to-pin distance).
Implementing the fail-safe firmware update method using the SWD interface is
recommended. Without having the SWD interface available a fail-safe firmware
update on a customer PCB cannot be guaranteed.
If the module has to be connected to a PC, a converter (TTL to RS-232 or TTL to USB) has
to be used. See chapter3for details on all pins. Please refer to the Proteus-II-EV schemes
for a reference design.
The logic level of the module is based on 3V. A 5V logic level must not be
connected directly to the module.
4.2. Power up
After powering the module the /RESET pin shall be hold for another ∆t of 1ms after the VDD
is stable to ensure a safe start-up. The module will send a
"ready for operation" after the /RESET pin was released.
Applying a reset (e.g. a host temporarily pulling the /RESET pin down for at
least 1ms and releasing it again) after the VCC is stable will also be sufficient.
This section describes how to quick start the data transmission between two Proteus-II modules. The goal is to setup a connection between module A and module B, transmit some
data and close the connection again.
In this section, all packet data from or to the modules is given in hexadecimal notation. For
quick testing, a pair of Proteus-II-EV is recommended.
Connect the two devices (modules, EV-boards or USB dongles) to a PC. A terminal program, for example hterm, is used to perform the communication via COM ports. The two
corresponding COM ports have to be selected and opened with a default configuration of
115200 Baud, 8 data Bits, 1 stop Bit and parity set to none (8n1).
To reproduce the following sequence, note that, the
is different, thus it has to be replaced it in the commands below. In addition, the
checksum has to be adjusted, when adapting any command. The command
structure and checksum calculation is described in chapter8.
Note that the module goes to
after
RF_AdvertisingTimeout
CMD_SLEEP_CNF
default value is 0s, which means that it will run forever.
1. Power-up the modules and make their UARTs accessible by the host(s) (115200 Baud,
8n1). After the power-up or after reset the following sequence is sent from the module.
InfoModule AModule B
⇐ Response
started in
⇐ Response
started in
2. Request the
InfoModule AModule B
⇒ Request
⇐ Response
module A is 0x55 0x00 0x00 0xDA 0x18 0x00
⇒ Request
⇐ Response
module B is 0x11 0x00 0x00 0xDA 0x18 0x00
3. Connect module A to module B via Bluetooth®.
CMD_GETSTATE_CNF
ACTION_IDLE
CMD_GETSTATE_CNF
ACTION_IDLE
FS_BTMAC
CMD_GET_REQ
CMD_GET_CNF:FS_BTMAC
CMD_GET_REQ
CMD_GET_CNF:FS_BTMAC
mode.
mode.
of both modules.
with settings index 402 10 01 00 04 17
with settings index 402 10 01 00 04 17
: Module A
: Module B
of
of
02 41 02 00 01 01 41
02 41 02 00 01 01 41
02 50 07 00 00 55 00
00 DA 18 00 C2
02 50 07 00 00 11 00
00 DA 18 00 86
This example is taken from an older firmware. Using newer firmwares with the
optional Bluetooth®4.2 feature "LE Packet Length Extension", the maximum
supported payload per packet may be higher than 0x13.
The Proteus-II module acts as a slave and can be fully controlled by an external host that
implements the command interface. The configuration as well as the operation of the module can be managed by predefined commands that are sent as telegrams over the UART
interface of the module.
The Proteus-II can operate in different states. Depending on the active state several commands of the command interface (see chapter7) are permitted to modify the state, configure
the module or transmit data over the radio interface. An overview of the different states and
the corresponding allowed commands can be found in Figure7.
When the Proteus-II is powered up, it starts in
advertises (Bluetooth®LE role "peripheral"), such that other devices in range (Bluetooth®LE
role "central" or "observer") can detect it and connect to it. If no connection was setup after
RF_AdvertisingTimeout
advertising.
The
ACTION_IDLE
stops advertising and scans for other advertising modules in range (Bluetooth®LE role "central").
When leaving the
in
ACTION_IDLE
The
ACTION_CONNECTED
other module (Bluetooth®LE role "peripheral") or by setting up a connection itself (Bluetooth®LE
role "central"). In this case it stops advertising and data can be transmitted and received
to/from the connected module. This state remains active as long as the module does not
disconnect itself (e.g. due to a timeout), no disconnection request from the connected device
is received.
When disconnecting, the module goes to
state also allows to switch to
ACTION_SCANNING
state and starts advertising again.
seconds, the module goes to
state with the corresponding command, the module is
state can be entered either by getting a connection request from an-
The pins LED_1 and LED_2 of the Proteus-II can be used to determine the module state.
The states described in Figure7result in the following pin behavior. The pins on the ProteusII are active high.
StateLED_1LED_2
ACTION_IDLE
ACTION_SCANNING
ACTION_CONNECTED
ACTION_SLEEP
ACTION_DTM
BOOTLOADER
connection
BOOTLOADER
firmware update running
waiting for
connected,
5.2. Sleep mode
Blinking (On for 200ms, Off for
2800ms)
Blinking (On for 1000ms, Off for
1000ms)
On
OffOff
OffOff
OnOff
OffOn
Table 9: LED behavior of the Proteus-II
Off
Off
Off, On (as soon as the channel
was opened successfully, see
CMD_CHANNELOPEN_RSP
)
Especially for battery-powered devices the
very low power consumption (<1µA). It can be entered by sending the command
REQ
to the module. If allowed (due to the current operating state) the module will then send
a
CMD_SLEEP_CNF
In
ACTION_SLEEP
data. To prevent leakage current, the host shall not pull the UART_RX to LOW level (as the
module has an internal pull-up resistor enabled on this pin).
To leave the
woken up by applying a low signal to the WAKE_UP pin for at least 5ms before releasing the
signal back to high. The module then restarts completely, so that all volatile settings are set
to default. A
and then enter the
mode the UART is disabled, so the module will not receive or transmit any
ACTION_SLEEP
CMD_GETSTATE_CNF
Please note that the WAKE_UP pin has a second function.If the module is not in
CMD_UARTDISABLE_REQ
holding the line low for at least 10ms before applying a rising edge and
holding it high for at least 10ms. In this case the module answers with a
CMD_UARTENABLE_IND
mode and enter
ACTION_SLEEP
ACTION_SLEEP
will be send when the module is ready for operation.
, the UART can be re-enabled by applying falling edge,
5.3. Identification of a Proteus-II device on the radio
The Proteus-II can be identified on the radio interface by its
Bluetooth®-conform MAC address, which is part of the data package sent during advertising
in
ACTION_IDLE
In
ACTION_SCANNING
in range and stores their
connection to the corresponding device can then be established using the
command.
To simplify the identification of Proteus-II devices on the RF-interface a short user-defined
name (see
packet.
mode. A
state a module listens to the data packets of all advertising modules
RF_DeviceName
The
FS_BTMAC
SerialNumber
FS_BTMAC
FS_BTMAC
) can be given to the module, which is also part of the advertising
of the module.
has the size of 6 Bytes.
to an internal data base. With help of a
consists of the company ID 0x0018DA followed by the
FS_BTMAC
. This
FS_BTMAC
FS_BTMAC
CMD_CONNECT_REQ
is a
FS_
5.4. Connection based data transmission, with or without security
In the Bluetooth®LE standard the transmission of data typically is connection based. A connection between two devices can be secured (with or without key exchange) or unsecured
(default setting). In any case, each data packet transmitted is acknowledged on the link layer, such that it is resent as long as a packet is lost. The following lines describe how to run
the connection setup and data transmission using the Proteus-II.
If module A is supposed to setup a connection with module B, module A can use the command
unknown, a scan can be run before by module A to discover all available modules in range.
After sending the command
to signal that the request has been understood and the module now tries to establish the
connection.
If module B cannot be found on the air within a timeout, module A outputs a
with "failed" as status. Otherwise, as soon as the physical connection has been set up successfully, module A and B print a
tion and LED_1 turns on.
Next some security and authentication messages will follow, like
rity is enabled.
After the physical connection has been setup successfully the modules exchange their services. As soon as this has finished successfully, a
UART indicating that the connection is ready for data transmission. Furthermore, LED_2
turns on.
Now data can be transmitted in both directions using the command
confirmed by a
transmitted successfully).
Each time data has been received a
data.
As soon as one module closes the connection using a
will inform their host by a
open. If one module is no longer within range, the
gered by a timeout.
For an example on setting up an unsecured connection, see chapter
Proteus-II application note "advanced user guide" to get detailed information about the connection setup with foreign devices.
5.4.1. Further information for a secure connection setup
The
RF_SecFlags
curity mode of a Proteus-II peripheral device is set, its security level has to be met by the
connecting central device to be able to exchange data. As soon as the defined security level
is not met by the central device, no access to the peripheral’s profiles will be granted.
parameter of the module determines the security mode. If a certain se-
When connecting from a Proteus-II to a Proteus-II, you shall not use different
security modes.
To get further information about the secured connection setup, when using a
foreign device (i.e. mobile phone with a custom APP), please refer to the Application Note "advanced user guide" (Proteus-I: ANR002, Proteus-II: ANR005).
CMD_DISCONNECT_IND
4.3
message is trig-
. See also the
5.4.1.1. Just works mode
In case of the "Just works" mode, each time a connection is established, a new random key
is exchanged in advance to be used for data encryption. Since no authentication will be
performed, also devices without input and output capabilities (like keyboard or display) are
able to connect to each other.
Example: Secured connection with LE Legacy security method "Just Works" without
bonding
1. Power-up the modules and make their UARTs accessible by the host(s) (115200 Baud,
8n1). After the power-up or after reset the following sequence is sent from the module
7. Now module A closes the connection, so both modules will get a disconnect indication.
InfoModule AModule B
⇒ Request
⇐ Response
received, disconnect now
⇐ Indication
closed
⇐ Indication
closed
8. You may want to perform a
CMD_TXCOMPLETE_RSP
CMD_DISCONNECT_REQ
CMD_DISCONNECT_CNF
CMD_DISCONNECT_IND
CMD_DISCONNECT_IND
: Data
: Disconnect02 07 00 00 05
: Request
: Connection
: Connection
CMD_FACTORYRESET_REQ
02 C4 01 00 00 C7
02 47 01 00 00 44
02 87 01 00 16 92
to restore default settings.
02 87 01 00 13 97
5.4.1.2. StaticPasskey mode
In case of the "StaticPasskey" mode, a pass key has to be entered at the central side that
has to match the pass key of the peripheral. Here the Proteus-II uses a static pass key in the
peripheral role that is stored in the parameter
the central device requests its host to enter the correct pass key (see
CMD_PASSKEY_IND
In this case the pass key of the peripheral has to be entered on central side using the
CMD_PASSKEY_REQ
command. If the entered pass key is correct, the channel will be opened
for data transmission. Otherwise, the connection will be rejected.
Example: Secured connection with security method "StaticPasskey"
1. Power-up the modules and make their UARTs accessible by the host(s) (115200 Baud,
8n1). After the power-up or after reset the following sequence is sent from the module
InfoModule AModule B
).
⇐ Response
started in
⇐ Response
started in
2. Request the
CMD_GETSTATE_CNF
ACTION_IDLE
CMD_GETSTATE_CNF
ACTION_IDLE
FS_BTMAC
: Module A
mode.
: Module B
mode.
of both modules.
02 41 02 00 01 01 41
02 41 02 00 01 01 41
InfoModule AModule B
⇒ Request
⇐ Response
module A is 0x55 0x00 0x00 0xDA 0x18 0x00
⇒ Request
⇐ Response
module B is 0x11 0x00 0x00 0xDA 0x18 0x00
3. Configure the parameter
CMD_GET_REQ
with settings index 402 10 01 00 04 17
CMD_GET_CNF:FS_BTMAC
CMD_GET_REQ
with settings index 402 10 01 00 04 17
CMD_GET_CNF:FS_BTMAC
RF_SecFlags
of
02 50 07 00 00 55 00
00 DA 18 00 C2
of
02 50 07 00 00 11 00
00 DA 18 00 86
to use "StaticPasskey" pairing method for Bluetooth
in a connection setup. With this, subsequent connections to bonded devices can be established without renegotiation. Bonding data of up to 32 devices will be stored in the flash.
The commands
certain or all entries of the list of bonded devices.
Example: Secured connection with LE Legacy security method "Just Works" using
bonding
1. Power-up the modules and make their UARTs accessible by the host(s) (115200 Baud,
8n1). After the power-up or after reset the following sequence is sent from the module
5.5. Unidirectional connectionless data transmission using Beacons
Besides the connection-based type of data transmission described in the previous section
there exists a second method that uses so called Beacons. In this case, a limited amount of
user data can be placed in the Bluetooth®LE scan response packet, which is broadcasted
frequently without acknowledgement and without security.
If a Proteus-II is supposed to broadcast some data, the command
be used to place user data in the scan response packet.
If a second Proteus-II, which has its Beacon-function (see
the operating state
as an advertising packet from the beacon module has been detected. Filtering the beacon
messages can be enabled or disabled using
After the reception of the scan response packet the included user data is interpreted and
given out to the UART using a
To set the module into
be used. Enable the Beacon-function before by setting the corresponding Bit in the
BeaconFlags
parameter.
ACTION_SCANNING
CMD_BEACON_IND
ACTION_SCANNING
This method is very suitable for sensor networks, which frequently send their
data to data collectors. Especially when using a slow
data can be transmitted in a more energy efficient way.
, then the scan response packet is requested as soon
RF_BeaconFlags
message.
mode the command
RF_BeaconFlags
.
CMD_SETBEACON_REQ
) enabled, is in
CMD_SCANSTART_REQ
RF_ScanTiming
can
has to
RF_
mode,
Please check the settings
val in
which will have an influence on the current consumption of the module.
RF_ScanTiming
RF_AdvertisingTimeout
to configure the frequency and interval of transmissions
The Proteus-II advertising packet contains the TX power value of the transmitting device.
This value in combination with the RSSI value of the received advertising packet can be
used to estimate the distance between the modules. Using a suitable triangulation algorithm
and multiple receivers or transmitters, a position can be approximated.
The advertising packets can be received by performing a passive scan that will not request
the scan response. Thus only one frame, instead of three frames, is transmitted per advertising interval.
Besides the
put in format of a
Proteus-II has been received.
To enable this function, the corresponding Bit in the
FS_BTMAC
CMD_RSSI_IND
of the sending module, the RSSI value and the TX power is out-
message via UART when an advertising packet of another
5.7. Configure the module for low power consumption
Depending on the application environment of the Proteus-II, the goal is to find the optimal
trade-off between the module’s performance and its power consumption. Therefore, the
main settings and operation modes that affect the current consumption are listed below:
•
CMD_SLEEP_REQ
consumes the lowest current (<1µA). In this case, both the UART and the Bluetooth®LE
interface are shut down.
•
CMD_UARTDISABLE_REQ
as soon as the module is reset/woken or when the module outputs a message e.g.
when a connection request has been received or the WAKE_UP pin of the module was
used.
•
RF_TXPower
Reducing the output power saves energy.
•
RF_ScanTiming
module, when advertising or scanning. The less often the module sends advertising
packets or scans, the less current is consumed.
: This command puts the module into
: This command disables the UART interface. It is enabled again
: This setting can be used to configure the output power of the module.
and
RF_ScanFactor
: These settings define the timing behavior of the
ACTION_SLEEP
mode, where it
•
RF_ConnectionTiming
connection setup and an established connection. The less often the connected modules communicate with each other, the less current is consumed.
• The on-board nRF52 SoC is running in debug mode. This will not occur if the pins are
connected as described in this manual.
For optimum energy efficiency a user and application specific firmware may be
required.
: This setting defines the timing behavior of the module during
5.8. Start the direct test mode (DTM)
The direct test mode (DTM) enables the test functions described in Bluetooth®Specification.
The purpose of DTM is to test the operation of the radio at the physical level, such as:
Conformance tests of the nRF52 with the DTM application are carried out by dedicated test
equipment. To get access to the test functions the
command restarts the module in direct test mode. A
that the DTM has been started successfully. Now the
stop the test functions. After a test has been started, it has to be stopped before a next test
can be run.
Example: Transmission test on channel 0 with Bit pattern 0x0F
The goal of this example is to show how the DTM, and in specific the transmission/reception
test, can be run. Here fore we need to connect two modules, start the transmission test on
one module and start the reception test on the second module. In this section, all packet
data from or to the modules is given in hexadecimal notation.
All steps are described in the following:
• First, restart the modules in DTM mode.
InfoModule AModule B
CMD_DTMSTART_REQ
CMD_GETSTATE_CNFCMD_DTM_REQ
shall be used first. This
message confirms
can be used to start and
⇒ Request
DTM on module A
⇐ Response
understood, try to start DTM now
⇐ Indication
module with DTM enabled
⇒ Request
DTM on module B
⇐ Response
understood, try to start DTM now
⇐ Indication
module with DTM enabled
• Now both modules are ready for the DTM. Start the transmission test first.
InfoModule AModule B
⇒ Request
transmission test on module A with channel 0
and Bit pattern 16 times 0x0F
During the time the reception and transmission tests were running 5374 data packets have
been received by module B, which were transmitted by module A.
5.9. Using the 2MBit phy
Bluetooth®5 allows to transmit data with 2 MBit data rate. Bluetooth®connections must still
be setup using the 1 MBit phy to be backward compatible to Bluetooth®4.x devices. As soon
as a connection has been setup, the connection can be updated to the 2 MBit phy.
To switch to 2 MBit phy after the connection has been setup the Proteus-II offers the command
from the Proteus-II, that gives feedback if the connection was switched to the new phy, or if
the connection partner rejected the request.
CMD_PHYUPDATE_REQ
Please note that the 2 MBit phy is an optional feature of Bluetooth®5 devices
and therefore must not be supported.
The configuration in factory state of the UART is 115200 Baud without flow control and with
data format of 8 data Bits, no parity and 1 stop Bit ("8n1"). The baud rate of the UART can
be configured by means of the UserSetting
to 8n1. The flow control can be enabled by means of the UserSetting
The output of characters on the serial interface runs with secondary priority. For this reason,
short interruptions may occur between the outputs of individual successive Bytes. The host
must not implement too strict timeouts between two Bytes to be able to receive packets that
have interruptions in between.
The module acts as a slave and can be fully controlled by an external host. The configuration
as well as the operation of the module can be managed by predefined commands that are
sent as telegrams over the UART interface of the module.
The commands of the command interface can be divided into 3 groups:
• Requests: The host requests the module to trigger any action, e.g. in case of the
request
• Confirmations: On each request, the module answers with a confirmation message
to give a feedback on the requested operation status. In case of a
the module answers with a
performed or not.
• Indications and Responses: The module indicates spontaneously when a special event
has occurred. The
established.
CMD_RESET_REQ
Start signalCommandLengthPayloadCS
0x021 Byte2 Byte, LSB firstLength Bytes1 Byte
the host asks the module to perform a reset.
CMD_RESET_CNF
CMD_CONNECT_IND
indicates for example that a connection has been
to tell the host whether the reset will be
CMD_RESET_REQ
,
Start signal: 0x02 (1 Byte)
Command: One of the predefined commands (1 Byte).
Length: Specifies the length of the data that follows. Length is a 16 Bit field with LSB first.
Payload: Variable number (defined by the length field) of data or parameters.
Checksum: Byte wise XOR combination of all preceding Bytes including the start signal,
i.e. 0x02 ˆ Command ˆ Length ˆ Payload = CS
Host integration example codes for checksum calculation and command frame
structure can be found in annexAandB, as well as in the Wireless ConnectivitySDK .
If the transmission of the UART command has not finished within the packet
transmission duration (depending on the currently selected UART Baud rate +
5ms after having received the start signal), the module will discard the received
Bytes and wait for a new command. This means that the delay between 2
successive Bytes in a frame must be kept as low as possible.
Please note that the different commands are only valid in specific module states (see Figure7). If a command is not permitted in the current state, the
command confirmation returns "Operation not permitted" as a response.
This command starts the scan operation to find other Proteus-II in range. All found devices
that fit the Proteus-II specification (i.e. devices that support AMBER SPP service UUID) are
saved in an internal data base. Before outputting the data base content using the command
CMD_GETDEVICES_REQ
Format:
, the scan has to be stopped using
Start signalCommandLengthCS
0x020x090x00 0x000x0B
CMD_SCANSTOP_REQ
.
Response (
Status:
0x00: Request received, will start scan now
0x01: Operation failed
0xFF: Operation not permitted
7.1.2. CMD_SCANSTOP_REQ
This command stops the scan operation that was started using
the detected Proteus-II
using the
Format:
CMD_SCANSTART_CNF
Start signalCommand | 0x40LengthStatusCS
0x020x490x01 0x001 Byte1 Byte
FS_BTMAC
CMD_GETDEVICES_REQ
Start signalCommandLengthCS
):
addresses in an internal database, which can be output
This command returns the information about the devices found during the last scan operation.
sponding information will be output one after the other in the field behind
CMD_GETDEVICES_CNF
complement notation.
Format:
#Devices
determines the number of devices that have been detected. The corre-
#Devices
response. The RSSI and TXPower values are transmitted in the two’s
The Payload sequentially lists the data of the detected
#Devices
BTMACRSSITXPowerDevice name length
6 Bytes1 Byte1 Byte1 Byte
Status:
0x00: Request received
0x01: Operation failed
0xFF: Operation not permitted
CMD_GETDEVICES_CNF
times the following telegram (see example below).
):
#Devices
#Devices
PayloadCS
devices. It consists of
Device name
Device name length Bytes
If there are too many devices found to be output, the response of the
GETDEVICES_REQ
The detected device name is the content of the device name field of the received advertising packet. Thus, in case of the "Complete Local Name" is too
long to fit into the device name field of the advertising packet, this could be the
"Shortened Local Name" of the device.
If Device name length = 0, then there is no device name available.
7.1.3.1. Example 1
Request for the
Response:
Start signal
0x02
During the last scan two devices have been detected:
• Device 1 with
dBm), TXPower of 0x04 (=+4 dBm) and device name of length 5 with the value of
0x4D4F442031 ("MOD 1").
FS_BTMAC
Start signalCommandLengthCS
Command
| 0x40
0x4B
FS_BTMAC
of the devices found during the last scan.
0x020x0B0x00 0x000x09
LengthStatus
0x1E 0x000x000x02
0x11 0x00 0x00 0xDA 0x18 0x00, RSSI value of 0xE2 (-30
#Devices
Payload
0x11 0x00 0x00 0xDA
0x18 0x00 0xE2 0x04
0x05 0x4D 0x4F 0x44
0x20 0x31 0x55 0x00
0x00 0xDA 0x18 0x00
0xE5 0x00 0x05 0x4D
0x4F 0x44 0x20 0x32
CS
0x11
• Device 2 with
(-27 dBm), TXPower of 0x00 (0 dBm) and device name 0x4D4F442032 ("MOD 2") of
length 5.
7.1.4. CMD_RSSI_IND
This telegram indicates the reception of an advertising packet sent by another Proteus-II
module. It can be used to realize a position sensing application. This data can only be
received, when the module is in
corresponding Bit in the
Besides the
of the sending device are output. Both, the RSSI value and the TX power are in two’s
, the RSSI value of the advertising packet and the transmission power
0x55 0x00 0x00 0xDA 0x18 0x00 and RSSI value of 0xE5
ACTION_SCANNING
is set.
mode (passive scan is sufficient) and the
complement notation.
The accuracy is ±2dB when inside the RSSI range of -90 to -20 dBm.
The value of the parameter TX power is read from the content of the received advertise
packet.
Format:
This command tries to setup a connection to the Proteus-II, which is identified by the
BTMAC
request was received, the indication message
whether the connection request was accepted by the other device.
In case of enabled security features (see the setting
output in addition.
As soon as the connection setup has been completed and all services have been discovered
successfully a
the
Format:
Response (
Status:
used in the command. After the module prints a
CMD_CHANNELOPEN_RSP
CMD_DATA_REQ
CMD_CONNECT_CNF
Start signalCommand | 0x40LengthStatusCS
.
Start signalCommandLengthBTMACCS
0x020x060x06 0x006 Bytes1 Byte
):
0x020x460x01 0x001 Byte1 Byte
is printed by the UART. Now data may be sent using
CMD_CONNECT_CNF
CMD_CONNECT_IND
RF_SecFlags
to confirm that the
follows which determines
) a
CMD_SECURITY_IND
FS_
is
0x00: Request received, try to connect to the device with the
0x01: Operation failed
0xFF: Operation not permitted
7.2.2. CMD_CONNECT_IND
This telegram indicates the connection status and the
This indication message is the result of a connection request (
Format:
Start signalCommandLengthStatusBTMACCS
0x020x860x07 0x001 Byte6 Bytes1 Byte
Status:
0x00: Physical connection established successfully
0x01: Connection failed, e.g. due to a timeout (as defined by
FS_BTMAC
FS_BTMAC
of the connected device.
CMD_CONNECT_REQ
RF_ScanTiming
).
)
7.2.3. CMD_SECURITY_IND
This telegram indicates the security status and the
indication message is the result of a connection request (
Format:
0x00: Encrypted link to previously bonded device established
0x01: Bonding successful, encrypted link established
0x02: No bonding, pairing successful, encrypted link established
7.2.4. CMD_CHANNELOPEN_RSP
This command is printed on the UART as soon as connection setup and service discovery
has been completed successfully. Now data can be transmitted using the
Next to the
by the link is part of this telegram. This indication message is the result of a connection
request (
Format:
Start signalCommandLengthStatusBTMACMax payloadCS
FS_BTMAC
CMD_CONNECT_REQ
of the connected device, the maximum payload size that is supported
).
CMD_DATA_REQ
.
0x020xC60x08 0x001 Byte6 Bytes1 Byte1 Byte
Status:
0x00: Success
7.2.5. CMD_DISCONNECT_REQ
This command shuts down the existing connection. Thereafter the module prints a
CMD_DISCONNECT_CNF
sage
has been performed successfully or not.
Format:
Response (
CMD_DISCONNECT_IND
CMD_DISCONNECT_CNF
Start signalCommand | 0x40LengthStatusCS
to confirm that the request has been received, the indication mes-
follows which determines whether the disconnection operation
This command indicates that there was an attempt to update the PHY of the existing connection. If the PHY update was successful, the command includes the new PHY for receiving
and transmitting direction, as well as the BTMAC of the device connected to. This command
is the result of the
Format in case of success:
When receiving a
pass key to authenticate the connecting device. To answer this request the
message has to be sent to the Proteus-II central including the passkey of the peripheral. The
permissible characters of the passkey are ranging from 0x30 to 0x39 (both included) which
are ASCII numbers (0-9).
Format:
Response (
CMD_PASSKEY_CNF
CMD_PASSKEY_IND
Start signalCommandLengthPass keyCS
0x020x0D0x06 0x006 Bytes1 Byte
):
Start signalCommand | 0x40LengthStatusCS
0x020x4D0x01 0x001 Byte1 Byte
during connection setup, the peripheral requests for a
CMD_PASSKEY_REQ
Status:
0x00: Pass key accepted and pass key request answered
Depending on the security settings of the peripheral, a passkey has to be entered on the
central side to authenticate the central device. When such a pass key authentication request
is received on the central side this
case, the passkey has to be entered using the
connection procedure.
Format:
Start signalCommandLengthStatusBTMACCS
0x020x8D0x07 0x001 Byte6 Bytes1 Byte
Status:
0x00: Success
7.2.11. CMD_GETBONDS_REQ
This command requests the MAC addresses of all bonded devices.
Format:
This command removes the bonding information of all or single bonded devices. Enter
Bond_ID to remove the bonding data of a certain Bond_ID. To remove all bonding data,
choose Length equals 0 and leave Bond_ID empty.
Format:
This command provides the simple data transfer between two connected modules. Transmission takes place to the previously connected device(s). This command is suitable for
transmission for a point-to-point connection. The number of payload data Bytes is negotiated during the connection phase. It can be maximal 243 Bytes, but at least 19 Bytes.
When the data is processed by the module a
ally a
The receiving Proteus-II will get a
load data.
Format:
CMD_TXCOMPLETE_RSP
In "high throughput mode" the length of data packets may be up to 964 Bytes.
For more information please refer to ANR006 Proteus-II High Throughput Mode.
Start signalCommandLengthPayloadCS
will follow as soon as the data has been sent.
CMD_DATA_IND
CMD_DATA_CNF
message containing the transmitted pay-
is output by the UART. Addition-
0x020x042 BytesLength Bytes1 Byte
Response (
Status:
0x00: Request received, will send data now
0x01 + 0xXX: Operation failed + 0xXX maximum payload size (if it was exceeded)
0xFF: Operation not permitted
7.3.2. CMD_TXCOMPLETE_RSP
This command is output to the UART as soon as the data, which was requested by a
This telegram indicates the reception of data sent by the previously connected device. This
indication message is the result of a data request (
device within a connection.
The
CMD_DATA_IND
ceived data packet and the data received via the RF-interface, which can be found in the
payload. The RSSI value is printed in two’s complement notation.
Format:
This command is used to place user data in the scan response packet. The data is broadcasted frequently without acknowledgement and security. No connection is needed for this
mode of operation.
It can be received by any scanning Proteus-II with Beacon-function enabled (see
The receiving module will output a
mitted data. See chapter
Choosing 0x00 as Length and leaving the Payload field empty will remove the data from the
scan response packet. The number of payload data Bytes is limited to 19.
Format:
returns the
5.5
FS_BTMAC
CMD_BEACON_IND
for more information.
of the sending device, the RSSI value of the re-
CMD_DATA_REQ
indication message containing the trans-
) sent to the associated
RF_BeaconFlags
).
Start signalCommandLengthPayloadCS
0x020x0C2 BytesLength Bytes1 Byte
Response (
Status:
0x00: Request received, will place data now
0x01: Operation failed
0xFF: Operation not permitted
7.3.5. CMD_BEACON_IND
This telegram indicates the reception of data Bytes that have been transmitted in a beaconpacket. This data can only be received, when the module is in
the beacon-function is enabled (see
The data received via the RF-interface can be found in the payload of the
telegram. Besides this, the
packet are output as well. The RSSI value is output in two’s complement notation.
Format:
CMD_SETBEACON_CNF
Start signalCommand | 0x40LengthStatusCS
0x020x4C0x01 0x001 Byte1 Byte
):
FS_BTMAC
ACTION_SCANNING
RF_BeaconFlags
of the sending device and the RSSI value of the data
7.4. Configuring the module and modifying the device settings
It is strongly recommended to have identical settings on all devices, which have
to open a connection with each other or are to be used in Beacon mode.
The module’s parameters are stored in flash, but have a local copy in RAM. The flash parameters can be modified by the
even when resetting the module.
7.4.1. CMD_SET_REQ
This command enables direct manipulation of the parameters in the module’s settings in
flash. The respective parameters are accessed by means of the corresponding settings index, which can be found in Table17.
Parameters of 2 or more Bytes have to be transferred with the LSB first unless noted differently in the corresponding description.
CMD_SET_REQ
, read by the
CMD_GET_REQ
and retain their content
The modified parameters only take effect after a restart of the module. This
may be done by a
The flash memory used to store these settings has a limited count of write
cycles. Try to avoid performing periodic
use one write cycle.
The validity of the specified parameters is not verified. Incorrect values can
result in device malfunction!
To save the parameters in the flash memory of the module, the particular memory segment must first be flushed entirely and then restored from RAM. If a
reset occurs during this procedure, the entire memory area may be corrupted
(e.g. due to supply voltage fluctuations).
Recommendation: First, verify the configuration of the module with
This command can be used to query individual setting parameters in flash. The respective
parameters are accessed by means of the corresponding settings index, which can be found
in Table17.
Parameters of 2 or more Bytes have to be transferred with the LSB first unless noted differently in the corresponding description.
Read access to the memory area outside the setting is blocked.
Format:
Start signalCommandLengthSettings indexCS
0x020x100x01 0x001 Byte1 Byte
Response (
Status:
0x00: Request received, read out of setting successful
The module is connected to another module with
0x00.
7.5.2. CMD_RESET_REQ
This command triggers a software reset of the module.
Format:
Response (
Command
| 0x40
0x41
Start signalCommandLengthCS
CMD_RESET_CNF
Start signalCommand | 0x40LengthStatusCS
Length
0x08 0x00
0x020x000x00 0x000x02
):
Module
role
0x020x03
FS_BTMAC
Module
actions
More info
0x11 0x00 0x00
0xDA 0x18 0x00
0x11 0x00 0x00 0xDA 0x18
CS
0x99
0x020x400x01 0x001 Byte1 Byte
Status:
0x00: Request received, will perform reset now
0x01: Operation failed
0xFF: Operation not permitted
7.5.3. CMD_SLEEP_REQ
This command is used to start the system-off mode (
e, the module has to be woken up using the WAKE_UP pin (apply a low signal at this for
at least 5ms and release it to high again) before any other action can be performed. The
UART interface as well as the Bluetooth®LE interface are shut down in this mode. For more
details, please see also chapter
Format:
0x00: Request received, will perform factory reset now
0x01: Operation failed
0xFF: Operation not permitted
To save the parameters in the flash memory of the module, the particular memory segment must first be flushed entirely and then restored from RAM. If a
reset occurs during this procedure (e.g. due to supply voltage fluctuations),
the entire memory area may be destroyed.
During start-up of the device, the user settings memory is checked for consistency. In case of inconsistency (e.g. the memory was erased) the device will
perform a factory reset.
This command also removes all bonding data.
7.5.6. CMD_UARTDISABLE_REQ
This command disables the UART of the module. It will be re-enabled when the module
has to send data to the host (e.g. data was received via RF or a state is indicated) or if
the WAKE_UP pin is used (apply a falling edge, hold low for at least 10ms before applying
a rising edge and hold high for at least 10ms). In this case, either the received data or a
CMD_UARTENABLE_IND
another
Format:
Response (
Status:
CMD_UARTDISABLE_REQorCMD_SLEEP_REQ
CMD_UARTDISABLE_CNF
Start signalCommand | 0x40LengthStatusCS
is transmitted by the module. Afterwards the UART will stay active until
We insistently recommend disabling the UART using this command only, if
it is foreseeable that there will be no UART communication for several seconds! Use cases could be during advertising phase to wait for connecting
Bluetooth®LE devices or when broadcasting data via Beacons.
Disabling the UART peripheral of the module results in a reduction of current
consumption of about 1.15mA.
Please note that the WAKE_UP pin has a second function. If the module is in
ACTION_SLEEP
mode, this pin wakes up the module by applying a low signal at
this for at least 5ms and releasing it to high. In this case, the module answers
with a
CMD_GETSTATE_CNF
.
7.5.7. CMD_UARTENABLE_IND
This indication is shown when the UART of the module is re-enabled (after performing a
CMD_UARTDISABLE_REQ
followed by using the WAKE_UP pin). After receiving this message
the UART can be used for any operation again.
Format:
Start signalCommandLengthStatusCS
0x020x9B0x01 0x001 Byte1 Byte
Status:
0x00: UART has been re-enabled successfully
7.5.8. CMD_BOOTLOADER_REQ
This command resets the module and starts the OTA bootloader.
Please refer to chapter13on how to use the bootloader for a firmware update.
Please note that you can only exit the bootloader mode by performing a hardware reset using the respective pin.
The bootloader mode will also be enabled if the firmware image is marked "invalid" or if the BOOT pin logic level (set by the host) is set to start the bootloader
during start-up of the module.
The test modes "DTM" as specified by the Bluetooth®SIG are defined in the Bluetooth
Core specification.
7.6.1. CMD_DTMSTART_REQ
This command restarts the module in direct test mode (DTM). When starting in DTM mode,
a
CMD_GETSTATE_CNF
successfully. Now the
message follows which indicates that the test mode has been enabled
CMD_DTM_REQ
can be used to start and stop various test modes.
As soon as the module is reset, the DTM will be left again and normal operations can be
performed.
Performing a reset will leave the DTM and restart the module in the
ACTION_IDLE
state.
Format:
Start signalCommandLengthCS
0x020x1D0x00 0x000x1F
Response (
CMD_DTMSTART_CNF
):
Start signalCommand | 0x40LengthStatusCS
®
0x020x5D0x01 0x001 Byte1 Byte
Status:
0x00: Request received, will enable the direct test mode now
0x01: Operation failed
0xFF: Operation not permitted
7.6.2. CMD_DTM_REQ
This command starts and stops various test modes. To be able to run these test modes, the
DTM has to be enabled first using the
CMD_DTMSTART_REQ
. After a test has been started, it
has to be stopped first before a next test can be run.
The default TX power value is 0 dBm, the allowed range is from -40 up to +4 dBm in steps
of 4dB (see chapter
8.16
).
The valid range for Channel (or Vendor option in case of Vendor Command = Carrier Test)
is 0. . . 39.
Format:
Test started successfully. In between we started the transmission test on a second module.
When we stop RX test now, we can count the received packets from the transmitting module.
Start
signal
0x02
Response:
Test stopped successfully and received 0x0E67 (3687) packets.
Reset the module
Request the current module state
Go to sleep
Send data to the connected device
Setup a connection with another device
Close the connection
Start scan
Stop scan
Request the scanned/detected devices
Place data in scan response packet
Respond to a pass key request
Delete bonding information
Read the MACs of bonded devices
Read the module settings in flash
Modify the module settings in flash
Update the PHY
Disable the UART
Perform a factory reset
Enable the direct test mode
Start/stop a test of the direct test mode
Switch to the bootloader
Reset request received
Return the current module state
Sleep request received
Data transmission request received
Connection setup request received
Disconnection request received
Scan started
Scan stopped
Output the scanned/detected devices
Data is placed in scan response packet
Received the pass key
Deleted bonding information
Return the MAC of all bonded devices
Return the requested module flash settings
Module flash settings have been modified
Update Phy request received
Disable UART request received
Factory reset request received
Enable the direct test mode now
Test of direct test mode started/stopped
Will switch to bootloader now
State will be changed to
Data has been received
Connection established
Disconnected
Secured connection established
Advertising package detected
Received Beacon data
Received a pass key request
PHY has been updated
UART was re-enabled
Entered error state
Data has been sent
Channel open, data transmission possible
The settings described in this chapter are stored permanently in the module’s flash memory. Depending on their corresponding permissions, their current values can be read out by
the
CMD_GET_REQ
responding settings index is used, which can be found in the primary table of each setting
description.
These settings cannot be accessed (read, write) from the Peripheral only mode introduced
in a follow-up chapter.
command or modified by the
The validity of the specified parameters is not verified. Incorrect values can
result in device malfunction.
After the modification of the non-volatile parameters, a reset will be necessary
for the changes to be applied.
CMD_SET_REQ
command. To do so the cor-
8.1. FS_DeviceInfo: Read the chip type and OS version
Settings
index
15
This setting contains information about the chip type and the OS version. The value of
FS_DeviceInfo
the response):
OS version:
0x00A8 : Softdevice S132 6.0.0
Build code:
Designation
FS_DeviceInfo
is composed of the following 4 sub parameters (ordered by appearance in
Response
MSB first):
OS version = 0x0088 (Softdevice S132 2.0.1)
Build code = 0x41414241 (AABA)
Package variant = 0x2002 (CI)
Chip ID = 0x00052832
Please note that LSB is transmitted first in case of parameters with more than 1 Byte length.
8.4. FS_BTMAC: Read the Bluetooth conform MAC address
Settings
index
4
This setting contains the Bluetooth®LE conform MAC address of the module. The
is introduced and used to find the respective device on the RF-interface. It consists of the
company ID 0x0018DA followed by the
LSB is transmitted first in all commands.
8.4.1. Example 1
Request the Bluetooth®-conform MAC address of the module using
tings index 4
Response
0x11 0x00 0x00 0xDA 0x18 0x00.
Designation
FS_BTMAC
Start signalCommandLengthSettings indexCS
0x020x100x01 0x000x040x17
CMD_GET_CNF
Permissible
values
--
FS_SerialNumber
: Successfully read out the Bluetooth®LE conform MAC address
This parameter determines the name of the module, which is used in the advertising packets
as well as in the Generic Access Profile (GAP). The permissible characters are in the range
of 0x20 - 0x7E which are special characters (see ASCII table), alphabetic characters (a-z
and A-Z), numbers (0-9) and whitespace.
Designation
RF_DeviceName
This parameter is using MSB first notation.
The maximum size of the device name that fits into an advertising packet is 5
Bytes. Thus longer device names will be shortened to 5 Bytes and declared
as "Shortened Local Name" in the advertising packet. The full device name is
included in the GAP.
Permissible
values
See
description
Default value
"A2623"
Permissions
read/write
Number of
Bytes
1-31
8.6.1. Example 1
Set the device name of the module to 0x4D 0x4F 0x44 0x20 0x31 = "MOD 1" using
This setting determines the static pass key of the peripheral device used for authentication.
If the static pass key security mode is enabled by the peripheral, this key must be entered
in the central device. In case of a Proteus-II central, the command to enter this pass key
during connection setup is the
The permissible characters are ranging from 0x30 to 0x39 (both included) which are ASCII numbers (0-9). This is due to the fact that mobile phones prefer numbers only for the
passkey.
8.7.1. Example 1
Set the static pass key of the module to 0x31 0x32 0x33 0x34 0x35 0x36 = "123456" using
CMD_SET_REQ
Start signalCommandLengthSettings index
Designation
RF_StaticPasskey
with settings index 18
Permissible
values
See
description
CMD_PASSKEY_REQ
Default value
"123123"
.
Permissions
read/write
Parameter
Number
of
Bytes
6
CS
0x020x110x07 0x000x12
Response
8.7.2. Example 2
Request the static pass key of the module using
Response
"123456"
CMD_SET_CNF
Start signalCommand | 0x40LengthStatusCS
Start signalCommandLengthSettings indexCS
CMD_GET_CNF
: Successfully modified the setting.
0x020x510x01 0x000x000x52
0x020x100x01 0x000x120x01
:Successfully read out the key as 0x31 0x32 0x33 0x34 0x35 0x36 =
This 8-Bit field configures security settings of the module. Chapter
information about secure connections.
Designation
RF_SecFlags
When connecting from a Proteus-II to another Proteus-II, be sure that the same
security mode is used.
When connecting from a foreign device to a Proteus-II, the peripheral (ProteusII) determines the minimum security level needed for communication. So configure the
Permissible
values
See
description
RF_SecFlags
Default value
0
of the peripheral to set the desired security level.
Permissions
read/write
Number
5.4
contains further
of
Bytes
1
When updating this user setting (like enabling bonding or changing the security mode) please remove all existing bonding data using the command
Description
Security mode configuration. Depending on its value, different modes are chosen
when setting up a secure connection. In firmware version 2.1.0 and newer the
peripheral decides which is the minimum security level to access its data.
0x0
No security
Data is transmitted without authentication and
encryption.
2 : 0
3
7 : 4
8.8.1. Example 1
Set the security flags to 0x0B, to use the static passkey pairing and with bonding enabled,
using
0x2
0x3
others
SECFLAGS_BONDING_ENABLE
pairing methods. Bonding data of up to 32 devices will be stored in the flash.
Reserved
CMD_SET_REQ
Just works
level 1.2
Static pass
key level 1.3
Table 14: Security configuration flags
with settings index 12
Each time a connection is established, new random
keys are exchanged in advance to use them for data
encryption. This mode uses the "just works" method.
For authentication, the
the peripheral uses this method, the central device
must enter the correct passkey to finalize the
connection.
Reserved
: If this Bit is set, bonding is enabled when using one of the
RF_StaticPasskey
is used. If
Start signalCommandLengthSettings index
0x020x110x02 0x000x0C
Response
8.8.2. Example 2
Request the security flags of the module using
Response
pairing mode is enabled.
CMD_SET_CNF
Start signalCommand | 0x40LengthStatusCS
Start signalCommandLengthSettings indexCS
CMD_GET_CNF
: Successfully modified the setting.
0x020x510x01 0x000x000x52
CMD_GET_REQ
0x020x100x01 0x000x0C0x1F
: Successfully read out the value 2, which means that the just works
This 8-Bit field configures the scan behavior of the module. To use multiple settings, add the
Bit numbers and choose the result as value for
Bit no.
0
15 : 1
Designation
RF_ScanFlags
Description
If this Bit is set, an active scan is performed when using
case, after receiving an advertising packet a scan request is send to the advertising
module that returns a scan response containing additional information. For the
communication of Proteus-II modules, active scanning is only needed when using
Beacons. In this case, it is enabled automatically by the firmware. Please note that
active scanning increases the current consumption.
Reserved
Permissible
values
See
description
Table 15: Scan configuration flags
Default value
0
RF_ScanFlags
.
Permissions
read/write
CMD_SCANSTART_REQ
Number
of
Bytes
1
. In this
8.10.1. Example 1
Set the scan flags to 0x01 to enable active scanning using
dex 13
8.11. RF_BeaconFlags: Interprete the advertising data
Settings
index
14
This 8-Bit field enables/disables the reception of Beacons. To use multiple settings, add the
Bit numbers and choose the result as value for
Bit no.
1 : 0
Designation
RF_BeaconFlags
Description
Enable/disable the reception of Beacons. To avoid too much traffic on the UART, we
recommend to use the filtered version.
0x0Reception of Beacons disabled.
0x1
Permissible
values
See
description
Receive all Beacons from Proteus-II devices in range.
Each received packet is interpreted and output by the
UART. In this case, active scanning is performed
which increases the current consumption. To
decrease the work load of the receiving module, use
a sufficiently high UART baud rate at the receiving
device and slow advertising intervals at the sending
devices.
Default value
0
RF_BeaconFlags
Permissions
read/write
.
Number
of
Bytes
1
2
15 : 3
0x3
othersReserved.
If this Bit is set, a
packet with AMBER SPP-like UUID is received. This feature can be used to realize a
position sensing application, since the
level and the current RSSI value besides the
decrease the work load of the receiving module, please use a sufficiently high UART
baud rate at the receiving device and slow advertising intervals at the sending devices.
Reserved.
The internal database of the module may host the advertising data of 25 different devices. If the data base is full, the oldest entry is removed.
Same as ’0x1’ plus additional filter. This filter discards
redundant packets that contain the same content.