nRF5 SDK v14.0.0
Experimental: ATT_MTU Throughput Example
This example requires one of the following SoftDevices: S132, S140

Important: Before you run this example, make sure to program the SoftDevice.

The ATT_MTU Throughput Example shows how different connection parameters influence the throughput performance of BLE connections. The following parameters can be tuned:

The example uses the Experimental: GATT Module. It can be run in different modes and assume either the BLE Central or the BLE Peripheral role.

Testing the example application requires two boards, which are both programmed with the same application. One of the boards must be connected to the computer and will serve as the tester. The other board responds to the requests that are sent by the tester.

When the application starts in tester mode, it uses the following default test configuration:

Parameter Value
ATT_MTU size 247 bytes
Connection interval 7.5 ms
Data length extension (DLE) ON
PHY data rate 2 Ms/s

A menu is printed on UART. Through the menu, you can choose to run the test or configure the connection parameters. During the test, the boards connect with the given parameters. The tester then sends 1 MB of data. After that, it queries how much data was received by the other board.


You can find the source code and the project file of the example in the following folder: <InstallFolder>\examples\ble_central_and_peripheral\experimental\ble_app_att_mtu_throughput

Button assignments - in addition to those defined in BSP BLE Button Assignments:

LED assignments:


Test the ATT_MTU Throughput Example application by performing the following steps:

  1. Compile and program the application on both test boards.
  2. Keep one of the boards connected to the computer. This board will serve as the tester. The other board will serve as responder. The tester board is assigned a COM port, which is visible in the Device Manager.
  3. Press Button 4 on the responder to put the application into responder mode. Observe that LED 1 is turned on, indicating that the board is scanning and advertising.
  4. Press Button 3 on the tester to put the application into tester mode.
  5. Start a terminal emulator like PuTTY (recommended) with the following Terminal settings and UART and USB settings.
  6. Open a serial connection to the COM port used by tester board. A command prompt is displayed.
  7. Type config print in the terminal to print the current configuration.
  8. Type config in the terminal to configure the test parameters to your choice. Use the Tab key for auto-completion and to view the options available for a parameter.
  9. Type run in the terminal to start the test.
  10. Observe that LED 3 blinks on both boards and that the tester prints the amount of kilobytes sent on UART.
  11. Observe that LED 4 turns on on both boards when the test is finished. The tester prints the elapsed time, the throughput, and the amount of bytes received by the responder.
  12. Observe that LED 1 turns on on the responder and all LEDs are off on the tester, indicating that the boards have disconnected. The tester prints the current parameter configuration and the menu.
  13. Repeat the test after having changed the parameters. Observe how the throughput changes for different sets of parameters.

Documentation feedback | Developer Zone | Subscribe | Updated