EFR Connect Reference Guide#
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.
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.
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 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
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.
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.
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".
Bluetooth address. Note: On iOS the Bluetooth address is not accessible by the application.
Connect button if the advertisement is of connectable type.
RSSI (Received Signal Strength Indicator).
Known beacon format (iBeacon, Eddystone or Altbeacon). If no beacon format is identified, it will be "Unspecified".
Advertisement type (connectable or non-connectable).
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.
Bonding status. Note: Bonding status is not available on iOS due to system limitations.
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.
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)
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.
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.
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 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.
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.
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.
Connect and Disconnect#
You can connect and disconnect devices directly from the Scanner view.
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.
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.
The main elements of the RSSI Graph view are:
Export control – save scan data to .csv file
Device list – horizontally scrollable
Graph data – scrollable and scalable
Scroll graph to the start time control (visible if not already at start time)
Scroll graph to the actual time control (visible if not already at actual time)
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.
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.
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.
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.
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.
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.
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).
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.
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.
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)
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.
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.
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.
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.
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.
For additional guidance on the OTA process using EFR Connect, see Using EFR Connect Mobile App for OTA DFU.
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.
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.