Frequently Asked Questions


I see a message that says BOND_FAIL and/or an error code from the BGX serial connection

I see a message about insufficient encryption from my iOS device

I am having trouble in general connecting to the Bluetooth Xpress

Most connection problems are due to a mismatch in encryption settings between devices, or when one device has stored bonding information and the other device does not. This may happen if one device is told to "forget" the other device. See the section about Solving Connection Problems for more information.

If you see a specific error code, then this error codes table may be helpful.

I am not able to connect my Galaxy S5 even after resetting bonding

Older phones typically do not provide support for LE Secure Connections. The BGX must be configured to allow LE Legacy Pairing to connect with these phones. Set variable bl e p to any to allow LE Legacy pairing.

How many devices can be bonded to the Bluetooth Xpress device

The Bluetooth Xpress device can remember up to 14 devices. It will forget older, less-used devices as new devices are added. Refer to Bluetooth Xpress and Bonding for more information.

Can I connect to Bluetooth Xpress from a Raspberry Pi?

It is possible to establish a Bluetooth connection from a Raspberry Pi to a Bluetooth Xpress device. The Raspberry Pi will act as a Central and the BGX acts as a peripheral. At this time we do not have a library or example for the Raspberry Pi. However, see Xpress Streaming Service for details about the BLE service. Also refer to the Mobile Library documentation for more information about how the mobile libraries work and for links to the library source code repository on Github. The mobile library source code can provide a reference for a Raspberry Pi implementation.

When I scan I do not see all the Bluetooth devices around me

Can I scan for beacons?

When the Bluetooth Xpress device performs a scan, it only detects other Bluetooth Xpress devices that are advertising. It does not detect arbitrary devices and is not meant to be used as a sniffer.

When building the iOS BGXCommander I see a linker error about MMDrawer

If you are building BGXCommander for iOS, you may see a linker error such as

ld: library not found for -lMMDrawerController

The error may instead mention "PullToRefresh".

We use CocoaPods to manage dependencies, and you need CocoaPods installed in order to successfully build BGXCommander. Refer to this CocoaPods Getting Started page. The short version is:

gem install cocoapods

Is LE Data Packet Length Extension supported? What is the packet length?

Bluetooth Xpress supports Data Packet Extension. The maximum packet length is 251 bytes. Refer to this page

How do I use the BOOT pin? Can I update via serial port?

The BOOT pin is an active low signal that is used to place the Bluetooth Xpress device into a mode for updating via the serial port. See the page about Updating Firmware for more information.

When I plug my BGX13P Evaluation board into my computer while using Simplicity Studio, I see a CP2102N board instead of a BGX13P board?

A small batch of BGX13P evaluation boards were misprogrammed in the factory and do not correctly identify as BGX13P boards. It is possible for you to fix this yourself by following these instructions.

How do I find the Boot Loader version number (build number)?

You can find the boot loader build number by using the ver command.

How can I secure my Bluetooth Xpress-based product

There are several settings that affect device security. See Deployment Security Considerations.

How do I send the breakout sequence to transition from STREAM mode to COMMAND mode?

When using a terminal program, it is not possible to manually type in a breakout sequence. This is due to timing constraints in breakout sequence validation by the Bluetooth Xpress module. To read more about timing requirements for breakout sequence validation, see Bus stream breakout sequence. When using other terminal programs, we recommend configuring a macro to send the breakout sequence.

When using Simplicity Studio's Xpress configurator terminal window, a macro can be used to send the breakout sequence so that timing constraints are not violated. To send this macro, type -breakout followed by the breakout sequence into the terminal window. For instance, if the breakout sequence value is the default '$$$', the user should type '-breakout $$$'.

Is there a way for my BGX to connect automatically?

Beginning with version 1.2.2045.0, new features were added which allow two BGX devices to connect to each other automatically. See the Xpress Connect Demo for an example of how to set up two BGX devices to connect to each other based on button or GPIO input. It is also possible to configure a BGX to connect on boot, using the uevt command with a boot event.

I've updated my BGX firmware and now I cannot send or receive data on the Xpress Streaming Service. What should I do?

Version 1.2.2045.0 modified the GATT attribute table of the BGX13 in order to increase the throughput of its acknowledged write mode (i.e., ce w m = ack). Many mobile devices cache the GATT attribute table of bonded devices to make the connection process faster and less power-intensive. If a mobile device is using cached GATT information to communicate with a BGX13 whose GATT attribute table has been modified by a firmware update, it is possible that the BLE communication will not work correctly. Users can recover from this scenario by deleting the bonded BGX13 from their mobile device, then re-pairing and re-bonding to the BGX13.

On some mobile devices, this is known as "forgetting" a Bluetooth device. It may also be necessary to turn off Bluetooth and then turn it on again. This clears some data that is left in memory. Refer to Problems After Upgrade for more information.

Note: this procedure should not be needed for every firmware update, only the 1.2.2045.0 because of the change to the GATT table in this version.

How do I know which hardware revision I have

In late 2019, the production hardware revision changed from V2 to V3. For more information about this, see the Release Notes. It is not possible to tell the hardware version from external markings. You can tell the hardware revision by examining the device UUID, which is available by examining the value of the sy u variable.