Background beacon detection and Notification (Both iOS and Android) for Eddystone beacon? - altbeacon

Can we detect beacons in app background(Both iOS and Android). I see Eddystone beacon have some problem with background of iOS. How can solve that ?

iOS does allow background detection of service advertisements like Eddystone, but Eddystone detection times can be slower than iBeacon. The reason iBeacon detections are faster is because Apple has optimized it with hardware filters. Hardware filter slots in the bluetooth chip are activated when you monitor an iBeacon region on iOS. This causes iBeacon detections to happen within about 2 seconds when an app is in the background, provided hardware slots have not been used up.
You can get the similar rapid detection of Eddystone beacons by using beacons that interleave both an iBeacon transmission and an Eddystone transmission and making your app look for both. The iBeacon detection will wake up your app very rapidly in the background, and once active it will be able to receive Eddystone advertisements immediately thereafter.
You can read more about how bluetooth hardware detection slots affect iBeacon detection times here.
Full Disclosure: I am Chief Engineer at Radius Networks which makes beacons that interleave both iBeacon and Eddystone transmissions.

Related

iOS range to detect beacons with predefined proximity UDID

I am working on app which used to detect beacons in iOS device using objective c. I have successfully done the scanning of beacons using core bluetooth and core location framework i.e did range beacons which provides an array of scanned beacons.
Case - I have to discard beacon scanned which are of distance more than 10 meters. So I have used RSSI value for that and calculated distance using formula and not considering beacons above that distance.
Problem - did range beacon is not providing the beacons distance more than 5-6 meters sometimes it provide around 8 meter beacon also.
Question - is there any specific range after that iOS discard the scanned beacons automatically?
It is not unusual for mobile devices to not be able to detect beacons beyond 8-10 meters. This has nothing to do with the operating system and is caused by the radio signal level falling below the noise floor as detected by the receiver.
The maximum distance a beacon can be detected is typically 40-50 meters in ideal clear line of sight conditions, but this also relies on the bluetooth transmitter being set to the maximum radio signal level allowed by international regulations, and the transmitter's antenna being directed generally toward the receiver.
It also relies on the receiving mobile device having it's antenna oriented toward the beacon transmitter and not blocked by a case or other radio obstruction.
Typically conditions you describe are caused by a beacon transmitting a signal far weaker than allowed by law. This may be adjusted on some models. Check the instructions from the beacon manufacturer.
Some mobile device.models have poor Bluetooth receiver antennas, although Apple devices are generally good. (Huawei Android devices are notoriously poor receivers.). If in doubt, try another device.

Using multiple beacons to articulate accurate user location

Is it possible to find an accurate position of a person in a room using multiple Bluetooth beacons set up around the room through proximity detection? I've done some research and it says it is difficult to detect proximity with a Bluetooth sensor but can I overcome this through using multiple Bluetooth beacons? The point is you can use multiple Bluetooth beacons to triangulate positions and we'll be developing an iOS app that dictates the user (blind or disabled) where obstacles are. I'm wondering if this idea is doable and am curious how I can achieve accurate proximity sensing with Bluetooth beacons.
Thank you.
For anyone who thinks of this idea in the future:
Bluetooth really isn't ideal but there can be other ways such as using
other types of sensors.

ios beacon scanning interval

I want to use iPhone running a beacon scanning app to detect iBeacon to measure my distance changing. However I found the scanning rate is 1 per second, which cannot satisfy my moving speed. Some documents show scanning 1 time per second is determined by API that cannot be changed.
So do I have chance to speed up scanning rate?
There are two issues with the ranging beacons with CoreLocation for fast moving mobile devices:
As you mention, updates come only once per second.
The distance estimate in the CLBeacon accuracy field is based on the running average of the RSSI over 20 seconds, so it effectively gives you the average distance over that interval.
Unfortunately, you cannot change this -- it is how the API works. An alternative is to use the CoreBluetooth APIs, which can give you a call back once for each Bluetooth packet -- 10 times per second for a beacon advertising at that rate. Three obstacles with this:
You do not get a distance estimate with CoireBluetooth callbacks, just an RSSI measurement, so you must calculate your own distance from RSSI.
There is a lot of noise on RSSI, so using only a single reading the calculated distance estimate will be very inaccurate.
An iBeacon transmission cannot be parsed by iOS using CoreBluetooth, so you must use an alternate beacon format like AltBeacon.
You have to decide if these obstacles are acceptable for your use case.

Beacon Proximity: Is this still a issue from Apple API reference.

We are having a issue with iBeacons.
App makes wrong guess sometimes as to which proximity region its in before eventually correcting itself. It sometimes shows Far when the Proximity is Near. And then later it flips back to Near.
The problem actually occurs when we need to fire an event when we are in the Near/Far/Immediate region. This doest happen in that way. App is likely to lose range of beacons for brief instances.
Are there any other way to solve this Issue.
It is normal for the Proximity estimate to fluctuate with radio noise, but your experience sounds extreme. What iBeacon brand are you using?
Make sure you are using an iBeacon with as fast enough transmission rate. Different iBeacons transmit advertisements at different frequencies from 30 times per second to once per second or less. Generally, faster transmission rates give you less noisy distance estimates because they give iOS more radio signal strength measurements to work with.
If an iBeacon transmits less than once per sec, you may get intermittent exit/entry events.
For your testing, Try an iOS-based iBeacon like Locate for iBeacon or EZBeacon to see if it helps. It is known to transmit 30x per second.
The proximity issue can be effected by advertising frequency as David has already said. The reason for this is that iOS takes an average of the RSSI readings overtime and uses these to find a final value, if you hold an iOS device in an ideal location, (i.e. clear line of site to the beacon) the result settles down over a few seconds of holding the device still. Apple describes the averaging as: "This value is the average RSSI value of the samples received since the range of the beacon was last reported to your app."
However a bigger factor can be fluctuations in the environment, the RSSI will change dramatically if an obstruction appears between the iBeacon and the iOS device, if the iBeacon and iOS device are both at a low level, this could be a person walking past. I have published some initial results using Estimote iBeacons that show changes in distance based on the device operator rotating 360 degrees. A distance change of +/- 2m is not an uncommon change in this circumstance and could result in the behaviour you observed if the iOS device is near the proximity region boundary.
This is Wojtek Borowicz, I'm a community evangelist at Estimote.
Calculating the exact proximity of a Beacon is based solely on the radio waves it’s broadcasting an is really hard. You encounter factors like multipath propagation, wave diffraction, absorption or interference. That’s exactly why iBeacon standard does not try to calculate the exact distance between a Beacon and the receiving device. Instead, it uses a value called RSSI (received signal strength indicator), which allows to estimate the proximity based on signal power. For calibration purposes, there’s also included a metric called Measured Power - but it’s nothing more than just RSSI measured 1 meter away from the Beacon. Even calibrated, RSSI might fluctuate heavily, due to the factors mentioned above.
The stability of the Beacon’s signal is also based on two main factors. One of them is advertising interval (frequency - the lower, the better signal) and broadcasting power (the higher the better signal). Improving them will allow for much better proximity reading, but will also strongly affect battery life.

Getting BLE peripherals to communicate with each other

I'm wanting to know if what I want to do is even possible and if there is a good practise that I should follow.
For my experiment I have a collection bluetooth low energy beacons laid on the ground with each projecting out their own BLE signal. Each of these signals is getting read in by a fourth device that takes the corresponding RSSI value and uses it to determine it's position within the area.
Following this I now want each of my beacons that are laid on the ground to know the distances that separate them from each other. So my questions are as follows:
Is it possible to have the beacons on the ground broadcast different signals using two different UUID values?
Can a beacons both read and broadcast a signal at the same time? By that I mean the beacons will still be sending out their initial signal being read in by my fourth device whilst also reading in the distance value from their fellow broadcasting beacons on the ground.
I'm not sure if I've done a good job at describing what it is I'm wanting so I've (terribly) drew a picture in order to show what I want do and describe what I've got so far.
Key:
Black dots are my beacons on the floor
Green dot is my reader that finds its distance from the floor beacons. On the green dot is another app that is projecting out a BLE signal which the floor beacons are reading.
Purple line is the BLE signal being sent out from my reader device.
Yellow line is the RSSI value showing the beacons distance from the BLE signal being projected
Blue line (this is the key to this post) is meant to represent the beacons projecting and reading their own BLE signal so they can find their distance from each other.
Green line is then each beacon sending its distance from the other beacons to the reader.
At this point Bluetooth Smart-only devices currently do not support simultaneous peripheral/central mode.
What I would suggest is using the nRF51922 which supports concurrent BLE/ANT.
ANT is fully capable of doing this functionality for you as it supports all kinds of topologies, and you can relay your final information over BLE, or go with an nRF51422 and stay ANT only, I believe all latest Sony and Samsung devices support ANT anyway so it might be enough for you.
You can read more about it at http://www.thisisant.com

Resources