Gimbal beacon discovery - ios

Is it possible to discover Gimbal beacons using the iOS SDK? I want to use simple ranging but I don't know the UUID of the transmitter.

YES, you can use Gimbals as iBeacons. You have to re-configure it using iBeacon configuration.
Login to Gimbal website, create an account if you don't have one.
https://proximity.gimbal.com/
Open Proximity tab. Click on Manage Configuration button at the top and create new configuration, select iBeacon as beacon type, assign UUID, major and minor. You can choose any UUID you'd like.
Now register your Gimbal beacon, and select your new configuration. You must open the beacon to get to the Factory ID that is required to register.
Download Gimbal manager app for iPhone, open it, select "Configure" option. Open Gimbal and remove battery, put the batter back in, and you should see your beacon in the Gimbal Manager app, click the Update button.
That's it, now you your Gimbal is in iBeacon mode.

If anyone interested, I found this useful post on http://beekn.net/2013/12/inside-gimbal-qualcomm-beacons-tackle-bluetooth-le-challenges/:
Actually, you can’t sniff the iBeacon UUID as Gimbal use their own implementation for their beacons. They use BLE to transmit encrypted IDs that change with each broadcast, so it needs to validate with the SDK / API to confirm which beacon ID this ties up to.
update: davidyoung is right. There is some info that I skipped in Gimbal's documentation:
If your application's use case requires you to use iBeacon technology, the Gimbal Series 20 beacon can be configured to broadcast iBeacon compatible BLE packets. To learn how to configure a beacon to be iBeacon compatible please read the Proximity Quickstart Guide. The Proximity framework makes it very easy to use both iBeacons and Gimbal beacons from the SDK and lets you manage them through the Gimbal Manager Portal.

Interesting - I recently received a reply from Radius Networks that said ScanBeacon cannot identify Gimbal beacons - at least that's how I read it..
"Scanbeacon should display any device that is transmitting an ibeacon advertisement.
We have had several reports that the little blue beacons that Qualcomm has been making available are not showing up with ScanBeacon.
Our own investigation into these units is that they are not advertising the iBeacon identifiers.
There may be some configuration or other steps that need to be taken that we are not aware of.
But the out-of-the-box state of the Qualcomm beacons appears to be no iBeacon advertisement."

To use iOS, you will need to know the UUID.
There are some other options that do not require knowledge of the UUID.
If you have an Android device w/ 4.3 or later and support for BT4.0, you can use the free Locate application at the following link. https://play.google.com/store/apps/details?id=com.radiusnetworks.locate
If you have a Mac w 10.9 or higher and support for BT4.0, you can use the ScanBeacon app ($9.99) available on the Mac App Store or at this link. http://www.radiusnetworks.com/scanbeacon-app.html
Good luck, and make sure you report back your findings to rest of the community!
David
Full Disclosure: My colleagues just firmly reminded me that I'm misbehaving by not noting that I work for Radius Networks, who provides the tools listed above, and am the developer of the second tool listed, ScanBeacon.

Related

Google beacon tools not able to configure Virtual Ibeacon

I want to make a IOS device act as a virtual Ibeacon and configure it to google proximaty API.
When I try to configure using google beacon tools. I get "eddystone configuration not supported by the beacon"
Can any one help me to understand on what basis Google says Ibeacon is supported for nearby notifications
Yes, you can use Google's Beacon Tools app to register a virtual iPhone iBeacon transmitter with Google's servers. The problem is that you are misunderstanding the meaning of that error message.
To clarify: The question shows a screenshot of an Android app that has scanned for an iBeacon transmission coming from an iOS device.
Provisioning shows "Eddystone configuration service not supported by this beacon" because that section is used for configuring the beacon over bluetooth using the Eddystone configuration GATT service standard. Because your iPhone doesn't support that GATT service (lots of beacons don't -- not just virtual beacons), you get that error message.
Don't worry, that section is optional.
Just skip it and go down to the next section labelled Registration.

How to check if my Qualcomm gimbal beacon is working or not?

I have currently bought a Qualcomm Gimbal Beacon device. But when I added my device at Gimbal's developer site it shows that the firmware and battery level is unknown.
I don't know whether my device has been added or not and I also don't know how to detect my gimbal beacon through my iOS app.
Any help will be great. Thanks in advance.
If the beacons listed under your Gimbal Developer Account show unknown values for the firmware and battery levels that means your phone isn't communicating with the beacons. I suspect it has to do with the way the application being built has been configured with the Gimbal SDK or the sample app wasn't setup to work with your Gimbal Developer Account.
Once everything is configured correctly then when your phone comes in proximity of a Gimbal beacon it will capture everything about that beacon and then send it to Gimbal's backend service. The end result will be the correct status of the firmware and battery levels on your Gimbal Developer Account.
I suggest using the various Gimbal surveying tools available for download on their website to detect beacon signals, measuring effective ranges, etc. You will likely use them quite a bit to do proper surveying. Granted, you could always bake this functionality into your own app if desired.

Accessing battery level of battery powered iBeacon devices (mainly kontakt io ones)?

I am trying to find a way to access the battery levels from my beacons through an iOS application I am currently working on. I am using Kontakt's iBeacon devices. I browsed the Estimote iOS SDK and they provide a method to achieve this. I was wondering if it is at all able to access the raw beacon packet and manually extract the data since I know the beacon packet structure and the information is there.
Any thoughts on how to achieve this by the method mentioned here or any other way?
Thanks Guys.
This is Rafal from kontakt.io. Firstly, let me thank you for choosing us, it means a lot for us.
Propagation of battery level is not standard for iBeacons nor it is in any official iBeacon documentation, so that is why you cannot find the value using custom SDKs. Our iBeacons are propagating battery level in scan response packet which may be discovered using CoreBluetooth API in iOS. The level is one byte value at the 23rd byte in the packet.
Hope it helps :)
As far as I am aware there is nothing in the iBeacon advertisement itself that contains the battery level. Some beacons may expose additional BLE ATT services that contain this information. You could try using an application like LightBlue from the app store to explore the services available from your devices

Pairing iBeacon silently

I'd like to know if there's a way (with public or private API) to pair my device with an iBeacon silently (without having to input the pincode manually).
Or if you know if there's an iBeacon device out in the market that does not include a pincode to pair with.
Thanks.
Pairing is not at all a requirement for iBeacons. What are you using as an iBeacon? For the time being, either you are using an iOS device to broadcast as an iBeacon or you are using a 3rd party device that broadcasts the iBeacon profile.
This iBeacon demo on GitHub will be a good place to see iBeacons broadcaster/client (both iOS devices) connecting (without passcodes, of course).
If you are looking for 3rd party iBeacons, Estimotes are seem to be the best route.

Check if iDevice with a specific app is nearby

Is it possible to check within an app, if there are other idevices nearby which have the app running?
For example device A starts the app. Device B also starts the app. When they are nearby, a notification will popup.
I know its possible to check the range between two GPS coordinates. But the only solution that I've found on the internet was, that I have to make a webservice/server which handles the coordinates which were sent by the idevices.
But I'd like to make it run "offline", without saving/sending the data at a webserver.
You can achieve exactly this using the new iBeacons functionality in iOS 7. I'm not sure I can link to the exact documentation due to the NDA currently (although the feature was mentioned publicly at WWDC), but if you search for 'beacons' on the Apple Developer site you should find what you need.
There are also some examples towards the end of this year's WWDC session 307 - "What's new in Core Location?". This is arguably more useful than the documentation.
Essentially, you define a beacon region and tell your devices to start advertising their presence. At the same time, you can listen out for beacons in the local area - CoreLocation will then report you the identifier and approximate distance of each device.

Resources