Tuesday, February 11, 2014

Detecting Qualcomm’s Gimbal beacons in Mac OS X Mavericks and on Android 4.2

Recently I ordered the Gimbal proximity beacons and before getting my hands dirty with the iOS and Android SDKs I wanted to smoke test these tiny sweeties.
Case, Beacon, Bluetooth V4.0 Dongle

How can you detect them and verify they send advertisement packets?

Mac OS X Mavericks

First you need a Bluettooth v4 device. I have a Bluetooth 4.0 Adapter from LogiLink. On my Mac (OS X 10.9.1) in the System Report it shows up under the USB hardware as CSR8510 A10, Vendor Cambridge Silicon Radio Ltd.
So far so good... Unfortunately under Bluetooth I still had the built-in 2.1 old-timer without LE support. The corresponding LMP version is "4".
So how do you get the external device working? Just change the switch behaviour of the bluetooth controller to switch to the internal device as soon as it’s plugged in:
sudo nvram bluetoothHostControllerSwitchBehavior="always"
Now plug in the dongle and refresh the System Report. The LMP version is now "6" which corresponds to Bluetooth 4.
Last step to get the Gimbal beacons discovered is to install Bluetooth Explorer. Open Xcode and from the menu choose "Open Developer Tool" -> "More Developer Tools ..." which will navigate you to Apple’s download site for developers. Locate "Hardware IO Tools for Xcode" and install it.
Open "Bluetooth Explorer" and from the menu choose "Devices" -> "Low Energy Devices". Start scanning and if your Gimbal beacons are working properly, you should see tons of advertising messages showing up.

Android

There’s a free app called Signal Sniffer which nicely displays your beacon’s activity together with a signal strength.

Summary

Two beacons were just fine but the third one was not advertising at all. So I opened up that thing and it turned out that the piece connecting the battery with the circuit board had to be bent a little bit.