Closed XZCE closed 4 months ago
Closing, because it seems to be a bandwidth issue, when the PS4 gamepad detects other BT radio activity it seems to go into overdrive and consume as much bandwidth as it can (probably so 2 gamers with gamepads don't get disadvantaged with clashing radio signals).
Following on from my PS4 controller & BT audio bandwidth issue - my sketch (I'm using Arduino-Pico, but upgraded to the latest btstack here) now uses a round-robin algorithm to connect devices. I've learned connecting the BT speaker first works best, otherwise "stuff doesn't work properly". So the HCI log here attempts to show that, where I've not got the BT speaker turned on, so it moves onto the PS4 controller and I start getting HID reports.
Then I power-up the BT speaker, and I stop getting HID reports and/or HCI log output.
My sketch also has a loop which every second outputs how many HID reports I get a second - it keeps running and I see 0 are coming in. HCILogs.zip
Log1 is the cleaned up packet log without my 1 second report (I've only got one output device, so I needed to do this)... Log2 is the interleaved report with my output (but I've removed enough HCI packet logging, so you can see where they appeared in the original capture: (I hope this makes sense)
[00:00:00.977] EVT <= 0E 04 01 0B 20 00 Reps=0 (maxms=5) [00:00:01.979] CMD => 05 04 0D D2 19 9D 74 28 10 18 CC 00 00 00 00 01 [00:00:01.980] EVT <= 0F 04 00 01 05 04 Reps=0 (maxms=4) Reps=0 (maxms=2) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) [00:00:17.343] EVT <= 03 0B 04 0B 00 D2 19 9D 74 28 10 01 00 Reps=0 (maxms=3) [00:00:18.344] CMD => 05 04 0D 7B 4D 04 31 10 58 18 CC 00 00 00 00 01 ... [00:00:18.997] ACL => 0B 00 0C 00 08 00 01 00 02 05 04 00 11 00 43 00 Reps=0 (maxms=124) [00:00:19.023] ACL <= 0B 20 10 00 0C 00 01 00 0B 04 08 00 02 00 00 00 00 00 00 00 ... [00:00:20.002] CMD => 35 0C 05 01 0B 00 01 00 Reps=631 (maxms=4) [00:00:20.003] ACL <= 0B 20 0F 00 0B 00 44 00 A1 01 82 7F 7C 80 08 00 00 00 00 ... [00:00:20.962] CMD => 35 0C 05 01 0B 00 01 00 Reps=133 (maxms=3) [00:00:21.028] ACL <= 0B 20 0F 00 0B 00 44 00 A1 01 82 7E 7D 80 08 00 00 00 00 ... [00:00:21.975] CMD => 35 0C 05 01 0B 00 01 00 Reps=28 (maxms=2) [00:00:22.041] ACL <= 0B 20 0F 00 0B 00 44 00 A1 01 82 7F 7D 80 08 00 00 00 00 ... [00:00:22.987] CMD => 35 0C 05 01 0B 00 01 00 Reps=29 (maxms=2) [00:00:23.053] ACL <= 0B 20 0F 00 0B 00 44 00 A1 01 82 7F 7D 80 08 00 00 00 00 ... [00:00:24.000] CMD => 35 0C 05 01 0B 00 01 00 Reps=28 (maxms=2) [00:00:24.066] ACL <= 0B 20 0F 00 0B 00 44 00 A1 01 82 7E 7D 80 08 00 00 00 00 ... [00:00:24.945] CMD => 35 0C 05 01 0B 00 01 00 Reps=28 (maxms=2) [00:00:25.011] ACL <= 0B 20 0F 00 0B 00 44 00 A1 01 82 7F 7D 7F 08 00 00 00 00 ... [00:00:25.957] CMD => 35 0C 05 01 0B 00 01 00 Reps=29 (maxms=2) [00:00:26.023] ACL <= 0B 20 0F 00 0B 00 44 00 A1 01 82 7F 7C 80 08 00 00 00 00 ... [00:00:26.970] CMD => 35 0C 05 01 0B 00 01 00 Reps=30 (maxms=2) [00:00:27.036] ACL <= 0B 20 0F 00 0B 00 44 00 A1 01 82 7F 7C 80 08 00 00 00 00 ... [00:00:27.982] CMD => 35 0C 05 01 0B 00 01 00 Reps=29 (maxms=2) [00:00:28.048] ACL <= 0B 20 0F 00 0B 00 44 00 A1 01 82 7F 7C 80 08 00 00 00 00 ... [00:00:28.997] CMD => 35 0C 05 01 0B 00 01 00 Reps=28 (maxms=2) [00:00:29.063] ACL <= 0B 20 0F 00 0B 00 44 00 A1 01 82 7F 7C 80 08 00 00 00 00 ... [00:00:29.942] CMD => 35 0C 05 01 0B 00 01 00 Reps=28 (maxms=2) [00:00:30.008] ACL <= 0B 20 0F 00 0B 00 44 00 A1 01 82 7F 7D 7F 08 00 00 00 00 ... [00:00:30.954] CMD => 35 0C 05 01 0B 00 01 00 Reps=28 (maxms=2) [00:00:31.021] ACL <= 0B 20 0F 00 0B 00 44 00 A1 01 82 7F 7D 80 08 00 00 00 00 ... [00:00:32.000] CMD => 35 0C 05 01 0B 00 01 00 Reps=183 (maxms=4) [00:00:32.001] ACL <= 0B 20 0F 00 0B 00 44 00 A1 01 82 7F 7C 80 08 00 00 00 00 ... [00:00:32.957] CMD => 35 0C 05 01 0B 00 01 00 Reps=472 (maxms=6) [00:00:33.023] ACL <= 0B 20 0F 00 0B 00 44 00 A1 01 82 7F 7D 7F 08 00 00 00 00 ... [00:00:33.607] CMD => 35 0C 05 01 0B 00 01 00 Reps=163 (maxms=61) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1) Reps=0 (maxms=1)