EFR Connect Reference Guide#

Introduction#

Silicon Labs EFR Connect is a generic mobile app for testing and debugging Bluetooth® Low Energy (BLE) applications. It can help developers to create and troubleshoot BLE applications running on Silicon Labs’ development boards. With EFR Connect, you can quickly troubleshoot your BLE embedded application code, Over-the-Air (OTA) firmware update, data throughput, interoperability, and many other features, with Android and iOS mobiles. You can use the EFR Connect app with all Silicon Labs Bluetooth development kits, System-on-Chips (SoCs), and modules.

This application has five main functional areas:

By default, the app opens in the Scan view. Use the bottom tab bar to move between views.

The EFR Connect mobile application source code for both iOS and Android is available on GitHub under the Apache 2.0 license.

This version of the document refers to the version 2.6.0 for both the iOS and Android app. Because the apps have the same UI for most features, this document utilizes screenshots from the Android app. If a UI feature differs depending on platform, the differences are explained.

Scan View#

The Scan view contains a collection of tools for BLE firmware application developers. It consists of three sub-views: Scanner, RSSI Graph and Active Connections. Together they form a feature-rich set of tools to scan, connect, and interact with BLE devices.

Scanner#

Scanner is the default view. It is a powerful tool to explore the BLE devices around you. Key features include the following:

  • Scan for BLE devices

  • Sort the list by the RSSI

  • Filter devices to narrow down the scan results

  • Label favorite devices to place them on the top of the list

  • Inspect advertising data

  • Connect to a specific device

Scan View

Start and Stop Scanning#

You can control when scanning starts and stops. The application does this automatically in only four situations:

  • Opening Scanner view starts scanning

  • Connecting to a device stops scanning

  • Refreshing the list automatically starts scanning if it was stopped

  • Locking the screen automatically stops scanning

Scanning will continue indefinitely until you tap Stop Scanning at the bottom right or exit Scan View. Start/Stop action does not clear the list of devices. This means that, if scanning resumes with an existing device list, new devices will be added to the end. Exiting Scan view as well as pulling down and releasing the device list causes the list to refresh. As mentioned above, pulling down also automatically starts scanning if it was stopped before.

Device Cards#

Each device discovered by the app is represented by a card containing information about that device. The image below shows the main elements of the device card.

Scanner Device Card

  1. Device name, if it's part of the advertisement, either through AD type Complete Local Name (0x09) or Shortened Local Name (0x08). If the device name is not part of the advertisement packet or the scan response packet, the app displays "N/A".

  2. Bluetooth address. Note: On iOS the Bluetooth address is not accessible by the application.

  3. Connect button if the advertisement is of connectable type.

  4. RSSI (Received Signal Strength Indicator).

  5. Advertising interval.

  6. Known beacon format (iBeacon, Eddystone or Altbeacon). If no beacon format is identified, it will be "Unspecified".

  7. Advertisement type (connectable or non-connectable).

  8. The star indicates whether the device has been marked as favorite (star is blue). This can be easily toggled by tapping the star, which changes between blue and gray.

  9. Bonding status. Note: Bonding status is not available on iOS due to system limitations.

  10. Expand view, to inspect advertising data.

The device card can be expanded to show the advertisement data details. Once expanded, each row shows one of the advertisement data types that are part of the advertisement packet.

Scanner Adv Details

If the advertisement has a known beacon format, the details are also parsed according to that specific beacon format. The image below shows the details from an iBeacon advertisement (Bluetooth - SoC iBeacon sample application running on an EFR32BG22 kit)

Scanner Adv Details iBeacon

EFR Connect also supports extended advertising. However, it must also be supported by the specific mobile device where the app is running. If the phone supports it and devices are sending extended advertising, that will be visible at the top of the advertisement details.

Scanner Extended Adv

Filter#

The filter narrows down search results to a list of devices that fulfill a specific set of parameters. To reach the filter, tap the Filter icon in the top right corner.

Filter

The filter allows searching for devices with the following parameters:

  • Device name, Bluetooth address, or raw advertising data. The Bluetooth address can be entered with or without colon. Note: EFR Connect for iOS only displays the device name because the iOS Bluetooth stack does not provide the Bluetooth address and raw advertising data to the application.

  • RSSI above a given value so that you can limit results by signal strength threshold.

  • Beacon type: iBeacon, Altbeacon, Eddystone or Unspecified (none of the other three).

  • Only favorites

  • Only connectable

  • Only bonded. Note: This option is not available on iOS due to system limitations.

To apply the rules, tap Apply Filters. The filter is applied to the list of devices regardless of whether scanning is on-going or not. The X icon in the upper left corner closes the filter view without applying the new filtering rules. Tapping Reset clears all the filter parameters.

When a filter is active, the current filtering criteria are displayed on the top of the Scanner view.

Filter Criteria

Sort#

The sort functionality does not have a dedicated view. Pressing Sort (located in the top right corner of the Scanner and RSSI Graph views) sorts the list of devices by the RSSI in descending order.

UUID Dictionary#

The UUID dictionary can be accessed via the dictionary icon on the top right corner of the Scanner view. It contains a list of all the 128-bit UUIDs that have been renamed by the user. Inside the UUID dictionary, you can further edit their names as well as delete them.

Scanner UUID Dictionary

Connect and Disconnect#

You can connect and disconnect devices directly from the Scanner view.

Scanner Connections

Once the device is connected, the app jumps directly to the Device View. When the scan list is refreshed, connected devices are removed from the list unless they continue advertising during the connection.

RSSI Graph#

The RSSI Graph shows a graphical representation of RSSI (Received Signal Strength Indicator) over time for all scanned devices. Features like sort and filter are analogous to the ones in Scanner. The RSSI Graph operates on the same data as Scanner, so the filter applied in the Scanner view is reflected on th RSSI Graph.

RSSI Main

The main elements of the RSSI Graph view are:

  1. Export control – save scan data to .csv file

  2. Filter control

  3. Sort control

  4. Device list – horizontally scrollable

  5. Graph data – scrollable and scalable

  6. Scroll graph to the start time control (visible if not already at start time)

  7. Scroll graph to the actual time control (visible if not already at actual time)

  8. Start/Stop scanning control

A data line belonging to a specific device can be highlighted by selecting a device name in the device list section, as shown below.

RSSI Graph Specific Device

Active Connections#

The Active Connections view lists all connected devices. It allows you to go to a specific connection view or disconnect from devices. All devices can be disconnected with the Disconnect all control at the bottom.

Active Connections

Device View#

Once a connection with a device is established or you tap an existing connection in the Active Connections view, the app jumps to the Device view, where GATT databases for both the remote and local side are displayed.

Device view

Remote (Client) vs Local (Server)#

At the bottom of the device view, you can switch between the GATT database of the remote device (where the mobile app acts as a client) or the GATT database of the local device (where the mobile app acts as a server). The UI representation of both GATT databases is the same. The local GATT database can be modified in the GATT Configurator view.

GATT Services#

Each card represents a GATT service and contains the service name and UUID. A custom service (128-bit UUID) that has not been renamed by the user is displayed as Unknown service. Similarly, a custom characteristic that has not been renamed is displayed as Unknown characteristic. There are a few exceptions for that rule, for example some Silicon Labs custom services and their characteristics, which cannot be modified.

GATT Characteristics#

Tapping the down arrow expands the card to show a list of all the characteristics belonging to the service as well as supported properties. This will not automatically read the characteristics, which means that the data fields might be empty. Read has to be done explicitly by the user. If the characteristic has descriptors, they are listed underneath the characteristic UUID.

Device View Characteristics

If other properties are available, they will have additional associated icons. For characteristics without any specific data format, you can copy data to the clipboard with the copy icon on the right side of the characteristic data. Data is copied using the respective format (hex, ascii, or decimal).

Device View Characteristics

If the write property is available, tapping the write icon opens a dialog to write data to the characteristic. Within that dialog you can select the write method (write request or write command), depending on what is supported by the characteristic. If one is not supported, it will be grayed-out. You can also paste data from the clipboard by tapping the Paste icon on the right side. If the data is not correctly formatted, data validation will show a warning.

Device View Characteristics

Activity Log#

The Activity Log button is located in the top right corner of the Device View. The log keeps a record of all the Bluetooth activity. It can be shared via email or other methods for later analysis.

Activity Log

Connection Priority#

The Connection Priority control is located in the top right corner of the Device View. It allows you to choose one of the predefined connection intervals:

  • Low priority (100-125 ms)

  • Balanced priority (30-100 ms)

  • High priority (7,5-15 ms)

Notes:

  • The ranges are defined by the Android stack and are not a limitation imposed by EFR Connect mobile app.

  • This option is not available on iOS due to system limitations.

Connection Priority

Request MTU#

The Request MTU control is located in the top right corner of the Device View. It allows you to request new MTU size in range 23 to 250 bytes.

Note: This option is not available on iOS due to system limitations.

Request MTU

OTA Firmware Update#

OTA firmware update is a process of updating a device firmware image over a wireless connection (BLE in this case). There is a dedicated OTA firmware control located below the top right corner icons. Tapping that control opens the OTA dialog. If the Silicon Labs OTA service was not found in the GATT database a warning is displayed.

OTA Prompt

  • OTA type

    • Partial: Only the application is updated.

    • Full: Both application and apploader are updated. This requires uploading two separate GBL files, one for the application and one for the apploader.

  • OTA mode

    • Reliability: Uses a write operation to send the GBL file data.

    • Speed: Uses write without response operation to send the GBL data.

  • Application/Apploader: The GBL file(s) to flash the device.

During the OTA process, the information about progress is displayed.

OTA In Progress

For additional guidance on the OTA process using EFR Connect, see Using EFR Connect Mobile App for OTA DFU.

Configure View#

Advertiser#

The advertiser allows you to use the mobile phone as a BLE peripheral by creating and customizing advertisement sets, both in terms of their configurations as well as a payload. Advertiser additionally supports:

  • Legacy and extended advertising

  • Configurable advertisement interval, TX Power, primary/secondary PHYs

  • Manual advertisement start/stop and stop based on a time/event limit

  • Multiple AD types

This functionality comes in handy when you have a single Silicon Labs kit for a Bluetooth product, but you still want to test/evaluate/develop applications that leverage the Silicon Labs Bluetooth stack functionalities as a central device.

Create a New Advertisement Set#

When entering the Advertiser for the first time, the app shows an empty list of advertisement sets because none have been created yet.

Advertiser Main

Tapping the Change device name icon in the top right corner brings up a dialog to change the device name. It is a global setting and cannot be set individually for each advertisement set.