I've used nRF Connect on an Android phone to try to see any differences between the devices which are found, and those which are not. It's very clear that some devices are *always* missed by the esp32. I've tried several different esp32 developer boards (from LilyGo, m5 stack).
If I write code to run on an nRF52832, nRF52833 or nRF52840 - all of those find the 'missing' devices; only the esp32 misses them.
I've taken devices away from a building to ensure no other interference.
I assume the answer is going to be something around the "version" of BLE. Can anyone give me a tip on how to find that out, for given device? I can find the devices with BlueZ on linux OK. I see at https://www.esp32.com/viewtopic.php?t=19336 that esp32 does not have BLE 5. How can I tell if, for a particular device, BLE 5 is needed to recognise the Advertisement?
nRF Connect, I think, tells me that one of the devices which esp32 doesn't see, uses PHY of LE 1M (e.g., not the 2M of BLE 5) when I connect to it with the nRF Connect app.
In gattc_demo, I've tried increasing the scan window:
Code: Select all
⋮ 74 │ .scan_interval = 0x4000,
⋮ 75 │ .scan_window = 0x3000,
Code: Select all
⋮325 │ uint32_t duration = 100;