0

I'm looking for a way to distinguish hardware devices via BTLE. I'm quite open to using any system (Estimote, Gimbal etc) but I need to find a way to identify a device before any handshake is given.

For example: If there are 20 BTLE enabled devices in an area, I would like to identify them uniquely ahead of any broadcast.

Alex
  • 3,732
  • 5
  • 37
  • 59

2 Answers2

1

Standard iBeacons do exactly this. They advertise a unique three part identifier (Proximity UUID/major/minor) that requires no handshake to read. It is detectable on iOS, Android, Mac and Linux platforms. The three part identifier is sent in the clear in a BLE advertisement.

More detail on this advertisement format is available here: What is the iBeacon Bluetooth Profile

Shameless plug: my company makes beacons and services that work with any standard iBeacon and are interchangeable with other vendors' products that are also standard iBeacons. More information about our beacons and services is available here: http://www.radiusnetworks.com

Community
  • 1
  • 1
davidgyoung
  • 63,876
  • 14
  • 121
  • 204
  • Hi David. In particular; I need to find a way of uniquely identifying a device that does not have any app installed thats paired with the beacon at perhaps months of interval apart. For instance on wifi this is possible via the mac address of a device set to scan for open networks (if the user hasnt changed the MAC address). Is this possible? – Alex May 08 '14 at 04:32
  • @Alex I feel strong contradictions in what you are trying to do. 1. iOS devices don't start advertising themselves automatically. There must be an app that starts it. 2. iOS devices don't try to connect anywhere without an app. 3. The wifi you mention works only if the device connects to your network. 4. iOS uses random MAC addresses for BLE exactly to prevent easy identification. 5. iBeacons are usually not connectable but an app is a must to do so any way. So I guess you may need to reconsider your requirements. – allprog May 08 '14 at 07:40
  • Yeah the BLE part is a bit new to me. I've seen the wifi version in action though. I'll have a bit of a rethink – Alex May 08 '14 at 07:42
1

It sounds like you want to know ahead of time what UUID matches what hardware vendor, so if you see if you can say "Hey, it's Gimbal!" or "Hey, it's a Gelo!"

For the most part you can care less about the major and minor. You're most interested in the UUID. This would mean that you'd need to scan for all of these UUIDs and then look at the peripherals that CoreLocation ranged to see what product family it belonged to.

One problem with this is that some vendors use rotational UUID schemes to mitigate security risks related to beacon spoofing. This will pose a challenge to identify their hardware devices.

Another problem you may have is that it sounds like after you see the devices you want to stop listening (or scanning as a central) and then turn around and broadcast (as a peripheral). This would mean that you'd be routinely toggling back and forth between the two roles.

It isn't entirely clear what you're wanting to do, so hopefully to some extent this is helpful.

Zach Dennis
  • 1,754
  • 15
  • 19