.. _iso_connected_benchmark: Bluetooth: Throughput ##################### The ISO Connected Channels Benchmark sample measures and reports packet loss and sync loss in connected ISO channels. Overview ******** The sample transmits data between the *central* and the *peripheral* and measures the quality of the ISO channels. The application can be used as both a central and a peripheral, and the mode can easily be changed. Requirements ************ * BlueZ running on the host, or * A board with Bluetooth Low Energy 5.2 support * A Bluetooth Controller and board that supports setting CONFIG_BT_CTLR_CENTRAL_ISO=y * A remote board running the same sample as the reversed role that supports setting CONFIG_BT_CTLR_PERIPHERAL_ISO=y Building and running ******************** This sample can be found under :zephyr_file:`samples/bluetooth/iso_connected_benchmark` in the Zephyr tree. See :ref:`bluetooth samples section ` for details. Testing ======= After programming the sample to both boards, test it by performing the following steps: 1. Connect to both boards with a terminal emulator (for example, PuTTY or minicom). #. Reset both boards. #. In one of the terminal emulators, type "c" to start the application on the connected board in the central role. #. In the other terminal emulator, type "p" to start the application in the peripheral role. #. Optionally modify the central ISO settings using the console. #. Observe that the central and the peripheral connects. #. Observe the receive statistics on the devices (the connected ISO channels may by uni- or bidirectional). Sample output ============== The peripheral will output overall data (since boot), current connection (since the CIG was connected) and latest 1000 received packets:: *** Booting Zephyr OS build zephyr-v2.5.0-4098-gdcaaee6db2f5 *** [00:00:00.392,333] iso_connected: Starting Bluetooth Throughput example [00:00:00.405,395] iso_connected: Bluetooth initialized Choose device role - type c (central role) or p (peripheral role), or q to quit: p Peripheral role [00:00:10.281,555] iso_connected: Registering ISO server [00:00:10.281,555] iso_connected: Starting advertising [00:00:10.282,684] iso_connected: Waiting for ACL connection [00:00:16.711,517] iso_connected: Connected: FA:4C:4B:DB:D3:89 (public) [00:00:16.711,669] iso_connected: Waiting for ISO connection [00:00:16.802,856] iso_connected: Incoming ISO request [00:00:16.802,856] iso_connected: Returning instance 0 [00:00:17.016,845] iso_connected: ISO Channel 0x20002934 connected [00:00:17.769,439] iso_connected: Sending value 100 [00:00:17.774,902] iso_connected: Overall : Received 100/100 (100.00%) - Total packets lost 0 [00:00:17.774,932] iso_connected: Current Conn: Received 100/100 (100.00%) - Total packets lost 0 [00:00:17.774,963] iso_connected: Latest 1000 : Received 100/100 (100.00%) - Total packets lost 0 [00:00:17.774,963] iso_connected: [00:00:18.529,510] iso_connected: Sending value 200 [00:00:18.532,409] iso_connected: Overall : Received 200/200 (100.00%) - Total packets lost 0 [00:00:18.532,470] iso_connected: Current Conn: Received 200/200 (100.00%) - Total packets lost 0 [00:00:18.532,501] iso_connected: Latest 1000 : Received 200/200 (100.00%) - Total packets lost 0 The central will ask if any changes to the current settings are wanted. If y/Y is chosen, then it will create a prompt to changes the settings, otherwise continue with the current settings. The central will then start scanning for and connecting to a peer device running the sample as peripheral role. Once connected, the central will output overall data (since boot), current connection (since the CIG was connected) and latest 1000 received packets:: *** Booting Zephyr OS build zephyr-v2.5.0-4098-gdcaaee6db2f5 *** [00:00:00.459,869] iso_connected: Starting Bluetooth Throughput example [00:00:00.472,961] iso_connected: Bluetooth initialized Choose device role - type c (central role) or p (peripheral role), or q to quit: c Central role Change ISO settings (y/N)? [00:00:03.277,893] iso_connected: Scan started [00:00:03.277,893] iso_connected: Waiting for advertiser [00:00:03.899,963] iso_connected: Found peripheral with address F4:5A:12:BF:4F:2C (public) (RSSI -24) [00:00:03.900,024] iso_connected: Stopping scan [00:00:03.908,020] iso_connected: Scan stopped [00:00:03.908,020] iso_connected: Connecting [00:00:04.007,232] iso_connected: Connected: F4:5A:12:BF:4F:2C (public) [00:00:04.007,354] iso_connected: Binding ISO [00:00:04.007,812] iso_connected: Connecting ISO channels [00:00:04.312,744] iso_connected: ISO Channel 0x20002934 connected [00:00:05.065,368] iso_connected: Sending value 100 [00:00:05.072,052] iso_connected: Overall : Received 100/100 (100.00%) - Total packets lost 0 [00:00:05.072,113] iso_connected: Current Conn: Received 100/100 (100.00%) - Total packets lost 0 [00:00:05.072,143] iso_connected: Latest 1000 : Received 100/100 (100.00%) - Total packets lost 0 [00:00:05.072,143] iso_connected: [00:00:05.825,439] iso_connected: Sending value 200 [00:00:05.829,589] iso_connected: Overall : Received 200/200 (100.00%) - Total packets lost 0 [00:00:05.829,620] iso_connected: Current Conn: Received 200/200 (100.00%) - Total packets lost 0 [00:00:05.829,650] iso_connected: Latest 1000 : Received 200/200 (100.00%) - Total packets lost 0