Post Image
By Matt GaidicaApril 27, 2021In Uncategorized

Bio-logger BLE Beaconing using GPS on iOS

BLE-enabled bio-loggers make it possible to monitor data and change settings on-the-fly. “ESLO” is our custom bio-logger device that pairs with this app.

BLE-enabled bio-loggers make it possible to monitor data and change settings on-the-fly. “ESLO” is our custom bio-logger device that pairs with this app.

Using a Bluetooth Low Energy (BLE) microprocessor in a bio-logger has advantages over non-wireless alternatives such as real-time monitoring, configuration, and the possibility of using BLE advertising as a beacon on live animals in their natural environment. However, a single BLE peripheral-to-central scheme does not inherently contain information regarding the direction or location of a device. The good news is, using the peripheral advertisements Received Signal Strength Indicator (RSSI) it is possible to hone in on a device location by walking around it.

In fact, apps already exist to do this to track down watches or headphones (see Wunderfind), but I was unable to find something that integrated with GPS in the manner that would be helpful for a bio-logger application. Below is a proof of concept that uses MapKit and Swift on iOS to continuously scan (1 Hz) for a specific BLE device and plot the RSSI based on the position of the phone (or person) at that time.

Almost everything meaningful is contained in ViewController.swift on GitHub. When the user presses the play/pause button the phone begins searching for the BLE peripheral device with a specific service UUID (see UUIDKey.swift). As the device scans for BLE, it is also gathering GPS data and plotting a marker each time a new location is registered. If you have good GPS signal, the accuracy of the latest iPhone is quite high—about 5 meters. I am using an opaque white marker to represent a not connected (N/C) signal, or when the BLE peripheral is out of range. Once the peripheral is found, the color and opacity of the marker changes with signal strength—which is displayed in the upper-right corner—and continues to plot the location as the user walks around; red is a weak signal and yellow is a strong signal. The current location of the phone is centered on the black dot-ring. When the play/pause button is pressed again, scanning is discontinued and the markers remain in place until the next scan is initiated.

iOS BLE finder app built using Swift in Xcode.

iOS BLE finder app built using Swift in Xcode.

This test took place in my backyard with the bio-logger perched on a bench. I walked around my house from the front door and ended up in the backyard out of range of the device (see black dot-ring and white markers). You can appreciate how in just a few minutes the approximate device location can be identified.

Wireless bio-logger advertising over BLE to iPhone/iOS app.

Wireless bio-logger advertising over BLE to iPhone/iOS app.

Final Notes

The major issue to be resolved is how implantation of the bio-logger will affect signal strength. One advantage of using arboreal species is that the signal should remain strong through the trees, as opposed to a burrowing animal. Another consideration is how the radiation pattern of the peripheral antenna and the receiving properties of the phone antenna affect signal strength; in theory, there will always be some asymmetry here, which I observed to some degree, which adds to the overall error of the actual bio-logger location. I will keep this post updated with what we find in terms of signal attenuation and overall performance in real conditions.

svgDoes zero-padding a FFT matter?
svg
svgA Dynamic Hindlimb Unloading Apparatus