BLE ScanAdvertisements no longer getting AdvertiserAddresses

I’ve been working with the BLE extension off and on for a while now. Last week I started working with beacons, Eddystone TLM and iBeacons. I set up an ESP32 as an iBeacon and was able to detect it’s address using the ScanAdvertisements method in the BLE extension. I then moved on to the Eddystone TLM beacon using the same ESP32 with different code. I was able to detect advertising addresses and then retrieve the advertisement data using the service UUID and device address. This was all working well until yesterday. I tried to add a couple more beacons using additional ESP32 boards and I couldn’t get them to show up in the BLE AdvertiserAddresses list. This was using the same code that was working on the first ESP32. I could consistently continue to retrieve the first ESP32’s address along with a couple of random blue tooth devices nearby, but not the new ones. After trying everything I could think of, I finally powered down the phone, started it back up, and reconnected. After doing that, I can no longer get any addresses to populate in the AdvertiserAddresses list. I’ve since tried with multiple phones and creating new simple apps but the the AdvertiserAddresses list is always empty.

Other apps on the phone, such as NRFConnect, BLE Scanner, and Beacon scanner have no trouble locating the beacons and beacon scanner code running on an ESP32 has no trouble seeing the beacons. The StartScanning method will find the devices addresses. I also tried calling the AdvertisementData method with the service UUID and device address, but that doesn’t work either.

I’m at a loss as to where to go from here.

At it’s simplest, I tried to create an app with the code blocks:

blocks1
blocks2a

OK, I found the reason for addresses not showing up, but I can’t explain why they were working to begin with. I was able to download the BLE development environment from github and recompile the code with some logging statements which I was then able to view using the debugger. It turns out the devices aren’t setting a name and the advertising callback method simply returns without any action if the device name is null.

What I don’t understand is that everything was working fine for several days using the same code and then it started failing.

In any event anyone who experiences this issue, make sure your device is setting its name.

Have shared the code somewhere like github or similar?

Hello Jam,

I am also looking for a example to read the eddystone information in app inventor
I have program a micro bit for it but I can found nothing about it.
Do you have by maybe a sample code to receive the url?

Kind regards

Sander

Any updates on this?

Thanks Sander