I developed some BLE device discovery python codes from the example given in https://github.com/pybluez/pybluez/blob/master/examples/ble/scan.py which are run on a Google AIY Raspberry pi.

from bluetooth.ble import DiscoveryService

service = DiscoveryService()

devices = service.discover(2)

for address, name in devices.items():

print("name: {}, address: {}".format(name, address))

The problem is, my python codes can only catch 2 BLE & classic Bluetooth devices nearby while the Bluetooth panel in Raspberry Pi shows 5 devices. Why is there such a big difference?

Or how can I or which library should I use for developing a BLE device discoverer which can catch as many as devices as the OS does?

  • Why is there such a big difference? ... different code works differently – jsotola Aug 5 '18 at 1:27
  • How different can they be? This sounds like a BLE discovery sensitive issue? If this is the case, should the senitivity be a function of hardware and DSP only? – Shu Aug 5 '18 at 2:08
  • what is 2 in service.discover(2)? – Jaromanda X Aug 5 '18 at 2:38
  • What is the context of service.discover(2)? If it tells you that it's a man page, part 2 are system calls. For a full definition of all the man sections, do a "man man" – NomadMaker Aug 5 '18 at 3:00
  • @Jaromanda The '2' in ' service.discover(2) ' is an example of the discovering duration in seconds. I changed it to be 10 seconds and it didn't change the result. – Shu Aug 5 '18 at 6:22

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.