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,