Throughput

Background

There are several factors that affect the observed throughput of Xpress Streaming Service data:

Note: The BGX automatically retransmits all corrupted packets without any intervention from the host MCU.

Results

Note: For a given set of test conditions, the throughput results in each direction (Central-to-Peripheral or Peripheral-to-Central) are the same unless the direction is specified as a column in the throughput table.

Version Notes

Beginning with version 1.2.2045.0, all throughput testing is performed using Fast-Ack Flow Control.

BGX-to-BGX

Both the Central and Peripheral are BGX13 devices.

Table 1.1. BGX-to-BGX: BLE Connection Interval = 30 ms (bl c i = 24)

PhyThroughput
2 Mbps935 kbit/s
1 Mbps550 kbit/s
Coded (S=2)191 kbit/s
Coded (S=8)27 kbit/s

Android-to-BGX

The Central is an Android mobile device and the Peripheral is a BGX13.

Table 2.1. Android-to-BGX: BLE Connection Interval = 15 ms (bl c i = 12)

PhyDirectionThroughput
2 MbpsBGX-to-Android1175 kbit/s
2 MbpsAndroid-to-BGX610 kbit/s
1 MbpsBGX-to-Android391 kbit/s
1 MbpsAndroid-to-BGX215 kbit/s

iOS-to-BGX

The Central is an iOS mobile device and the Peripheral is a BGX13.

Table 3.1. iOS-to-BGX: BLE Connection Interval = 15 ms (bl c i = 12)

PhyDirectionThroughput
2 MbpsBGX-to-iOS488 kbit/s
2 MbpsiOS-to-BGX385 kbit/s

Version Information

BGX

See the Release Notes page for firmware version information.

Android

Android testing was performed with the following devices:

iOS

iOS testing was performed with the following devices:

Methodology

BGX-to-BGX

BGX-to-BGX throughput test is performed as follows:

  1. The Test PC is connected to the serial ports of two BGX devices.
  2. The two BGX devices establish a BLE connection to each other.
  3. The Test PC transmits 64 kBytes of data to the transmitting BGX via the serial port.
  4. The Test PC receives the 64 kBytes of data back from the receiving BGX via the serial port.
  5. The Test PC validates that the received data matches the transmitted data and uses the time elapsed between steps 3 and 4 to calculate the throughput.
  6. Because throughput numbers can vary significantly with RF interference, steps 3 - 5 are performed multiple times for each test case.

The BGX devices are configured with:

The following settings are configured on a test-by-test basis in order to generate a matrix of throughput values:

Android-to-BGX

Android-to-BGX throughput test is performed as follows:

  1. The Test PC device is connected to the serial port of the BGX device.
  2. The Android device (acting as Central) establishes a BLE connection to the BGX (acting as Peripheral).
  3. The Test PC transmits 250 kBytes of data to the BGX via the serial port.
  4. The Android device receives the 250 kBytes of data from the BGX via BLE.
  5. The Test PC measures the elapsed time between transmission of the first and last bytes of data to the BGX via the serial port. The Android device measures the amount of elapsed time between reception of the first and last bytes of data via BLE. These times are used to generate throughput values, and the lower of the two throughput values is recorded.
  6. The Android device transmits 250 kBytes of data to the BGX via BLE.
  7. The Test PC receives the 250 kBytes of data from the BGX via the serial port.
  8. The Android device measures the elapsed time between transmission of the first and last bytes of data to the BGX via BLE. The Test PC measures the amount of elapsed time between reception of the first and last bytes of data. These times are used to generate throughput values, and the lower of the two throughput values is used.
  9. Because throughput numbers can vary significantly with RF interference, steps 3 - 8 are performed multiple times for each test case.

The BGX device is configured with:

The following settings are configured on a test-by-test basis in order to generate a matrix of throughput values:

Note: The minimum allowed BLE Connection Interval (bl c i) on Android is 11.25 ms.

iOS-to-BGX

iOS-to-BGX throughput test is performed as follows:

  1. The Test PC device is connected to the serial port of the BGX device.
  2. The iOS device (acting as Central) establishes a BLE connection to the BGX (acting as Peripheral).
  3. The Test PC transmits 250 kBytes of data to the BGX via the serial port.
  4. The iOS device receives the 250 kBytes of data from the BGX via BLE.
  5. The Test PC measures the elapsed time between transmission of the first and last bytes of data to the BGX via the serial port. The iOS device measures the amount of elapsed time between reception of the first and last bytes of data via BLE. These times are used to generate throughput values, and the lower of the two throughput values is recorded.
  6. The iOS device transmits 250 kBytes of data to the BGX via BLE.
  7. The Test PC receives the 250 kBytes of data from the BGX via the serial port.
  8. The iOS device measures the elapsed time between transmission of the first and last bytes of data to the BGX via BLE. The Test PC measures the amount of elapsed time between reception of the first and last bytes of data. These times are used to generate throughput values, and the lower of the two throughput values is used.
  9. Because throughput numbers can vary significantly with RF interference, steps 3 - 8 are performed multiple times for each test case.

The BGX device is configured with:

The following settings are configured on a test-by-test basis in order to generate a matrix of throughput values:

Note: The minimum allowed BLE Connection Interval (bl c i) on iOS is 15 ms.

Note: As of iOS version 12.2 (16E227), the iOS device cannot configure the Xpress Streaming Service's Tx Characteristic for Indications, so the BGX cannot be set to use Acknowledged (ack) writes in the BGX-to-iOS direction.

Note: As of iOS version 12.2 (16E227), iOS applications cannot configure the BLE PHY. iOS always uses the 2M PHY if available, so 1M PHY testing was not performed.