I have been able to isolate this down a simple low level test cases test case to show the conflict if this helps any
When I attempt to make a connection to a a bluetooth LE device and the connection does not establish (or the device does not exist), wifi is disable (or has >99% packet loss) while the bluetooth LE connection is being attempted.
On one RPi3 (#1) I have a window with iperf3 running
on another RPi3 (#2) I have a window with with iperf3 running with a connection to RPi3 #1
Code: Select all
iperf3 -c 192.168.1.138 -time 100 -u
Everything works fine (RPi3 #1 shows it is receiving udp packets) unit I open another window on RPi3 #1 and attempt to connect to a non existent device
Code: Select all
sudo hcitool lecc 11:11:11:11:11:11
Note: bluetooth LE will continue to attempt the connection even after hcitool returns with a timeout error.
RPi3 #1 iperf3 now shows it is dropping packets (0 data rate). After terminating the BLE connection attempt with an LE Create Connection Cancel Command things resume normally
I have tried this with "ping" instead and packets seem to get through
I have tried this with both "ping" and "iperf3" together, and there are a lot of dropped pings (and the one that do make it are very long... 10, 20, 30 seconds)
Looking at the data on wireshark I see the occasional packet is making it through... but very few.
My current guess is a lot of the logic for wifi is being turned off while BLE is access the radio, but there is a small buffer (which overflows very quickly) so some of the pings make it through. A full data set never makes it through for udp, so it is reported as 0 throughput)
Could any one shed some more light on this, or suggest a work around?