Hi,
I'm trying to get the maximum possible throughput from a peripheral device, sending notifications to a central. I compare the throughput between 2 PCA10040 boards running example FW ble_app_att_mtu_throughput and between 2 PCA10040 boards running ble_app_att_mtu_throughput and the connectivty FW used in nRF Connect for desktop v2.4.0 with the Bluetooth Low Energy app v2.2.0 (on Windows 10). With nRF Connect and connection interval of 50ms, the throughput is much lower.
When using the ble_app_att_mtu_throughput example from SDK 14.0.0 (S132 SD V5.0), a throughput of ~260Kbps can be archived with following parameters:
==== Current test configuration ==== Board role: tester ATT MTU size: 247 Connection interval: 6 units Data length ext: on Connection length ext: on Preferred PHY: 1 Mbps
When increasing the connection interval to 50ms, a throughput of ~740Kbps can be archived (still at 1Mbps, 247 bytes);
Connection interval: 40 units
When then changing the preferred PHY to 2Mbps, the throughput becomes ~1300Kbps:
==== Current test configuration ==== Board role: tester ATT MTU size: 247 Connection interval: 40 units Data length ext: on Connection length ext: on Preferred PHY: 2 Mbps
So far so good.
I then used only 1 board for this att_mtu_throughput example and used nRF Connect for Desktop with the other board. In order to make this work I hardcoded m_gap_role in button_evt_handler() to make sure the tester board is advertising as peripheral.
In case of BOARD_TESTER_BUTTON, m_gap_role = BLE_GAP_ROLE_PERIPH
In case of BOARD_DUMMY_BUTTON, m_gap_role = BLE_GAP_ROLE_CENTRAL
In case of 7.5ms connection interval, the throughput is 250Kbps (using the same settings as above)
In case of 50ms connection interval, the throughput drops dramatically to 32Kbps (instead of 740Kbps without nRF connect).
So the throughput just decreases when the connection interval increases from 7.5ms to 50ms, while with the example application, it increases. Also the softdevice specification states higher a throughput with 50ms. Is this a known limitation of the connectivity FW/UART speed ? I would like to see the 1300 kBps using nRF Connect.
A second problem is that the 2Mbps PHY is seems not to be supported by the connectivity FW/nRF Connect, BLE app.
Regards,
Marten