Throughput
Background
There are several factors that affect the observed throughput of Xpress Streaming Service data:
-
BLE PHY Preference
(
bl p p
): Different BLE PHY's operate at different bitrates. -
BLE Connection Interval
(
bl c i
): Connection Interval is the period at which the Central BGX queries the Peripheral BGX for data. -
UART Baud
(
ua b
): The baud rate can become the limiting factor if it is slower than the maximum possible throughput for a given configuration. -
BLE Transmit Connected Power
(
bl t c
): If the transmit power is insufficient, the receiving BGX may receive more corrupted BLE packets, forcing the transmitting BGX to retransmit. - RF Interference : Increased RF activity in the vicinity of the BGX can increase the rate of corrupted data packets, forcing the BGX to retransmit more packets. Each retransmission attempt occurs on the next connection interval.
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
)
Phy | Throughput |
---|---|
2 Mbps | 935 kbit/s |
1 Mbps | 550 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
)
Phy | Direction | Throughput |
---|---|---|
2 Mbps | BGX-to-Android | 1175 kbit/s |
2 Mbps | Android-to-BGX | 610 kbit/s |
1 Mbps | BGX-to-Android | 391 kbit/s |
1 Mbps | Android-to-BGX | 215 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
)
Phy | Direction | Throughput |
---|---|---|
2 Mbps | BGX-to-iOS | 488 kbit/s |
2 Mbps | iOS-to-BGX | 385 kbit/s |
Version Information
BGX
See the Release Notes page for firmware version information.
Android
Android testing was performed with the following devices:
-
Galaxy S9 (Android version:
9.0
) -
Nexus 6P (Android version:
8.1.0
) (1M PHY only)
iOS
iOS testing was performed with the following devices:
-
iPad mini (5th generation) (iOS version:
12.2 (16E227)
)
Methodology
BGX-to-BGX
BGX-to-BGX throughput test is performed as follows:
- The Test PC is connected to the serial ports of two BGX devices.
- The two BGX devices establish a BLE connection to each other.
- The Test PC transmits 64 kBytes of data to the transmitting BGX via the serial port.
- The Test PC receives the 64 kBytes of data back from the receiving BGX via the serial port.
- 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.
- 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:
-
BLE PHY Preference (
bl p p
):1m
,2m
,125k
,500k
-
BLE Connection Interval (
bl c i
): 7.5 ms (bl c i
=6
), 30 ms (bl c i
=24
) -
Central Write Mode (
ce w m
):ack
Android-to-BGX
Android-to-BGX throughput test is performed as follows:
- The Test PC device is connected to the serial port of the BGX device.
- The Android device (acting as Central) establishes a BLE connection to the BGX (acting as Peripheral).
- The Test PC transmits 250 kBytes of data to the BGX via the serial port.
- The Android device receives the 250 kBytes of data from the BGX via BLE.
- 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.
- The Android device transmits 250 kBytes of data to the BGX via BLE.
- The Test PC receives the 250 kBytes of data from the BGX via the serial port.
- 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.
- 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:
-
BLE PHY Preference (
bl p p
):1m
,2m
-
BLE Connection Interval (
bl c i
): 30 ms (bl c i
=24
) - Write Mode: Testing is performed using Fast-Ack Flow Control .
- MTU Size: The Android device configures the BLE Connection's ATT Maximum Transmission Unit (MTU) to 250 (the maximum size supported by the BGX).
- Write Block Size: The Android device breaks the write of 250 kByte into individual writes of 247 bytes. This ensures each write will fit in one MTU of data (maximum write size = MTU - 3).
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:
- The Test PC device is connected to the serial port of the BGX device.
- The iOS device (acting as Central) establishes a BLE connection to the BGX (acting as Peripheral).
- The Test PC transmits 250 kBytes of data to the BGX via the serial port.
- The iOS device receives the 250 kBytes of data from the BGX via BLE.
- 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.
- The iOS device transmits 250 kBytes of data to the BGX via BLE.
- The Test PC receives the 250 kBytes of data from the BGX via the serial port.
- 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.
- 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:
-
BLE PHY Preference (
bl p p
):2m
-
BLE Connection Interval (
bl c i
): 15 ms (bl c i
=12
) - Write Mode: Testing is performed using Fast-Ack Flow Control .
- MTU Size: The iOS device configures the BLE Connection's ATT Maximum Transmission Unit (MTU) to 185 (the maximum size supported by iOS).
- Write Block Size: The iOS device breaks the write of 250 kByte into individual writes of 182 bytes. This ensures each write will fit in one MTU of data (maximum write size = MTU - 3).
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.