1
votes

I am trying to understand more about the new Apple iBeacon protocol and how it would apply to other devices.

I have seen that the protocol itself has been reverse engineered: http://developer.radiusnetworks.com/2013/10/01/reverse-engineering-the-ibeacon-profile.html which is good news, but I have some further questions about the protocol.

Is the protocol designed to allow custom text messages to send to receiver clients? Such as "welcome to my shop" as opposed to just proximity to a certain beacon?

I can see a lot of other SO questions, but I am a little confused about where I would inject that text (as Hex) into the protocol.

What is the iBeacon Bluetooth Profile

Use BlueZ Stack As A Peripheral (Advertiser)

It looks like the protocol is setup to only really broadcast beacons of a UUID and Major/Minor set, which then the client app needs to do something with. But I would like it to more reflect a custom message, like "come inside for a free coffee" or something like that... is that possible using the iBeacon protocol, or do I need to just use standard Bluetooth LE for that?

1
The idea is that you know which major/minor values correspond to a location. Why wouldn't you just load this data from a server on detection of an iBeacon?danielbeard

1 Answers

3
votes

Standard iBeacons do not and cannot transmit anything besides a three-part identifier (UUID, Major, Minor) and a transmitter power calibration value. You cannot make them transmit a custom text message.

You could use lower-level Bluetooth LE for that as you suggest, but either way, you are going to have to build a custom app that can recognize signals from either type of beacon. And since you must have a custom app, you can easily deal with mapping identifiers to text messages. Like this:

iBeacon identifiers (UUID Major Minor)         Text Message
----------------------------------------       ------------------------
2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6 1 1       welcome to my shop
2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6 1 2       welcome to my other shop 

How do you create a lookup table? There are lots of ways. You can hard-code it in your app with an Objective C switch statement, or a more sophisticated NSDictionary. You can use a home-grown web service to do the lookup, or you can use an off-the shelf web service for mapping key/value pairs to iBeacons, like my company's Proximity Kit.