I need to use estimote stickers for one of my requirement, can i change its broadcasting range with eddystone-url protocol as proximity/location beacons.
I have emailed about the above question to the estimote team.
They are saying that, We can adjust the broadcasting power of stickers with eddystone-url as protocol. But they won't recommend it because it decreases responsiveness with an already limited range of stickers.
Related
I am building an app in swift that helps me detect beacons and display their RSSI values. I was using the native CoreLocations library from apple to detect beacons but noticed that the rate of detection is set to 1 second and it cannot be changed. Is there a way to reduce the detection interval to say 100-500ms so that I can get more RSSI values?
You can also use CoreBluetooth APIs to detect beacons, which give you a separate RSSI measurement for each packet detected. For a beacon advertising at 10 times per second, this would give you an RSSI update approximately every 100ms.
There are two big catches to using CoreBluetooth:
It cannot detect iBeacon because Apple blocks it. CoreBluetooth can detect AltBeacon and Eddystone.
The API is harder to use with beacons — you have to parse out the identifiers from the packets manually.
Also, be aware that the RSSI value returned by CoreLocation once per second is actually an average based on all packets received over the previous second, so it is more stable than individual samples taken at a higher frequency. Depending on what you want the samples for, you may find the higher variation is a problem.
Finally, be aware that the max rate at which you get samples with CoreBluetooth depends on the beacon transmission rate. Some beacons advertise only once per second. If you are working with such a beacon, you will not get any more samples with CoreBluetooth.
I'm currently study BLE Beacon. I know that with Google Beacon API and its app, it is possible to know when the beacon communicates with my mobile phone, so I can design different notifications based on the proximity. But in my case, I need to know the proximity between a wearable beacon to a stable beacon. Is that possible at all?
Two challenges to doing this:
Google Beacon APIs do not provide proximity information beyond a beacon being visible at all (regardless of distance) to a mobile phone.
Beacons are generally speaking one way transmitters. You cannot use a beacon to listen for another beacon.
To make something like this work you need one of the two devices (either fixed or mobile) to be a beacon scanner, not a beacon. You could make a beacon scanner out of a fixed Raspberry Pi 3 which would detect the beacon wearables and calculate the distance to them. This is an approach I have helped multiple clients implement.
I'm using the Estimote SDK (3.6.0) for the communication with my beacons. Now I have read somewhere, that it is possible to get the advertisement package of the beacons with 5 Hz. Is this only possible with Estimote beacons or does this work with beacons of other vendors too?
Where can I change this update interval in the source code?
Thanks.
Each beacon vendor usually provides some means to adjust their beacons' settings. Most often, that's in form of an app that you can download from the App Store or Google Play Store. In this particular case (Estimote), that'll be an app is simply called "Estimote." For more details, you should consult the vendor's documentation or inquire with their support team (:
One final thought: with Estimote Beacons, you operate on advertising interval of the beacon (i.e., the time between packets being broadcast) instead of frequency. Since one is just an inverse of the other, 5 Hz frequency (= 5 times a second) is equivalent to a 200 ms interval.
I would like to develop app which detects a lot of beacon device withoud knowing uuid.
However I cannot find way to do this in internet.
I have to define uuid in code.
So is there way to detect iBeacon without knowing uuid?
I know CoreLocation requires you to know the UUID of the beacon you are CBCentralManager, which handles all of the bluetooth spectrum. It has methods for scanning for bluetooth devices. I don't have an iBeacon handy at the moment to test and see if it picks them up, but it is probably worth a try.
The nomenclature used is quite important here. If you want to detect 'iBeacon', then you need to at least know the UUID of the device or devices you're looking for. That's because, in the iBeacon standard, the ID is the only piece of information included in the advertising packet. iBeacon lets you do two things: monitoring and ranging (detecting whether there is an iBeacon in range, and detecting how close the iBeacon is), and both require you to know the UUID.
If you just want to look for beacons, without including the iBeacon properties and features, you can use Core Bluetooth to do that. SDKs of particular beacon vendors base their beacon maintenance features (firmware updates, settings changing) on that. This method is also used by vendors that use their own protocols alongside Apple's iBeacon. We do that at Estimote with Estimote Stickers, and AFAIK Gimbal does this as well.
Cheers.
I was wondering what amount of time is required to convey information regarding the tilt and position (not gps) of one particular iphone to another. Could 2 iphones send and receive this information simultaneously? What about 3 iphones? I'm interested in an application that is able to simultaneously send and receive and make conditional decisions based on this information received all within a half a second-ish.
Any shot this is possible? If so, is bluetooth or wifi better?
Thanks a ton,
Jake
This is currently not possible without an intermediate server. (Without a jailbreak, which would make it possible, but extremely difficult)
I'm assuming your purpose is gaming, in which case, the latency associated with a trip to a server and back over a cellular data network, is likely to take too long for any satisfactory gaming experience. I don't believe it would be within half a second.
This will be possible via Bluetooth in the upcoming 3.0 iPhone software, but that is still under NDA, so you are not likely to be able to get any reliable performance numbers until it is released. If I were guessing, I would certainly guess that the latency associated with a direct Bluetooth connection would be FAR under half a second.
All you've got as an option right now is Wi-Fi or the Cell Network. If you use Bonjour over Wi-Fi, you'd have latencies in the milliseconds, but all the phones would have to be connected to the same access point. Take a look at the WiTap example.
It is definitely possible, you'd want to connect your peers over WiFi for best performance and reliability, but Bluetooth would be ok as long as your data packets were constrained to small sizes (< 1k). Check out this documentation and sample code to see how to access UIAccelerometer:
http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIAccelerometer_Class/Reference/UIAccelerometer.html
http://developer.apple.com/iphone/library/samplecode/AccelerometerGraph/index.html#//apple_ref/doc/uid/DTS40007410
The trick is that the update frequency is controlled in part by the systems needs, so there may be a window (while the system is attempting to update device orientation) wherein your application receives no updates.