Reputation: 51
I have a Raspberry Py OS based on Debian Stretch broadcasting an iBeacon with my UUID and Major/Minor. Through an APP built by our team, I was able to identify it by the UUID and read its Major/Minor.
Now, I'll have to read this same iBeacon through Chrome Browser. However, I am not being able to broadcast with the iBeacon a meaningful name to help the user to find the device, it only shows to me "Unknown or unsupported device"
As far as I could understand from iBeacon and AltBeacon, it isn't possible to send extra data in addition to UUID and Major/Minor. Is this correct? Is it possible to advertise this information within the beacon frame?
Command used to advertise the beacon.
sudo hciconfig hci0 leadv 3
sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 06 1A FF 4C 00 02 15 <<UUID>> <<Major/Minor>> C8 00
Consulting the Specification of the Bluetooth System I tried to change several name or ID features, none of them worked, such as:
sudo hcitool -i hci0 cmd 0x03 0x0013 <<Local Name>>
sudo hcitool -i hci0 cmd 0x03 0x0014
I would like to ask the community if it is possible to advertise this name while using beacons or if I should start using a GATT server to perform it.
Thank you all in advance.
Upvotes: 1
Views: 329
Reputation: 64970
Yes, it is possible for Linux to advertise both the local name and the iBeacon manufacturer advertisement. The way you are setting it up is correct, so it's unclear why you aren't seeing it in the Chrome web browser.
One thing to know is that the local name is not advertised in the same packet along with the iBeacon data that you show in your question. (There simply isn't room in the main advertising packet.) Instead, the local name is put in what is called a scan response packet. This is an additional packet that a Bluetooth LE Peripheral will send out in response to an active scan request packet from the Bluetooth LE Central (e.g. your Chrome device). It may be that Chrome does not send out scan request packets, which is why it won't read the local name.
You can confirm this by using a different device (like an Android or iOS phone using the Nordic nRF Connect Bluetooth test app) to see if they read the local name during a scan.
If you find that this these other devices do read the local name, then your next step would be to try to configure Chrome to do an active scan so it requests the scan response packets. It's unclear how or if this is possible.
Upvotes: 3