I am working on a project that uses a raspberry pi and a BLE heart rate monitor. I am using the built in Bluetooth on a raspberry pi zero w 1.1, running the latest raspbian buster, using the bluez stack v5.50.

I have run into the most puzzling situation where I get 1 samples every 10 seconds when the pi is connected to a router without internet access. Pop the internet cable into the router, and the data rate jumps to 1 sample per second.

I have absolutely no idea where to begin figuring this out. Obviously I know how to improve the timing, so this workaround is acceptable, but is still a workaround, and I would love to know why. I have a feeling that I shouldn't need to have an internet connection on order to increase the data rate of a BLE device.

Any thoughts?

  • 2
    How does the heart rate monitor send updates? Advertisements? Notifications? Polling by the Pi? If advertisements, how often does it send updates? When Ethernet is not connected, isn't the Pi trying to connect via WiFi, which may have an influence on BLE?
    – jcaron
    Dec 2, 2019 at 15:28
  • 2
    Another thing which could happen (but it really depends on exactly what you are doing, you didn't exactly give much details) is that whatever you have running on your Pi is receiving the update and trying to send it to a server, and only moves on to the next update after a timeout.
    – jcaron
    Dec 2, 2019 at 16:06
  • For posterity, the delay was due to the usage of mDNS. The pis were connecting to a "host.local" server, and in resolving the hostname to an ip address would always go to the "internet" first, which would eventually time out and finally rely on the mdns name resolution. My solution was to resolve the ip address once, at the beginning of the script, and reuse the ip address from there on. Thanks!!!!!
    – holofermes
    Feb 24, 2020 at 22:47

1 Answer 1


Bluetooth speed is totally based on version of the Bluetooth and into in depth its based on the Baudrate of the Bluetooth (ie:IEEE802.11b standard)there is no possibilities to get various number of cycle in output, because Bluetooth is not based on the internet connectivity, Internet protocol standard will comes under IPv4,6 so there is no relationship between those standards, maybe after connecting internet your raspberry pi Machines,your script will getting installed in package will get upgraded, because of the performance improvement the execution time getting reduced, that's why you are getting faster cycles/samples

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.