Hello,
I am using the IW612 connectivity chip and noticed that the performance degrades after connecting to 4+ devices.
I am using the chip with btnxpuart driver and firmware SDIW612---18.99.2.p66.17-MM6X18437.p3-GPL-(FP92) on a 6.6 kernel.
My application is acting as a central and is supposed to support up to 10 simultaneous connections with the peripherals.
I have noticed that after connecting a 4th device, the connection is slowing down, same for the next devices.
The steps are the following
- The first peripheral starts advertising
- My application connects to the peripheral
- The second peripheral starts advertising
- My application connects to the peripheral
- And so on until the 10th device
I am connecting with the LE Extended Create Connection (0x08|0x0043) HCI command using 30/50ms as a connection interval.
< HCI Command: LE Extended Create Connection (0x08|0x0043) plen 26
Filter policy: Accept list is not used (0x00)
Own address type: Public (0x00)
Peer address type: Random (0x01)
Peer address: DF:FE:50:C3:94:53 (Static)
Initiating PHYs: 0x01
Entry 0: LE 1M
Scan interval: 60.000 msec (0x0060)
Scan window: 60.000 msec (0x0060)
Min connection interval: 30.00 msec (0x0018)
Max connection interval: 50.00 msec (0x0028)
Connection latency: 0 (0x0000)
Supervision timeout: 3000 msec (0x012c)
Min connection length: 0.000 msec (0x0000)
Max connection length: 0.000 msec (0x0000)
Once connected, BlueZ will start automatically discovering services, I calculated the delta between the connection time and the last characteristic discovered.
Here are the connection+discovery times in seconds:
- 2.263
- 2.313
- 2.189
- 2.201
- 4.208
- 6.810
- 8.423
- 11.295
- 13.099
- 15.474
From 1-4 devices, the average is around 2.2 seconds but starting with the 5th device it is already at 4.2s and keeps increasing the more devices are connected.
I am not doing anything more than scanning and connecting to the devices.
Is this expected or is there some fine tuning I could be doing?
I would like to keep the connection interval < 60ms.
I attached the btmon logs