Overview#
The EdgeFast Open Bluetooth Host stack software is built based on MCUXpresso SDK. The following chapter uses RT1060 as an example, other boards have similar folder structure and corresponding document.
Folder structure#
The following figure shows the EdgeFast Open examples folder structure.

The following figure shows the EdgeFast Open host stack folder structure.

The following table provides information regarding the structure and description.
Folder |
Description |
|---|---|
boards/ CMSIS/ devices/ docs/ middleware/ rtos/ tools/ |
MCUXpresso SDK directory. Refer to Chapter 5 Release contents of MCUXpresso SDK Release Notes at root/docs/ MCUXpresso SDK Release Notes for EVK-MIMXRT1060.pdf to know the details |
boards/<board>/wireless/edgefast_open_examples |
EdgeFast Open Bluetooth host stack example projects |
middleware/wireless/edgefast_open |
EdgeFast Open Bluetooth host stack source code |
The EdgeFast Open folder includes two subfolders:
include: This subfolder includes EdgeFast Open Bluetooth host stack headers.
source: This subfolder includes EdgeFast Open Bluetooth host stack source code ported from Zephyr Bluetooth Host stack.
Parent topic:Overview
Architecture#
The figure Architecture of EdgeFast Open demo in MCUXpresso SDK below shows that the EdgeFast Open Bluetooth host stack is integrated into the MCUXpresso SDK as a middleware component. It leverages the RTOS, the board support, the peripheral driver/component, and other components in the MCUXpresso SDK. The Bluetooth application is built on top of the EdgeFast Open Bluetooth host stack and supports different peripheral features, Bluetooth features, and different RTOSes required by the user.

MCUXpresso SDK has the dual-chip architecture defined by EdgeFast Open Bluetooth project, the Bluetooth application code, and the EdgeFast Open Bluetooth host stack running on the reference board. For example, MIMXRT1060-EVK and the Linker Layer (LL) run on the Bluetooth modules like AW-AM457-USD, Murata Type 1XK, and Murata Type 1ZM and has single-chip architecture. Bluetooth Host stack and LL runs on the same chip, and communicate with Internal Communication Unit (IMU).
The communication between the host stack and the LL is implemented via the standard HCI UART interface and PCM interface for voice, or the IMU interface.
EdgeFast Open is an open-source Bluetooth Host protocol stack solution provided by NXP as part of the MCUXpresso SDK. It is derived from the Bluetooth Host Stack of Zephyr RTOS and has been ported, tailored, and enhanced by NXP. The stack runs on the MCU host processor, positioned below the application layer and above the HCI driver, and is responsible for the complete Bluetooth Classic and BLE host-side protocol functionality, including GAP, GATT, L2CAP, ATT, SM, RFCOMM, HFP, A2DP, AVRCP, etc.

Its architecture consists of two main parts:
The EdgeFast Open Host Stack itself, which contains the Bluetooth host protocol implementation ported from Zephyr, and a Porting Layer (abstraction layer) that maps Zephyr’s required kernel and system services—such as threads, mutexes, semaphores, queues, FIFOs, work queues, heaps, settings, shell, and logging—to the MCUXpresso SDK environment based on FreeRTOS and NXP platforms. Through this porting layer, the originally Zephyr-oriented Bluetooth stack can run seamlessly on FreeRTOS. EdgeFast Open communicates with the underlying Bluetooth Controller (Link Layer), typically an external BT/BLE module or wireless SoC, via a standard HCI interface (for example, UART, SPI, or PCM).
Note: The porting layer source code is located in the middleware/wireless/edgefast_open/source/porting directory,
which includes implementations for thread management, work queues, synchronization primitives, and other kernel services
required to adapt the Zephyr Bluetooth stack to FreeRTOS and MCUXpresso SDK platforms.
Note: The “ported” aspects of EdgeFast Open ensure compatibility with MCUXpresso SDK while maintaining the robustness and feature completeness of the original Zephyr Bluetooth Host Stack implementation. Therefore, the source code of Edgefast Open is consistent with the source code of the Zephyr Bluetooth protocol stack. This eliminates the need for any source code modifications to the core of the Zephyr Bluetooth protocol stack, thus facilitating maintenance and future updates.
For details about the different components in MCUXpresso SDK, see Getting Started with MCUXpresso SDK User’s Guide (document MCUXSDKGSUG) at root/docs/Getting Started with MCUXpresso SDK.pdf. For details on possible hardware rework requirements, see the hardware rework guide document of the relative board. Parent topic:Overview
Compare with EdgeFast Bluetooth PAL#
This document provides a detailed comparison between EdgeFast Open Bluetooth Host stack and EdgeFast Bluetooth PAL, highlighting the differences in features, examples, and APIs.
Features comparison#
The following table compares the features between EdgeFast Open Bluetooth Host stack and EdgeFast Bluetooth PAL.
Feature |
EdgeFast Open |
EdgeFast Bluetooth PAL |
|---|---|---|
Bluetooth Core Specification |
5.3 |
5.0 |
Bluetooth Host Stack |
Zephyr-based |
Proprietary with Zephyr API compatible |
Bluetooth Controller |
Supported (NXP controller) |
Supported (NXP controller) |
Mode |
LE and Classic |
LE and Classic |
Protocol Support |
L2CAP, GAP, GATT, RFCOMM, SDP, SM, SPP |
L2CAP, GAP, GATT, RFCOMM, SM, SPP |
Classic Profiles |
A2DP, HFP, AVRCP, AVRCP Cover Art, GOEP, BIP, MAP, PBAP |
A2DP, HFP, AVRCP, MAP, PBAP |
LE Profiles |
HTP, PXP, IPSP, HPS, GATT-based services |
HTP, PXP, IPSP, HPS |
Enhanced Attribute (EATT) |
Supported |
Supported |
LE Audio |
Supported |
Supported |
Examples comparison#
The following table compares the available examples between EdgeFast Open Bluetooth Host stack and EdgeFast Bluetooth PAL.
Example |
EdgeFast Open |
EdgeFast Bluetooth PAL |
|---|---|---|
a2dp_bridge |
Supported |
Not supported |
a2dp_sink |
Supported |
Supported |
a2dp_source |
Supported |
Supported |
bmr_4bis |
Supported |
Supported |
bms_4bis |
Supported |
Supported |
broadcast_media_receiver |
Supported |
Supported |
broadcast_media_sender |
Supported |
Supported |
call_gateway |
Supported |
Supported |
call_terminal |
Supported |
Supported |
central_fmp |
Supported |
Supported |
central_hpc |
Supported |
Supported |
central_ht |
Supported |
Supported |
central_ipsp |
Supported |
Supported |
central_pxm |
Supported |
Supported |
central_tip |
Supported |
Supported |
handsfree |
Supported |
Supported |
handsfree_ag |
Supported |
Supported |
map_mce |
Supported |
Supported |
map_mse |
Supported |
Supported |
pbap_pce |
Supported |
Supported |
pbap_pse |
Supported |
Supported |
peripheral_beacon |
Supported |
Supported |
peripheral_fmp |
Supported |
Supported |
peripheral_hps |
Supported |
Supported |
peripheral_ht |
Supported |
Supported |
peripheral_ipsp |
Supported |
Supported |
peripheral_pxr |
Supported |
Supported |
peripheral_tip |
Supported |
Supported |
sco_bridge |
Supported |
Not supported |
shell |
Supported |
Supported |
spp |
Supported |
Supported |
tmap_central |
Supported |
Supported |
tmap_peripheral |
Supported |
Supported |
umr2bms |
Supported |
Supported |
umr_4cis |
Supported |
Supported |
ums_4cis |
Supported |
Supported |
ums_microphone |
Supported |
Supported |
unicast_media_receiver |
Supported |
Supported |
unicast_media_sender |
Supported |
Supported |
wifi_cli_over_ble_wu |
Supported |
Supported |
wireless_uart |
Supported |
Supported |
APIs comparison#
Workflow#
The following workflow compares the key different of API between EdgeFast Open Bluetooth Host stack and EdgeFast Bluetooth PAL.
The following diagram is a typical Egdefast Open workflow:

The following diagram is a typical EdgeFast Bluetooth PAL workflow:

API Differences#
Core Protocols#
Core Protocols Comparison#
There are no differences in the following protocols, including GAP, SM, SPP, and L2CAP (CBFC).
L2CAP Classic Comparison#
The following table compares the L2CAP Classic differences between EdgeFast Open Bluetooth Host stack and EdgeFast Bluetooth PAL.
Feature |
EdgeFast Open |
EdgeFast Bluetooth PAL |
|---|---|---|
Connection-oriented channels in Basic Mode |
Supported |
Supported |
Connection-oriented channels in Retransmission Mode |
Supported |
Not supported |
Connection-oriented channels in Flow control Mode |
Supported |
Not supported |
Connection-oriented channels in Enhanced Retransmission Mode |
Supported |
Supported |
Connection-oriented channels in Streaming Mode |
Supported |
Supported |
Connectionless data channel in Basic L2CAP mode |
Supported |
Not supported |
Signaling packet ECHO |
Supported |
Not supported |
The following compares the L2CAP Classic differences between EdgeFast Open Bluetooth Host stack and EdgeFast Bluetooth PAL.
Aspect |
EdgeFast Open |
EdgeFast Bluetooth PAL |
|---|---|---|
L2CAP architecture |
Zephyr native L2CAP |
PAL adds explicit L2CAP config negotiation |
Channel config |
Static fields in chan.rx.* |
Callback‑based config exchange |
Mode negotiation |
Implicit |
Explicit (get_cfg / cfg_req / cfg_rsp) |
Who drives config |
Local side before connect |
Both sides during config phase |
L2CAP Classic on EdgeFast Open#
static int l2cap_recv(struct bt_l2cap_chan *chan, struct net_buf *buf)
{
}
static void l2cap_connected(struct bt_l2cap_chan *chan)
{
}
static void l2cap_disconnected(struct bt_l2cap_chan *chan)
{
}
static struct net_buf *l2cap_alloc_buf(struct bt_l2cap_chan *chan)
{
}
#if defined(CONFIG_BT_L2CAP_SEG_RECV)
static void seg_recv(struct bt_l2cap_chan *chan, size_t sdu_len, off_t seg_offset,
struct net_buf_simple *seg)
{
}
#endif /* CONFIG_BT_L2CAP_SEG_RECV */
static const struct bt_l2cap_chan_ops l2cap_ops = {
.alloc_buf = l2cap_alloc_buf,
.recv = l2cap_recv,
.connected = l2cap_connected,
.disconnected = l2cap_disconnected,
#if defined(CONFIG_BT_L2CAP_SEG_RECV)
.seg_recv = seg_recv,
#endif /* CONFIG_BT_L2CAP_SEG_RECV */
};
static struct bt_l2cap_br_chan chan = {
.chan.ops = &l2cap_ops,
.rx.mtu = DATA_BREDR_MTU,
},
chan.rx.mode = <Mode>;
chan.rx.max_transmit = <max_transmit>;
chan.rx.optional = <Mode optional settings>;
chan.rx.extended_control = <extended_control>;
chan.rx.max_window = <max_window>;
int err = bt_l2cap_chan_connect(default_conn, &chan.chan, psm);
if (err < 0) {
PRINTF("Unable to connect to psm %u (err %d)\n", psm, err);
} else {
PRINTF("L2CAP connection pending\n");
}
L2CAP Classic on EdgeFast Bluetooth PAL#
void l2cap_mode_get_cfg(struct bt_l2cap_chan *chan, struct bt_l2cap_cfg_options *cfg)
{
/* Channel configuration handler */
/* `cfg` argument needs to be filled with the configuration options */
}
void l2cap_mode_cfg_req(struct bt_l2cap_chan *chan, struct bt_l2cap_cfg_options *cfg, struct bt_l2cap_cfg_options *rsp)
{
/* Channel configuration response handler */
/* `rsp` argument needs to be filled with the response configuration options */
}
void l2cap_mode_cfg_rsp(struct bt_l2cap_chan *chan, struct bt_l2cap_cfg_options *rsp)
{
/* Channel configuration response handler */
}
static const struct bt_l2cap_chan_ops l2cap_mode_ops = {
.alloc_buf = l2cap_alloc_buf,
.recv = l2cap_recv,
.connected = l2cap_connected,
.disconnected = l2cap_disconnected,
.get_cfg = l2cap_mode_get_cfg,
.cfg_req = l2cap_mode_cfg_req,
.cfg_rsp = l2cap_mode_cfg_rsp
};
static struct bt_l2cap_br_chan chan = {
.chan.ops = &l2cap_mode_ops,
.rx.mtu = DATA_BREDR_MTU,
},
int err = bt_l2cap_chan_connect(default_conn, &chan.chan, psm);
if (err < 0) {
PRINTF("Unable to connect to psm %u (err %d)\n", psm, err);
} else {
PRINTF("L2CAP connection pending\n");
}
Parent topic:Core Protocols Comparison
SDP#
The following compares the SDP differences between EdgeFast Open Bluetooth Host stack and EdgeFast Bluetooth PAL.
Feature |
EdgeFast Open |
EdgeFast Bluetooth PAL |
|---|---|---|
SDP record discovery |
Support Attribute ID list and range settings |
Not supported |
SDP record parse |
bt_sdp_record_parse |
Not supported |
Check attribute |
bt_sdp_has_attr |
Not supported |
Parse attribute value |
bt_sdp_get_attr bt_sdp_attr_value_parse bt_sdp_attr_has_uuid bt_sdp_attr_read |
Not supported |
Parse Additional Protocol Descriptor List attribute |
bt_sdp_attr_addl_proto_parse bt_sdp_attr_addl_proto_count bt_sdp_attr_addl_proto_read |
Not supported |
Parent topic:Core Protocols Comparison
Parent topic:Compare with EdgeFast Bluetooth PAL
LE Profiles#
No differences between EdgeFast Open Bluetooth Host stack and EdgeFast Bluetooth PAL for LE profiles.
LE Audio Profiles#
No differences between EdgeFast Open Bluetooth Host stack and EdgeFast Bluetooth PAL for LE Audio profiles.
Classic Profiles#
The following compares the available Classic profiles between EdgeFast Open Bluetooth Host stack and EdgeFast Bluetooth PAL.
A2DP#
AVRCP#
HFP#
MAP#
PBAP#
PBAP Comparison#
The following compares the PBAP differences between EdgeFast Open Bluetooth Host stack and EdgeFast Bluetooth PAL.
1. Architectural Differences (Core Changes)#
Dimension |
EdgeFast Open |
EdgeFast Bluetooth PAL |
Migration impact |
|---|---|---|---|
API abstraction |
PDU-/protocol-driven: most APIs take only |
Parameter-driven: function parameters directly carry |
Old: “pass parameters”; New: “build PDUs + add headers + parse buffers”. |
Header construction |
Application builds 100% of headers (Name/Type/AppParams/SRMP/Body/EndBody/auth, etc.) |
OBEX/PBAP headers are built internally based on API parameters; application mainly reserves headroom |
Main migration task: map old API parameters into a sequence of |
Connection responsibility |
Clearly split: transport bearer (RFCOMM/L2CAP) + OBEX CONNECT/DISCONNECT/ABORT PDU handling |
Connect APIs often bundle object creation, authentication, feature info, and transport setup |
Connection procedure becomes longer (one or two extra steps). |
Segmentation/chunking |
Final-bit / End-of-Body and segmentation are decided by the application’s PDU construction; PBAP APIs only transmit |
Driven by |
Requires redesign of “first packet / subsequent packet / last packet” strategy. |
SRMP (“wait”) |
Not a parameter anymore; application adds SRMP header |
|
|
Name/path |
Not a function parameter; carried in the OBEX Name header inside |
|
|
Authentication |
New provides nonce/digest/verify helpers; auth headers are added by the application |
Old callback includes |
Auth shifts from “configuration/struct callback” to “parse challenge + compute + add headers”. |
2. PCE (Client) API Alignment Differences (Function Level)#
Function |
EdgeFast Open API ( |
EdgeFast Bluetooth PAL API ( |
Key differences (incl. migration notes) |
|---|---|---|---|
Callback registration / init |
(No equivalent global |
|
Old: global callback registration; New: more instance-oriented, |
RFCOMM connect (SCN/channel) |
|
|
Old creates/returns the PCE object and takes |
L2CAP connect (PSM) |
|
|
Same pattern as RFCOMM connect. |
Disconnect (high-level) |
|
|
New requires application-provided |
Disconnect (transport bearer) |
|
(No dedicated API) |
New separates bearer teardown from OBEX DISCONNECT PDU. |
OBEX CONNECT (PBAP session) |
|
(Typically implicit in old connect flow) |
Application must construct the OBEX CONNECT PDU and headers via |
ABORT |
|
|
Application constructs ABORT PDU headers. |
Pull Phonebook |
|
|
|
SetPath |
|
|
Old passes |
Pull vCard Listing |
|
|
Same as Pull Phonebook: parameters → headers. |
Pull vCard Entry |
|
|
Same as above. |
Get max packet length |
(No same-name API found) |
|
Old provides direct query; New may obtain it via OBEX CONNECT negotiation (e.g., MOPl) or OBEX layer APIs. |
Helper: parse App Params |
(No same-name macro in |
|
New encourages direct OBEX/AppParams header manipulation/parsing by the application. |
Helper: get Body |
(No same-name macro in |
|
New callbacks deliver |
3. PSE (Server) API Alignment Differences (Function Level)#
Function |
EdgeFast Open API ( |
EdgeFast Bluetooth PAL API ( |
Key differences (incl. migration notes) |
|---|---|---|---|
Callback registration / init |
|
|
New requires a PSE instance, i.e., a more instance-based server model. |
Server bearer registration |
|
(Not provided in old header) |
New adds explicit RFCOMM/L2CAP server registration and accept model. |
Disconnect |
|
|
New is response/PDU oriented; application builds the response PDU and headers. |
CONNECT/ABORT response |
|
(More abstracted in old version) |
New requires explicit response PDU construction and transmission. |
Pull phonebook response |
|
|
|
SetPath response |
|
|
New requires a response |
Pull vCard listing response |
|
|
|
Pull vCard entry response |
|
|
Same as above. |
Get max packet length |
(No same-name API found) |
|
New may rely on OBEX/GOEP layer APIs. |
Get peer supported features |
(No same-name API found) |
|
New may expose this via negotiation/callback/buffer parsing or internal state. |
5. Callback Model Differences: From “High-level Events” to “Protocol Events + Buffer-driven”#
5.1 PCE callbacks#
Aspect |
EdgeFast Open |
EdgeFast Bluetooth PAL |
Migration impact |
|---|---|---|---|
Bearer connected |
|
|
New distinguishes bearer type and provides |
Bearer disconnected |
|
|
The disconnect reason/result is more reflected in protocol |
OBEX CONNECT result |
|
(Not typically exposed explicitly) |
New exposes negotiated parameters and delivers the raw buffer. |
pull/set/abort callbacks |
uniformly |
result + buf (some callbacks without buf) |
Application must parse OBEX headers/body from |
Auth info retrieval |
(Not present) |
|
New expects application-driven OBEX auth header handling (parse challenge, compute, add response). |
5.2 PSE callbacks#
Aspect |
EdgeFast Open |
EdgeFast Bluetooth PAL |
Migration impact |
|---|---|---|---|
Pull request callback params |
|
|
New requires parsing Name/Type/AppParams/SRMP/segmentation from |
SetPath request |
|
|
Flags are standardized; folder name is parsed from Name header in |
connect/disconnect/abort |
New provides buffer-level callbacks and explicit response APIs |
More abstracted |
New behaves like an OBEX server role: app participates in handshake and PDU construction. |
6. Migration Mapping: “Old parameters” → “New headers (obex_add_header_xxx)”#
Old parameter/concept |
EdgeFast Open |
EdgeFast Bluetooth PAL |
Application action (conceptual) |
|---|---|---|---|
|
Not a function parameter anymore |
API parameter |
Add/parse OBEX Name header in request/response PDUs. |
|
|
Often internal in old stack |
Add OBEX Type header ( |
App Parameters (filter/format/order/search, etc.) |
enums in |
via |
Encode/decode PBAP AppParams TLVs inside the OBEX App Parameters header. |
|
Not present as parameter |
|
Add/parse SRMP header to control Server Response Mode Parameter. |
|
Not present as parameter |
|
Express segmentation via PDU construction (Final-bit, Body vs End-of-Body, multi-PDU flow). |
|
unified |
|
Choose OBEX response code based on whether more PDUs follow; build Body/End-of-Body accordingly. |
|
nonce/digest/verify helpers |
connect parameter or |
Build OBEX auth headers in PDUs; compute/verify using provided helpers. |
|
not in prototypes |
connect parameter or explicit getter |
Likely obtained via negotiation/SDP/buffer parsing/internal state; avoid injecting via connect signature. |
7. Newly Added / Enhanced APIs & Capabilities in EdgeFast Open#
Item |
EdgeFast Open API/structure |
Value |
|---|---|---|
PDU allocation helper |
|
Provides a PDU container to be populated by the application via |
PSE bearer server registration |
|
More complete server integration model (multi-connection / custom accept). |
OBEX-level response APIs (PSE) |
|
Application can explicitly control OBEX response codes and attached headers. |
Authentication utilities |
|
Facilitates application-implemented OBEX/PBAP authentication headers and validation. |
8. Migration Recommendations (High-level)#
Refactor connection sequencing (PCE):
Establish bearer first:
bt_pbap_pce_rfcomm_connectorbt_pbap_pce_l2cap_connectThen build the OBEX CONNECT PDU (application uses
obex_add_header_xxx()) and callbt_pbap_pce_connect
Change request transmission to “build PDU first, then call PBAP API”:
bt_pbap_pce_create_pdu()→obex_add_header_xxx()(Name/Type/AppParams/SRMP/Body…) →bt_pbap_pce_pull_*()
Change response sending (PSE) to “application fully owns headers/body/end-of-body”:
Request callbacks deliver only
buf; parse Name/Type/AppParamsBuild response
buf: add Body/End-of-Body and required headers viaobex_add_header_xxx()→ callbt_pbap_pse_*_rsp()
Segmentation/CONTINUE strategy migration:
Old:
flag + wait + resultNew: application decides whether to include End-of-Body, whether more PDUs follow, and selects
rsp_code(CONTINUE/SUCCESS)
Authentication migration:
Old:
get_auth_info+struct bt_pbap_authNew: application parses OBEX auth challenge headers, computes digests via
bt_pbap_calculate_*, and adds auth response/challenge headers viaobex_add_header_xxx()
Parent topic:Compare with EdgeFast Bluetooth PAL
Parent topic:Overview
Features#
This section provides an overview of Bluetooth features, toolchain support, and RTOS support.
Bluetooth features#
Bluetooth 5.3 compliant
Protocol support
L2CAP, GAP, GATT, RFCOMM, SDP, SM, and SPP
Classic profile
A2DP, HFP, AVRCP, AVRCP Cover Art, GOEP, BIP, MAP, PBAP
LE profile
HTP, PXP, IPSP, HPS
LE audio
Digital Audio Interface including PCM interface for HFP
Parent topic:Features
Toolchain support#
IAR Embedded Workbench for ARM®
MCUXpresso IDE
Keil® MDK/μVision
Makefiles support with GCC from Arm Embedded
Note: For details on IDE Development tools version details, see Section 3, Development tools in MCUXpresso SDK Release Notes (document MCUXSDKMIMXRT106XRN). The Release Notes document is available at root/docs/ MCUXpresso SDK Release Notes for EVK-MIMXRT1060.pdf.
Parent topic:Features
RTOS support#
FreeRTOSTMOS
Note: The FreeRTOS static allocation feature is required by Edgefast Open. The macro configSUPPORT_STATIC_ALLOCATION needs to be set to enable this feature.
Parent topic:Features
Parent topic:Overview
Examples list#
The following examples are provided. Not all the examples are implemented on all the boards. See the board package for a list of the implemented examples.
central_hpc (central http proxy service client): Demonstrates a basic Bluetooth Low Energy Central role functionality. The application scans for other Bluetooth Low Energy devices and establishes a connection to the peripheral with the strongest signal. The application specifically looks for HPS Server and programs a set of characteristics that configures a Hyper Text Transfer Protocol (HTTP) request, initiates request, and reads the response once connected.
central_ht (central health thermometer): Demonstrates a basic Bluetooth Low Energy Central role functionality. The application scans for other Bluetooth Low Energy devices and establishes a connection to the peripheral with the strongest signal. The application specifically looks for health thermometer sensor and reports the die temperature readings once connected.
central_ipsp (central Internet protocol support profile): Demonstrates a basic Bluetooth Low Energy Central role functionality. The application scans for other Bluetooth Low Energy devices and establishes connection to the peripheral with the strongest signal. The application specifically looks for IPSP Service and communicates between the devices that support IPSP. Once connected, the communication is done using IPv6 packets over the Bluetooth Low Energy transport.
central_pxm (central proximity monitor): Demonstrates a basic Bluetooth Low Energy Central role functionality. The application scans for other Bluetooth Low Energy devices and establishes a connection to the peripheral with the strongest signal. The application specifically looks for Proximity Reporter.
peripheral beacon: Demonstrates the Bluetooth Low Energy Peripheral role, This application implements types of beacon applications.
beacon: Demonstrates the Bluetooth Low Energy Broadcaster role functionality by advertising Company Identifier, Beacon Identifier, UUID, A, B, C, RSSI.
Eddystone: The Eddystone Configuration Service runs as a GATT service on the beacon while it is connectable and allows configuration of the advertised data, the broadcast power levels, and the advertising intervals.
iBeacon: Demonstrates the Bluetooth Low Energy Broadcaster role functionality by advertising an Apple iBeacon.
peripheral_hps (peripheral http proxy service): Demonstrates the Bluetooth Low Energy Peripheral role. The application specifically exposes the HTTP Proxy GATT Service.
peripheral_ht (peripheral health thermometer): Demonstrates the Bluetooth Low Energy Peripheral role. The application specifically exposes the HT (Health Thermometer) GATT Service. Once a device connects, it generates dummy temperature values.
peripheral_ipsp (peripheral Internet protocol support profile): Demonstrates the Bluetooth Low Energy Peripheral role. The application specifically exposes the Internet Protocol Support GATT Service.
peripheral_pxr (peripheral proximity reporter): Demonstrates the Bluetooth Low Energy Peripheral role. The application specifically exposes the Proximity Reporter (including LLS, IAS, and TPS) GATT Service.
wireless uart: The application automatically starts advertising the wireless uart service and connects to the wireless uart service after the role switch. The wireless UART service is a custom service that implements a custom writable ASCII Char characteristic (UUID: 01ff0101-ba5e-f4ee-5ca1-eb1e5e4b1ce0) that holds the character written by the peer device.
spp (serial prot profile): Application demonstrates the use of the SPP feature.
handsfree: Application demonstrating usage of the Hands-free Profile (HFP) feature.
handsfree_ag: Application demonstrating usage of the Hands-free Profile Audio Gateway (HFP-AG) feature.
a2dp_sink: Application demonstrating how to use the a2dp sink feature.
a2dp_source: Application demonstrating how to use the a2dp source feature.
shell: Shell application demonstrating the shell mode of the simplified Adapter APIs.
Parent topic:Overview