Quantcast
Channel: Reality matters
Viewing all 184 articles
Browse latest View live

Estimote Indoor Location positioning achieves 30 cm precision thanks to ARKit

$
0
0

At Estimote, we’ve built our first beacon before iBeacon was announced. And then, as soon as Apple showed iBeacon to the world, we were the first to integrate with it, leveraging the superior iBeacon stack that Apple built directly into iOS. Thanks to that integration, developers building with Estimote gained access to features like always-on background monitoring, or ability to relaunch their app from a killed state due to a beacon event.

Then, in 2014, we launched our Indoor Location SDK, taking even more advantage of iOS APIs: Core Bluetooth and the sensors APIs. Developers now had access not only to proximity to beacons, but to a precise (x,y) indoor position.

Today, we’re further advancing our integration with the iOS stack by adding ARKit to the mix. Our Indoor SDK can now leverage Apple’s breakthrough image-processing and sensor fusion, to strengthen its own indoor positioning algorithms. The result of that integration is an inch-level indoor positioning precision.

Indoor Location takes ARKit to the next level

ARKit is new technology from Apple added in iOS 11, making it super easy for developers to build Augmented Reality experiences, and blend the physical and digital worlds on an iPhone screen. Never before could you look at the physical world through your phone and see it populated with creatures from games and fantasy movies. Or see what your apartment would look like, fully furnished, without buying a single piece of furniture. And that’s just the tip of the iceberg!

When developing for augmented reality, you could encounter a few problems. Your phone doesn’t really know where it is. Is it a conference room or a lobby in your office? It doesn’t even know if this is the same place you last ran the app. Because of that, it’s hard for ARKit to place objects in the same spot every time you run the app, or show the same object in the same place for two different users.

Indoor Location delivers the context of the physical world to the phone, whether it’s in the lobby or the conference room, solving both the problem of session sharing as well as session persistence. If you place a 3D castle next to your chair, it will still be there the next time you run the app. What’s more, Indoor Location provides the option to have a back-end for AR. Because the device and your CMS can now speak the same language, you can remotely store and manage where the objects should be.

Try it now!

All you need to try it out is a single dev kit of Location Beacons with UWB to map your location, and an iOS device compatible with ARKit, such as an iPhone 6s or newer (for the iPad family: an iPad Pro or iPad 2017) with iOS 11 installed. Download the Estimote Indoor Location app, map your space, and enjoy the most precise positioning on the market!

Buy Indoor Location dev kit
Includes 4 × Location Beacons with UWB and automapping

Thrilled to write your own app?

We’ve prepared a fast track for you! A ready-to-go, but easy-to-expand example is bundled within our SDK. All you need to do is put in your credentials and location identifier, and you’re all set!

Happy hacking!


The most reliable Proximity tech, now with a brand-new Proximity SDK

$
0
0

Designing magical experiences for your customers in the smartphone area is inseparably tied with creating a mobile application that is aware of a user’s context. You could use a museum application (e.g Guggenheim), for instance, to push content to a visitor depending on what artwork they are closest to. A shop application (e.g Tesco) could send your guests discounts, coupons, and special promotions based on information about the department that the shopper is in. The list goes on, but all of these use cases prove that beacon technology is a great solution to bind the physical world (shops, departments, exhibits) with mobile applications — by providing proximity information. At Estimote, we want to make sure you succeed in creating context aware applications, which is why today we are officially launching Proximity SDK for iOS and Android.

Yes, this means that Estimote Monitoring, the most reliable notification solution, is now available on Android.

proximity_gif

Proximity SDK provides context to your apps in a super-easy way. You no longer need to spend time on understanding either beacon physics or different packet types to correctly react to users’ moving around your venue. With this SDK we want to let you build on our experience in recognizing the right context, to let you focus on creating magical experiences for the users of your app.

Why should you use it?

  1. Reliability. To make sure that you are always capable of consuming a user’s proximity in a predictable, reproducible manner

  2. Ease of use. Proximity SDK is focused on using beacon signals easily and providing a reliable app experience. That’s all it does.

Reliability

Under the hood, Proximity SDK uses Estimote Monitoring, Estimote’s algorithm for more reliable enter/exit reporting. This full stack solution, originating from the beacons’ hardware, continuing with their firmware and handled by the mobile SDK, provides enter and exit notifications where and when you really expect them.

We have verified that our solution lets us achieve amazing results and that is why we have enabled it by default in Estimote Beacons and built the Proximity SDK upon Estimote Monitoring.

We are happy to also announce that Proximity SDK brings the most reliable notification solution to Android phones! We now provide a consistent experience on iOS and the most popular Android phones, updated to work smoothly with the latest release of Android OS.

Ease of use

With Proximity SDK, you’re getting a short and consistent API that is:

  • easy to learn - you won’t need to spend much time to understand and get familiar with it.

  • sufficiently powerful - SDK contains functionality that you will actually need, no less and no more.

proximity_office

Our experience with proximity deployments helped us design an API which works well in many situations. For example, it may be convenient to assume there’s always just one beacon nearby, but in real-world conditions, signals can overlap, interfere with one another, etc. Our new API is designed to help you gracefully handle those situations, and make your beacon integration successful despite the complexities of the radio waves and the physical world.

Due to these advantages in our API, it will be easy for you to use and integrate Proximity SDK into your own app.

Attachment-based identification

Details of each of your Estimote devices are available in Estimote Cloud. Each device has a unique identifier, but remembering it and using it for every one of your devices can be challenging. This is why Proximity SDK uses attachment-based identification. Imagine you have two beacons, and in Estimote Cloud you tag them with an attachment/JSON: one as blueberry_desk, one as mint_desk, and both as venue = office.

In the SDK, you can now say, “monitor for the blueberry_desk and tell me when I enter and exit its proximity” and “monitor for venue, tell me when I enter/exit its proximity and which venue that is”

proximity_json

Here’s how you can do this using our iOS SDK

ESTCloudCredentials.setUpSharedInstance(appID: yourAppIDGoesHere, appToken: yourAppTokenGoesHere)
self.proximityObserver = ESTProximityObserver(credentials: ESTCloudCredentials.shared!, errorBlock: { error in
    print("Ooops! \(error.localizedDescription)")
})

let blueberryZone = ESTProximityZone(range: ESTProximityRange.custom(desiredMeanTriggerDistance: 0.5)!,
                                        attachmentKey: "blueberry_desk")
blueberryZone.onEnterBlock = { attachment in
    print("Currently, you are within blueberry_desk zone")
}
blueberryZone.onExitBlock = { attachment in
    print("You are no longer within blueberry_desk zone")
}

let midVenueZone = ESTProximityZone(range: ESTProximityRange.custom(desiredMeanTriggerDistance: 1.5)!,
                                    attachmentKey: "venue")
midVenueZone.onEnterBlock = { attachment in
    print("Currently, you are within venue zone")
}
midVenueZone.onExitBlock = { attachment in
    print("You are no longer within venue zone")
}

self.proximityObserver.startObserving([blueberryZone, midVenueZone])

And our Android SDK

proximityObserver = ProximityObserverFactory().create(applicationContext, EstimoteCloudCredentials(YOUR_APP_ID, YOUR_APP_TOKEN))
val proximityRule0 = proximityObserver.ruleBuilder()
        .forAttachmentKey("blueberry_desk")
        .withOnEnterAction{
            attachment ->
            print("Currently, you are within blueberry_desk zone")
        }
        .withOnExitAction{
            print("You are no longer within blueberry_desk zone")
        }
        .withDesiredMeanTriggerDistance(0.5)
        .create()

val proximityRule1 = proximityObserver.ruleBuilder()
        .forAttachmentKey("venue")
        .withOnEnterAction{
            attachment ->
            print("Currently, you are within venue zone")
        }
        .withOnExitAction{
            print("You are no longer within venue zone")
        }
        .withDesiredMeanTriggerDistance(1.5)
        .create()

proximityObserver
        .addProximityRules(proximityRule0, proximityRule1)
        .withBalancedPowerMode()
        .startWithSimpleScanner()

Another benefit of this approach is that when you change your mind and want to replace one beacon with another, all you need to do is reassign JSON attachments in Estimote Cloud. You don’t even need to connect to the beacon or rebuild the app!

Software-defined range

Proximity SDK lets you “consume” beacon signals at different ranges. The range where you get the notification doesn’t depend on packet broadcasting power anymore — you can even use a single beacon to trigger notifications at far, medium and near ranges. Previously, you would probably use a beacon per range (three in this example).

Give it a try and let us know what do you think!

You can find Proximity SDK for both iOS and Android on Github with sample apps that help you get started.

Share your thoughts on our forums or drop us an email

The Memphis Music Scene. Booming with the blues, innovated with Estimote.

$
0
0

Memphis, Tennessee. Home to some killer barbeque, Elvis Presley and the Graceland estate, and the Memphis Grizzlies. Most notably though, it’s the birthplace of rock and roll! And Memphis isn’t shy about representing that badge of honor. There’s no shortage of stops to soak in all the appreciation of rock, soul, and blues. Two of these exhibits in particular are boasting unique and technically advanced solutions, pinging their visitors with contextual content viewable on their personal smartphones. And yep, you guessed it! They’re both powered by Estimote.

enter image description here

ThinkPROXI is a proximity platform built to connect businesses with their customers. They started up in 2015, supporting various proximity protocols like NFC, GPS, iBeacon, and EddyStone. Once they realized the value of proximity marketing and it’s potential in museums, real estate, and retail, they focused their platform on these domains. With their home base set in Memphis, it was only natural to bounce into the music scene with their smart city and museum apps.

The Memphis Music Hall of Fame The folks at the Memphis Music Hall of Fame were interested in engaging with their visitors of all ages in a new and exciting way. By their own research, the National Endowment for the Arts recently reported a sharp decline in museum-going rates among young adults in their 20s and 30s. The Music Hall of Fame said, “Heck with that!” They connected with ThinkPROXI, who put together a remarkable solution to intrigue millenials.

Key exhibits are assigned an Estimote beacon (nearly 40 altogether), pushing artist and artefact relevant media via the Memphis Music Hall of Fame app. Want to know more about B.B. King, Ann Peebles, or the Reverend Al Green? Listen to an audio guide, or a musical snippet to jog your memory. Johnny Cash fan? There’s memorabilia everywhere, with his handwritten lyrics out on display. If you want to learn more, your trusty app will act as your own personal guide, taking you around the area and providing background on what your eyes are feasting upon. And to add another layer of cool, they’re profiling visitors by asking them a few questions from the start. This profiling enables the app solution to give a completely different experience, depending on your interests. A couple of key features ThinkPROXI has enabled are social sharing, selfies, likes, and capturing comments. And, actionable insights are collected as visitors are engaging with the beacons, making moves based on demographics and other criteria. It’s like an assistant giving you a VIP customized ride!

Take a walk down Beale Street Beale Street is a wonderland of attractions, rich with history. It was a significant landmark in the Civil Rights Movement, as Beale Street was the home to an NAACP co-founder, an anti-segregationist paper, and the oldest surviving African-American Baptist church in Tennessee. Blues legends Muddy Waters, Louis Armstrong, and B.B. King all performed on Beale Street in their heyday. Walking down the open boulevard, you can practically feel the rhythm guitar kicking up your feet.

It’s no doubt one of the most popular places for tourists in the United States, drawing in millions of pedestrians a year. ThinkPROXI has installed nearly 100 Estimote beacons along the route of historical buildings and local businesses to provide a virtual tour guide application. The Beale Street App guides visitors in a walking tour, complete with information about every building and the history behind it. The clean design is intended to educate in a fun and engaging way with audio, video, and infographics. Apart from the historical buildings tour, the app additionally gives contextual updates from the local businesses, providing coupons and special offers to it’s users. These campaigns are tailored to visitor demographics, with businesses opting in accordingly to design something specific to their needs.

Beale Street App screens

Key parts of the Estimote stack in making this solution a success include Estimote Cloud along with the Beacon Health Check feature, as well as Estimote’s Configuration app. Of course, building a solution of this scale isn’t without it’s hurdles. Buildings on Beale St are very close to each other. It was very challenging to use one beacon per building. The team at ThinkPROXI arrived at an answer using GPS and beacons in combination to support multiple building navigation. Going forward, our latest Proximity SDK would be perfect!

In their next iteration, Sridhar Sunkara and Sanjeev Bora, CEO and CTO of ThinkPROXI respectively, have expressed an interest in moving toward wayfinding and user positioning using our Indoor Location SDK. Be sure to keep an eye on these Memphis heros as they continue to push solutions that educate the public, while engaging in a fun and fresh way! And don’t forget to download their apps from the App Store before you head to Memphis next.

Download the Beale Street App / / Download the Memphis Music App

Written by Jess Anderson, Content Creator + Community Manager @ Estimote

Estimote introducing Low Power Asset Tracking API

$
0
0

At Estimote, we keep adding building blocks for truly intelligent locations. Our vision of the future involves workplaces and offices that make lives easier, thanks to a sophisticated mixture of sensors, location algorithms, and communication over low-power mesh networks. Today, we’re adding another layer on top this strong foundation. We want to introduce you to Estimote’s Asset Tracking API.

Routed mesh network

This technology allows you to create an asset tracking solution in a matter of hours, not days, with elements of our stack you likely already have.

Why are we building Asset Tracking technology?

Asset Tracking API is an answer to real life problems. We hear a lot about them from our community. This kind of technology can be used in a factory to track the position of particular hardware or, say, at an assembly line where plane components have to be found and installed in an extremely efficient manner. Another interesting real-life example is tracking medical equipment at hospitals. We know that efficiency in locating crucial tools is a good way to save time and money from day one.

Asset tracking plane

We attempted to tackle this problem earlier, with an initial version of asset tracking based on our beacons with Indoor and Nearables. Even in that first version, we had no need for gateways and wires. That doesn’t mean it was perfect: the core principle was the same (track the placement of a Nearable using beacons), but there was much more overhead in the process. In practice, it only collected data about the Nearables’ placement when an Internet-connected device with an app was around. This meant that someone had to walk around the entire space quite frequently, or the Nearables’ position wouldn’t be updated. Naturally, this wasn’t good enough for us long term. We wanted to take things further, and build something smarter.

Estimote’s new way of tracking assets

We began with a very specific focus, the same we have for our mesh networking: low power usage. We built Asset Tracking on top of our low-power BLE mesh, in fact. It’s cheaper and easier to deploy—and to maintain, since there’s no power supply needed at any point of the entire process.

How does it work?

It’s actually pretty simple: take some Estimote Stickers and place them on the items you’d like to track. They need to be within range of a single Location beacon or in a location that’s mapped using Location beacons. The only requirement is that you have firmware 4.13.2 or newer installed on the Location Beacons with F3.3 or I1.2 hardware version.

Asset Tracking Configuration

After a straightforward, cloud-based configuration process, the beacons scan for Stickers in their vicinity. By default beacons are scanning for stickers every 3 minutes. To get the current location of Stickers, just send a request to the Estimote Cloud API — this triggers a scan and data collection over mesh. You can use a Swift helper method in Estimote iOS SDK:

func generateReport()
{
    let meshManager: ESTMeshManager = ESTMeshManager()
    meshManager.prepareNearablesScanReportCommand(forNetworkIdentifier: meshIdentifier, completion: { (error) in

        if let error = error {
            print("Generate nearable scan report failed with error: \(error)")
            return
        }

        print("Generate nearable scan report success!")
    })
}

The data is then read from any of the beacons by either an iOS or Android device. This operation can be performed manually

func readReportFromDevice(device: ESTDeviceLocationBeacon) {

        // Connection is required to read Asset Tracking report
        if device.connectionStatus != ESTConnectionStatus.connected { return }

        device.scanReports?.readScanReport(completion: { (report: ESTMeshNearablesScanReportVO, error: Error) in

            guard let error = error else {
                return
            }

            // You should use first 4 bytes of Nearable identifier
            // Returned string contains first 4 bytes of beacon identifiers
            let closestDeviceIdentifier: String = report.closestDeviceIdentifier(forNearableIdentifier: "aabbccdd")
        })
}

or with the help of a Mesh Gateway. With several dozen beacons in the space, you’ll get the results in a matter of minutes with the Estimote Cloud API. Ask yourself: how long would it take you to walk around a warehouse and check every nook and cranny for that one particular box you’re looking for? For 25 beacons, it’s well under 10 minutes.

class ViewController: UIViewController {

    let meshGateway: ESTMeshGateway = ESTMeshGateway()

    override func viewDidLoad() {
        super.viewDidLoad()

        self.meshGateway.start()
    }
}

Instead of creating a dedicated hardware gateway, we’re introducing gateway functionality in our SDK. Any phone with the right software can now work as a gateway. To make things sweeter, every beacon collects data from the entire mesh, so even a single phone, at any point in the range of the mesh, is enough to get the full picture. Isn’t that better than buying, say, 400 additional devices you need to configure and maintain?

The cherry on top? To get this setup, you don’t even have to map out the space yourself. Thanks to Location Beacons with UWB, Estimote does the mapping for you. Just follow our setup wizard and place the beacons around the location, then watch the map get drawn with inch-perfect precision.

Try it now!

We’re really excited to get this technology into your hands. If you want to know more just drop us a line at contact@estimote.com.

Rafał Ociepa, Content Manager at Estimote

Marcin Klimek, Product Manager at Estimote

Best practices for submitting your beacon‑enabled iOS 11 apps to App Store

$
0
0

This is it! After weeks of work, you’re ready to submit your beacon-enabled app to the App Store. We’ve compiled a short checklist to clear before you do so, ensuring a smooth approval.

Location Services & privacy

Estimote SDKs allow your app to know the location of the user— be it proximity to places, objects, screens, or precise indoor coordinates. Most of us are pretty sensitive to sharing our location with apps, and so users needs to opt-in to it, and understand how you’re planning to use this data.

Authorization levels

In iOS 11, the user always gets to choose whether to grant access to their location only when the app is in use, or at all times. This means you are required to include the following keys in the Info.plist file:

  • NSLocationWhenInUseUsageDescription

    • explain how your app uses the location while in use
  • NSLocationAlwaysAndWhenInUseUsageDescription

    • explain how your app uses the location while in use, and what additional features are unlocked by the “always” authorization

If your app supports iOS 10, also include NSLocationAlwaysUsageDescription for compatibility.

Make sure to test your app with all the authorization levels, including no authorization. This is true especially if you’re upgrading from iOS 10 and your app previously required the “Always” access— make sure the app still works properly on iOS 11 if the user opts in to the “When in use” option.

Privacy Policy

Apple recommends having a Privacy Policy for apps that collect user-related data … such as location. You can add a URL to your Privacy Policy on the app’s iTunes Connect “App Information” page.

Add Bluetooth usage description

Since iOS 10, apps are also required to include NSBluetoothPeripheralUsageDescription in the Info.plist file, explaining how they use Bluetooth. This requirement is triggered whenever an app links to the Core Bluetooth framework, which is something all Estimote SDKs do.

If you forget this key, your binary will be automatically rejected during the processing stage, after you upload it to iTunes Connect. If this happens, just add the missing key, build a new binary, and upload it instead.

Enable only the Background Modes you need

iOS apps generally don’t get to run in the background—they’re suspended as soon as the user leaves the app. Background Modes are special privileges which change that. For example, music apps can use the “Audio” Background Mode to continue playing music even when the user leaves the app.

Because of these special privileges they give, Background Modes are heavily regulated and scrutinized by the App Store team. For this reason, make sure your app doesn’t enable any Background Modes which you don’t need and use.

Specifically, all of the Estimote APIs require at most the “Uses Bluetooth LE accessories” Background Mode, and nothing else.

It’s also helpful to leave a note for the reviewers explaining why and how your app uses the Background Modes.

Provide a video of the beacon-powered experience

The App Store review team will most likely want to see your beacon-powered experiences in action. Naturally, it might be difficult for them to replicate your beacon deployment … which is why we recommend putting a note about that, and providing a video where you show the location-specific experiences.

This is a tip straight from the App Store review guidelines:

If we’re not able to access part of your app because it’s geo-locked or otherwise restricted, provide a link to a video of the functionality

Use the latest Estimote SDKs available

We’re constantly updating our SDKs with new features and bug fixes, but something less obvious is we’re also adapting to changes in iOS APIs and behaviors … and even to changes in App Store review policies.

Using an outdated SDK might mean unexpected things happening on newer versions of iOS, or getting your app rejected because the older SDKs don’t conform to the new guidelines and policies.

This is why we recommend keeping the Estimote SDKs in your app up-to-date. With dependency managers like CocoaPods, updating the SDK takes almost no time at all.

If for some reason updating to the latest version is not an option, make sure to use at least Estimote SDK 4.25.3, Estimote Indoor SDK 3.0.0-alpha.2, and Estimote Mirror SDK 0.1.6. The previous versions are known to not conform to the latest App Store review guidelines, because of the way we used to build them into binaries.

Contact us for assistance

Every app is different, so if you’re running into an atypical problem getting your app approved, let us know about it. We know first-hand that being stuck in review for days is no fun, and we’ll work with you and the App Store review team to help. You can reach us at contact@estimote.com.

Try our improved Proximity experience in 5 minutes with the new demo

$
0
0

A couple weeks ago, we enhanced the proximity technology through enabling Estimote Monitoring by default. It allows for more reliable proximity areas detection, lets you get started with no pre-configuration and use software to dynamically manage and group beacons.

Today, we’re introducing a brand new in-app Proximity demo that’s easy to set up, and showcase to others. You don’t need to spend hours on development to pitch your idea or share the use case with the team!

The demo walks you through all the crucial concepts of proximity-based apps. You can mark the places and objects around you with beacons, and run a simple proximity demo both in the background and in the foreground, giving you a solid sense of the real proximity experience in just a few taps.

Shake, connect, deploy!

First, the demo guides you through the proximity setup: you’ll see just how easy it is. Pick up a beacon and shake it so the app can detect it, then tell us where you want to place it, and put it there. Thanks to Estimote Monitoring, there’s no need to configure the UUID/Major/Minor or broadcasting power. After the demo, the positions you assigned to the beacons are saved in the Estimote Cloud as the beacons’ tags, so that you can use them in your own app, too.

Demo time

So now that your beacons are all good to go, the demo can start! We’ll detect your proximity to the beacons and since you’ve given each beacon a tag with its position, the app will know where you are and what your context is: “desk,” “conference room,” “kitchen,” etc.

All you need to do is walk from one beacon to another, and see how the content adjusts based on your proximity. Estimote Monitoring will take care of reliably triggering enter and exit events!

Proximity is not the only trigger for the events, the previous context matters, too. Let’s say a user has visited the place before and is coming back, you don’t show them the same content again, do you? Estimote Analytics provide you with all the information you need to avoid that: the number of unique and repeating visits, time spent in specific areas.

It’s your turn now

Here you are, done with the demo, ready to build your own app. We help you create the Estimote account and save the whole demo setup there so you can start building your app on top of it. Instead of starting from scratch, you can continue by developing from a template, or obtaining the token and follow the tutorial on the Developer Portal.

Now, grab your dev kit and experience the new Proximity demo on the Estimote iOS app (the Android version is coming soon). Estimote Proximity Beacons are shipped with Estimote Monitoring enabled by default, you are good to go once you open a dev kit.

Buy Proximity Beacons

If you already have beacons, here’s how to enable Estimote Monitoring. We are thrilled to hear how you like the new demo, ping us at contact@estimote.com to ask any questions and share your experience.


Join thousands of fellow developers and get the latest Estimote news straight to your inbox! Subscribe to our newsletter here

Real time Analytics API - why wait for insight?

$
0
0

At Estimote, we firmly believe in making data-informed decisions. We want to enable our customers to do the same. That is why we initially introduced the Estimote Analytics API— a set of tools for developers to measure user interactions in the proximity of beacons. Then, listening to developer feedback, we expanded the analytics platform. With the introduction of Estimote Analytics 2.0 we enabled our customers to explore metrics like visits, visitors, visit duration, and loyalty via the Estimote Cloud UI. Exposing the API allowed our customers to integrate this service with their own backend, to create a unique solution.

These were the first steps that took us from collecting simple interactions to analyzing millions of data points at a time, and presenting them to our users in real time.

Estimote is exposing Real Time Analytics API

Today, we take the next step to make Estimote Analytics powerful enough to answer the most demanding questions, in real-time. We are exposing Real Time Analytics API. We know that in some cases, a couple of minutes’ delay is still too long. Introducing this feature gives our customers the power to monitor the current status of their businesses. Think of it as an ongoing, constant stream of data that you can follow and respond to without the need to query our servers in any way. It’s the perfect solution for situations where you need to quickly (and we do mean “quickly”—in a matter of seconds) react to emerging trends, rather than wait minutes to get fully-processed data.

What does this mean in practice? Imagine that you are running a furniture store, and you notice that suddenly, several customers have gathered in the kitchen exposition section. With real time data Analytics, you can immediately decide to send more staffers over there to help your customers pick out the perfect countertop or sink. It’s a great way to easily improve user experiences based on real time events.

Estimote Private Cloud

Or think of it this way. In a warehouse setting, you have a machine malfunctioning in the roll-up door section of a factory floor. You can immediately tell who is the closest technician properly trained to patch a quick fix. In a hospital setting, you have a bottleneck of patients in admitting, waiting to have their information taken. You can quickly and efficiently assess which of your nurses can be sent to handle the influx, without pulling anyone critical from the emergency room. The possibilities are endless!

Integration with your services

Another advantage of real time data is the ability to integrate it with your Machine Learning or AI models. This lets you create prediction mechanisms which mean you’ll be better prepared for next week’s surge of in the hospital—or those other situations!

Grow faster than the demand

Today, Estimote Analytics is an integral part of beacon deployments made by some of the largest Fortune 500 companies and our growing developer community. Every day we receive, process, and store millions of events to give our customers insights into the status of their deployments. To meet these growing requirements we have adjusted our internal service to handle new spikes of traffic. This change is completely transparent to you, our customer. If you’re already using the Analytics service, there’s nothing you need to do to upgrade. The only difference is that now, you’re going to see data in the Cloud UI and API much faster; to be more specific, we’ve decreased the processing delay three times.

Gathering data on the backend would be much less meaningful without devices “on the ground.” Following this logic, we want to make sure you can easily collect the data in your apps. To make things even more seamless, the latest Mobile SDKs have Analytics on by default. It’s one more in a series of updates, where we are focused on making it easier than ever to hit the ground running with your beacon deployment. Furthermore, we are adding full support for Estimote Monitoring in Analytics. The Estimote Monitoring packet, which is turned on by default on newly purchased beacons, allows you to accurately see how many visits and visitors were in the range of your devices. This change gives you yet more tools to measure the impact and see the status of your beacon deployment.

Try it now!

Real-time Analytics is also coming to our mobile apps. You’ll be able to test, demo, and pitch this technology to your clients even more easily than before.

As always, we’re eager to hear your feedback and to help get you going! Let us know what you think on Twitter or drop us an email at contact@estimote.com

NASA’s Johnson Space Center transcends space and time with custom built bike tracking system

$
0
0

NASA’s Johnson Space Center campus is always bustling with people. With about 3,000 employees, 12,000 contractors, and a steady stream of interns and students making their way around the facilities at any given moment, efficient modes of transportation are a must … rockets and space shuttles aren’t exactly pragmatic! Enter their bicycle sharing program, tracked and powered by Estimote beacons.

enter image description here

It all started with a summer internship by an ambitious Computer Science student from Washington University in Saint Louis named David Lie-Tjauw. David was working alongside the sustainability team at NASA to identify issues and prototype unique solutions. With the mentorship of NASA leadership, David was able to flex his technical knowledge while gaining precious insights and education to building a fully workable product. After numerous brainstorming sessions, they honed in on Johnson Space Center’s free-range bike program. These over 300 bikes are available for NASA personnel to freely use. The problem? People had trouble actually finding them on campus! Thus, the project was born: what if employees could simply log in, and view the real-time locations of the bikes?

Here’s how it works. Each free-range bike is outfitted with an Estimote Proximity beacon, broadcasting the identifier of the respective bike. Stationed in every building at JSC is a Raspberry Pi, substituted for a smartphone, hard-coded with a permanent location tag and running a custom-built Android application that scans for nearby beacons. When a bike is parked at a building, the Raspberry Pi and Android app sees the beacon identifier, sending it to the online real-time database (in this case, they’re using Google Firebase). For example, a Raspberry Pi in Teague Auditorium would tell Firebase that bikes #12345, #54321, and #19283 are at Teague. The Raspberry Pi updates the database roughly every 30 seconds, so once a bike leaves a building, the Firebase database will reflect changes with each update. Finally, an easy-to-use website called BikeJSC reads the bike data from Firebase and visualizes it on a Google Map image of Johnson Space Center. As bikes move throughout campus, the website will update in real-time to accurately display the number of available bikes at specific buildings. NASA employees can use this website to find nearby bikes.

enter image description here

Most of our developers use smartphones, but it was clear off the bat that smartphones wouldn’t scale for this project… the campus is huge! Needing a smartphone for every building would be expensive and battery life would be killer, so David utilized Raspberry Pi’s, mini barebones computers with no screens to work alongside Estimote SDK. In order to successfully run Android applications on the Raspberry Pi, David used Android Things, a brand of Android OS specifically tailored for the Internet Of Things.

“Bike tracking at NASA JSC would not be possible without the use of the Estimote SDK. I would like to give a shout out to Estimote’s amazing engineers and developer community who have created extremely useful and comprehensive documentation for the Estimote SDK. Often times, the biggest barrier that keeps users from implementing any new technology is the availability of help and resources needed to figure out how to use such technology in the first place. Estimote has done a fantastic job on this end!” -David Lie-Tjauw, lead project developer

Often you hear in business that a foot in the door is everything. Well, what good is a foot in the door at NASA? We can’t help but humblebrag about influencing a NASA intern, ourselves. Plus, we’re hearing all sorts of ideas! David is a self admitted Estimote enthusiast. He’s already brainstorming new ways to integrate BLE tech and Estimote beacons in space exploration. For example, what if the bike tracking system could be applied by using Estimote beacons to track the location of objects in microgravity, aboard the International Space Station? The concept of contextual computing and its potential to revolutionize hardware and software mechanics can enable engineers at NASA to attack problems from entirely new perspectives.

Be sure to keep an eye on this young talent, and look out for the bikes next time you’re visiting NASA’s Johnson Space Center in Houston!

For more information on the project, feel free to reach out to David Lie-Tjauw

Written by Jess Anderson, Content Creator + Community Manager @ Estimote


The most reliable Proximity SDK is now available for Raspberry Pi using Android Things

$
0
0

Recently, we announced our Proximity SDK, which offers both a reliable beacon-based proximity experience and an easy to use API. Proximity SDK can be used for both iOS and Android devices, however for some very interesting use cases this is not enough. We’ve found out that you want to build interesting real world software applications using low cost computers, just like Raspberry Pi. In this great example of Internet of Things communication, central nodes (e.g. Raspberry Pi) gather data from low power nodes (beacons) about their Proximity (and build simple object detection mechanisms — a basic asset tracking solution) or Telemetry information (using beacons’ built-in sensors). You used to build those use-cases using generic BLE scanning libraries. With the introduction and increasing popularity of AT, this changes. We’re happy to announce that our latest and most robust Proximity SDK is now officially supported on embedded platforms.

Yes - this means that you can now efficiently scan for Estimote Beacons on Raspberry Pi 3.0, or NXP i.MX7D.

Why is this new solution better?

First of all, you get the most reliable Proximity SDK with a great API. We are currently fully supporting this SDK as a part of the general Proximity Android SDK — you can expect all reliability improvements and new features of our stack to be fully covered on Raspberry Pi. Proximity SDK makes it simple to build beacon-based proximity experiences, and helps you get started really fast.

Secondly, you no longer need embedded development skills to create new beacon-based apps for the IoT. You can use standard Android developments tools, programming languages (Kotlin, Java) and toolchain (Android Studio) to write new apps and install them on your development board.

How does it work?

The core of this solution is Android Things. Android Things is an operating system for embedded development platforms. The most popular among several development boards certified for Android Things is Raspberry Pi 3 — a low-cost, small, single-board computer equipped with a Bluetooth Low Energy chip. Using the Estimote Proximity SDK API for Android (Things) you are able to create an application in Android Studio. Your application is scanning for beacons using signals transmitted from them either to detect proximity or read sensor data. You can later use that extracted real world information to build a complete Internet of Things project.

What do you need to do?

To use it, all you need to do is install Android Things on your development board and run our Proximity SDK Android Things sample app on it. To help you get started really fast we have prepared a detailed tutorial (some really handy shortcuts included :)).

Share your thoughts on our forums or drop us an email

Estimote Cloud Attachments API: store context in the cloud, less in your app!

$
0
0

In 2016, we introduced the Beacon Storage API allowing developers the opportunity to store small amounts of data within the built-in memory of each Estimote Location Beacon. This feature lets you share data with nearby customers, and display text or images coming directly from the beacon. It’s a perfect solution where internet connectivity is spotty and you don’t need to store a lot of data. An alternative is to have your app either include that data, or fetch it remotely from the cloud. That means either hard-coding the info in the app—which doesn’t scale—or relying on an external service to store it. We’re constantly looking to improve the experience for our developers, shorten the development time, and make maintaining apps a breeze. Today we’re helping with that: introducing our Estimote Cloud Attachments API.

If you haven’t used external cloud services (e.g. Firebase or Deployd) or your own backend before, you can use this API to associate your own data with a beacon, and then use this contextual information to enhance the experience for your users. Embedding Cloud Attachments API service could also decrease the complexity of your application — fewer dependencies are always better. It can also save you time by maintaining smaller number of external services. Another advantage of using Cloud Attachments API is that you don’t need to hardcode data in your app anymore. It helps with maintenance and updates.

Here is a snippet of code showing how to use attachments:

// create an attachment
curl -X POST 'https://cloud.estimote.com/v3/attachments' \
    -u YOUR_APP_ID:YOUR_APP_TOKEN -H "Content-Type: application/json" \
    -d '{"data": {"payload": {"key1": "1","key2": "text"},
                  "identifier": "YOUR_DEVICE_IDENTIFIER"}}'

// fetch an attachment
curl -X GET 'https://cloud.estimote.com/v3/attachments/ATTACHMENT_ID' \
    -u YOUR_SDK_APP_ID:YOUR_SDK_APP_TOKEN -H "Accept: application/json"

If you want to utilize them inside Estimote Proximity SDK take a look at code snippets for iOS and Android

We’re often asked why Estimote hasn’t built our own beacon CMS (Content Management System). The answer is simple: with such a vast landscape of use-cases, we cannot create a service which will be perfectly suited for all our users. Therefore we believe that it’s better to deliver similar services as flexible APIs. This way our customers can use their domain-specific expertise to create their own magical experiences.

If you’d like to create your own specialized beacon CMS, you can use Estimote Proximity SDK and Cloud Attachments API to do so. However, if you’re just prototyping, we’ve also added a new section to the Beacon Settings page in our Cloud where you can find the data currently assigned to a given beacon. There is also a simple editor which helps you to easily add, change, and remove existing information, and best of all, you won’t even need to connect to physical devices to apply the updates.

Estimote Cloud Attachments

You may be wondering how you can use this new feature. Just imagine you are responsible for exhibition content in a museum. Typically, in order to get some detailed information, your visitors would need to come close to the paintings to read the small print on a panel. That’s not necessarily a problem when the venue is empty, but what’s that experience like when the place is crowded? Not great! To make it better, you can place a beacon by the painting, then your team can create a mobile app and use the Estimote Attachments Cloud API. When your visitors are close to the art piece, their smartphones will know which paintings are nearby (thanks to Estimote Proximity SDK), and the app will fetch the data associated with this beacon to show them context-based information. Of course, that could be a more detailed description of the painting, but it could also include a thumbnail, or even a link to a video depicting an x-ray of the multiple layers built up.

Estimote Attachments Cloud API is available today to all our users! You only need to log in to Estimote Cloud or if you prefer to use our API, just check out our documentation. Happy hacking!

Build your first proximity app in 5 minutes

$
0
0

We’ve recently launched our Proximity SDK enabling the world’s most reliable beacon notifications and proximity zone monitoring. Getting to know a new SDK and learning its API can be time-consuming. It often means hours spent on manual integration and troubleshooting. Now there’s a better way. You can save that time and focus on your use case, if you let us guide you through our new App Templates, which come with our Proximity SDK integrated from the start. We’ll pick the right template and go through what’s possible—defining proximity zones, adjusting range and more. Now, buckle up and let’s go!

App Templates and a Proximity Beacon devkit

Starting off with the right template

The most popular use cases for proximity are either about adjusting the content of an app depending on where the user is, or sending notifications when someone enters or leaves an area. You can easily accomplish both with our App Templates available in the Estimote Cloud.

Downloading the Notification template

In the first case, users actively interact with the app and you adjust content based on where they are. Think about a museum application that presents different content to a visitor depending on which artwork they are closest to (similar to the Guggenheim Museum’s case). Here you would go for “Proximity for a Single Beacon” and “Proximity for Multiple Beacons” templates as they monitor proximity zones in foreground.

It’s different when your app is supposed to stay idle until a specific event occurs—a user entering or leaving an area. In this case, monitoring runs in the background—without the app being active. The moment you want to engage your users, you can quickly bring the app into focus with a notification. It could be used for proximity marketing in retail, like in the Tesco Lotus’ case. They send different discounts and coupons based on the department you enter. Here, the “Notification” template would do as it works in background.

Got a completely different idea and want to start from scratch? Go for the “Blank” template with the Proximity SDK already integrated.

All those templates are available for both iOS & Android and now support Kotlin! Now let’s see how you can tweak them to your use case.

Defining proximity zones with attachments

After choosing the right template, it’s time to connect to your beacons, adjust their range… Well, that’s not the case anymore! Proximity zones are software-defined!

Each beacon has a Cloud attachment associated with it. This means you can keep simple data (for example names of the areas) in the Estimote Cloud using key-value pairs. They live there and can be modified at any time directly from the Estimote Cloud dashboard in the Beacon Settings section:

Beacon attachments in the Estimote Cloud

Then, zones are defined based on those attachments in the mobile app using EPXProximityZone objects. You can easily adjust their range with the desiredMeanTriggerDistance argument:

let zone = EPXProximityZone(
  range: EPXProximityRange.custom(desiredMeanTriggerDistance: 3.0)!, 
  attachmentKey: "room", 
  attachmentValue: "kitchen"
)

Taking it further with zone based interaction

You can decide what happens when a user enters or exits an area defined by a proximity zone:

zone.onEnter = { attachments in
  // Send a notification saying “Hey, looking for coffee?”
}

zone.onExit = { attachments in
  // Send a notification saying “Have a nice day and see you soon!”
}

It’s possible to subscribe to both of the events at once. You could use that for gathering analytics to better understand how your users interact with the space:

// Both enter and exit events
zone.onChangeAction = { attachments in
  // Send analytics to your cloud
}

So when entering the kitchen, a user would get this:

Screenshot showing a notification

Grab a devkit and build your app!

Now that you know all about templates, go to Estimote Cloud and start building your first app with the Proximity SDK. Keep in mind, it runs on Estimote Monitoring 2.0 and Proximity Beacons have this enabled by default. However, if you bought a dev kit before September 2017, just enable Estimote Monitoring and you are good to go!

Devkit of Proximity Beacons

Buy Proximity Beacons

If you need more help, clarification, or just want to brag about an amazing app you’ve built, head straight to our forums or ping us at contact@estimote.com.

How we hacked our conference rooms to get more feedback [Case Study]

$
0
0

Beacons are often used in workplaces to make working more efficient or enjoyable. It’s no different here at Estimote - we love tackling various issues with our own tech.

We spend plenty of time in conference rooms, planning new features and iterating on existing ones. The habit of giving constant feedback is strongly embedded in our company culture. We do our best to give each other feedback on how we run meetings to make them more efficient and action-oriented. Often, though, there’s no time for that: once the meeting is finished, everyone disperses and moves on to the next task. Our leaders are then left hanging, wondering, “Did it go well? Could I have made it more concise? Was the agenda appropriate?”

A few weeks ago during an internal hackathon, we built an Android app to address this problem. We integrated it with the latest Estimote Proximity API and Google Calendar’s API. Stay with us as we share a quick step-by-step guide below (code snippets included)!

Estimote conference rooms

How does the app work?

Our app asks you for feedback right as you are leaving the conference room. (Timing is key, right?). It sends a notification and takes you to a simple rating page. With a star rating system you can evaluate various aspects of the meeting and can also leave a note for the organizer! The app then prompts you to send the feedback to the facilitator’s inbox. For this use case, we placed one Proximity Beacon in every conference room and integrated with G Suites. (Everyone here, including our conference room, has its own calendar).

Note: We considered the fact that one can just fetch data from the calendar and push notifications the moment a meeting is scheduled to end. But, what if a meeting ends five minutes earlier than anticipated? You would get the notification when you’re already on to the next task and probably discard it for later. And if a meeting is running late, it’s even worse! There is nothing more distracting than everyone getting simultaneous notifications just as you’re wrapping up. To know exactly when you exit the room, we use Proximity Beacons that trigger a notification precisely when you leave the defined area.

Okay, back to the actual case study!

1. Ask for the necessary permissions

For this particular case, you need:

  • access to user’s calendar*
  • access to Bluetooth so that the app is able to interact with beacons

You can find a tutorial on asking for permissions available here.

*For the purpose of building this use case, we assume that everyone has some calendar app, and also that their work calendar is synced.

2. Get the list of calendars

To get the events, you need to get the right calendar first. Android doesn’t make it easy to figure out which calendar you should be fetching. So, the first thing we did was get the list of all phone calendars thanks to Google’s Calendar Provider. We logged the calendar id, display name, account name and owner. Remember to replace name@example.com etc with your desired data.


private val PROJECTION_ID_INDEX = 0 private val PROJECTION_ACCOUNT_NAME_INDEX = 1 private val PROJECTION_DISPLAY_NAME_INDEX = 2 private val PROJECTION_OWNER_ACCOUNT_INDEX = 3 var cur: Cursor? = null val cr = contentResolver val uri = Calendars.CONTENT_URI val selection = ("((" + Calendars.ACCOUNT_NAME + " = ?) AND (" + Calendars.ACCOUNT_TYPE + " = ?) AND (" + CalendarContract.Calendars.OWNER_ACCOUNT + " = ?))") val selectionArgs = arrayOf("name@example.com", "com.example","name@example.com") cur = cr.query(uri, EVENT_PROJECTION, selection, selectionArgs, null) cur?.let { while (cur.moveToNext()) { val calID = cur.getLong(PROJECTION_ID_INDEX) val displayName = cur.getString(PROJECTION_DISPLAY_NAME_INDEX) val accountName = cur.getString(PROJECTION_ACCOUNT_NAME_INDEX) val ownerName: String = cur.getString(PROJECTION_OWNER_ACCOUNT_INDEX) Log.i("Calendar", "ID: $calID DisplayName: $displayName AccountName: $accountName OwnerName: $ownerName") } }

3. Find the right calendar and fetch the events

From the list of calendars, we find the one matching the email address of the user and grab its ID. We use this ID (in our case it’s ‘3’) to fetch the list of upcoming events for a given user. It’s up to you how far ahead you look - in our case, we take the events for the next 14 days. That way, the app doesn’t need to to fetch events over and over again. Lastly, we log all events with its title, start date, end date and organizer.


val calID = 3 val now = Date().time ContentUris.appendId(builder, now - DateUtils.DAY_IN_MILLIS * 1) ContentUris.appendId(builder, now + DateUtils.DAY_IN_MILLIS * 14) val eventCursor = contentResolver.query(builder.build(), arrayOf("title", "begin", "end", "allDay", CalendarContract.Events.ORGANIZER), "Calendar_id=" + calID, null, "endDay ASC, startMinute ASC") if (eventCursor.count > 0) { while (eventCursor.moveToNext()) { val title = eventCursor.getString(0) val begin = Date(eventCursor.getLong(1)) val end = Date(eventCursor.getLong(2)) val allDay = !eventCursor.getString(3).equals("0") val organizer = eventCursor.getString(4) Log.i("Event:", "Title: $title Begin: $begin End: $end All Day: $allDay Organizer: $organizer") } }

4. Add the beacon scanner to the app & scan

We want to know when exactly a person leaves the room. To get the most accurate results, we use Estimote Proximity SDK. We place a Proximity Beacon in every conference room and start scanning for them.

val cloudCredentials = EstimoteCloudCredentials(YOUR_APP_ID_HERE, YOUR_APP_TOKEN_HERE)
val proximityObserver = ProximityObserverBuilder(applicationContext, cloudCredentials)
       .withBalancedPowerMode()
       .withOnErrorAction { }
       .build()

val venueZone = proximityObserver.zoneBuilder()
       .forAttachmentKeyAndValue("room", "mint")
       .inNearRange()
       .withOnEnterAction { }
       .withOnExitAction { showNotification() }
       .create()

val observationHandler = proximityObserver
       .addProximityZone(venueZone)
       .start()

Beacon on a table

5. Trigger a notification

To push a notification to a user, several conditions have to be met:

• a user has a meeting that has just finished or is ending soon

We don’t want to send users notifications about events that finished several hours ago or will start next week, obviously. So, in our code, we only look for events that end 20 minutes before and after the current time. To give you an example, if it’s 3:25 PM, our app will only check if a calendar event ends between 3:05 PM and 3:45 PM and will ignore any others.

• a user enters the beacon’s range at least 15 minutes before and hasn’t left since

This condition eliminates all the passers-by who accidentally entered into the beacons range. We assume that if someone stays in the beacon’s range for 15 minutes or more, they’re attending a meeting.

• there is an exit event

Most use cases of beacons work based on enter/exit events. You define the proximity zones of e.g. 5 meters and then you program specific actions to be performed when a user enters the range (enter event) or leaves it (exit event). In our case, we’re checking if anyone is leaving the range of our beacon placed in a conference room.

If all the conditions above are met and a user receives an exit event, that’s a clear sign this person has just left the meeting.

6. Display a notification

We use Android Native Method and display the feeback screen:

Conference room app's screen

7. Redirect to an email client

When the “send feedback” button is hit, we redirect a user to his/her default email client with a predetermined email.


sendButton.setOnClickListener({ val intent = Intent(Intent.ACTION_SENDTO) intent.type = "message/rfc822" intent.putExtra(Intent.EXTRA_EMAIL, "name@example.com") intent.data = Uri.parse("mailto:name@example.com") intent.putExtra(Intent.EXTRA_SUBJECT, "Your meeting has a new rating") if (!TextUtils.isEmpty(commentEditText.text)) { intent.putExtra(Intent.EXTRA_TEXT, "Overall score: " + overallRateBar.rating + "\nPunctuality: " + punctualityRateBar.rating + "\nAgenda: " + AgendaRateBar.rating + "\n Comment: " + commentEditText.text) } else { intent.putExtra(Intent.EXTRA_TEXT, "Overall score: " + overallRateBar.rating + "\nPunctuality: " + punctualityRateBar.rating + "\nAgenda: " + AgendaRateBar.rating) } startActivity(Intent.createChooser(intent, "Send mail...")) })

Because of the limitations of our hackday, we didn’t get to add the option of anonymizing the message user sends. But you can do it easily! If we had a few more hours, we would have also built a web dashboard that would be capable of gathering all this data and calculating average scores over time. It’s definitely a priority for next time!

8. Send a user back to the app and display the “thank you” message.

val intent = Intent(this, ThankYouActivity::class.java)
startActivity(intent)

Following these steps, we were able to build a working prototype of our app in one day! And it worked pretty well, even in our crazy office environment with thousands of beacons.

Some further inspiration

We know there are things we could improve in this app to make it even more reliable. Here are some ideas:

  • Our app doesn’t actually check which room you’re in. We only determine if you’re in a conference room or not. This could be easily changed with Cloud Attachments API. Your app could easily return the information about which particular room a user is in. It could also verify it against the room’s calendar to make sure you don’t get notifications for events you’re not involved in.

  • Our app sends feedback requests to the event organizer and there’s no point in them rating their own meetings, right? It’s a fairly simple fix! Just add one extra condition to the code and ignore the exit events if the person in question was an organizer.

  • To make the task easier, we had to assume that users have their @estimote.com account synced on their phones, otherwise we wouldn’t be able to fetch their events. It would be much more efficient to fetch the calendars of the conference rooms and compare the list of participants with the devices in range of particular beacons.

There are tons of use cases for conference rooms that should be fairly easy to build with a bit more time. Here are some of our ideas:

  • send a Slack notification to the organizer if there’s another meeting starting in X minutes

  • check if a room is occupied on a web dashboard or in an app

  • display, in an app, the meetings on deck for the room you’re in (in case you decide to have some focus time in a room without a reservation)

  • automatically ping people on Slack if they are late for a meeting (they’re not in the range of the respective beacon)

  • check where everyone is at a given time. Use our Indoor Location or Proximity SDK.

There are probably many, many more! Have you built something similar that you would like to share with the world? Or maybe you would like to build a similar use case and don’t know how? Let us know!

Crafted by Piotr Małek, Community Manager and Martyna Leniart, Android Developer.

Presence verification and security is more refined than ever with Estimote Secure Monitoring

$
0
0

In the early days of beacons, the software was written on top native scanning solutions built into iOS and Android. One of the first questions developers would ask about them were: is this secure? How do we make sure the user actually is next to the beacon? How do we make a deployment bulletproof? We designed our own tools that have been tested in the field by our largest customers. But we’ve come a long way since then. Now the backbone of our software consists of custom proximity technologies like Estimote Monitoring and the Proximity SDK. Our Proximity SDK’s hyper reliability, unlimited zones, and software defined range make it our core offering! And with this more sophisticated product comes the need for more sophisticated security and presence verification. That’s why today, we’re pleased to release Estimote Secure Monitoring.

enter image description here

So, how does it work?

Imagine you’ve built a beacon-based payment system for your train or bus, where you can automatically charge riders that are in the cab. Without security, it’s possible for somebody clever to spoof a train beacon, put it in our own Estimote lobby, and rack up fare charges every time you enter the Estimote office. Or think of it this way: automatic doors that open for you when you’re near and have a valid pass in the app. Without security, some could spoof a beacon and make the app believe you’re near the gate when you’re not, and the gate would open for a random stranger.

You need to protect the system against being gamed! You don’t want anyone to be able to clone your beacons with a Bluetooth sniffer, and then cost your business money without ever leaving their couch. This is where Estimote Secure Monitoring (ESM) comes in.

enter image description here

An Estimote Beacon with ESM broadcasts an encrypted sequence of bytes along with a value called the Shared Secret. Shared Secret is assigned to your beacon in Estimote Cloud and the Proximity SDK uses Estimote Cloud to resolve the encrypted broadcast. Additionally, the sequence of bytes is shuffled in constant intervals, around 10 minutes by default. We call that “packet rotation.” All of this means that only your app is able to decode what the beacon broadcasts and that the user needs to be physically present near the beacon. Even if they managed to clone it, the clone would become useless in a matter of mere minutes.

enter image description here

To enable Estimote Secure Monitoring, just follow the instructions here.

If you have any doubts or questions about ESM, share them on our forums, or feel free to drop us an email!

Proximity reinvented - launching the next-gen Proximity beacons

$
0
0

We are thrilled to announce our launch of the next generation in our core product - the world’s best Proximity beacons. They are the final element to our proximity stack which we have continued to innovate and completely reinvent over the last two years.

OS for the physical world

At Estimote, we create an Operating System for the physical world. A software environment where developers can programmatically access the location of people and objects. Then, they can use this data to build next-generation contextual apps for smart spaces such as offices, transport centers, and hospitals.

The key for every OS is reliable user input and a consistent user experience. For computer software, it was the keyboard and mouse position; for phones, it was multi-touch. For real-world software, it’s precise user location.

We spent the last 2 years perfecting just that - reliable enter/exits for a single region represented by a Bluetooth beacon.

When Apple announced Core Location API with its iBeacon implementation, and Google followed up with Nearby API, both were designed for a generic Bluetooth device acting as a beacon.

At Estimote, we took the full-stack approach. We designed our own beacon hardware/firmware as well as the Proximity SDK iOS/Androidto be optimized specifically for reliable enter/exit events. We also integrated it with Cloud APIs to make it easy to scale and secure beacon deployments.

New Proximity Beacons

We launched our original Proximity beacons four years ago. We were the first ever company to ship iBeacon-compatible devices. We didn’t expect them to become the world’s most popular beacons for developers, and power the largest commercial deployments around!

Today, we are announcing the new generation of Proximity Beacons. They come with many hardware and software innovations, and are available to buy right away.

Buy 4 Proximity Beacons for $99
We ship daily to any place in the world

Read below the long list of all the hardware and software improvements.

Long-lasting batteries
The new Proximity beacon have twice as much battery capacity. We switched to two AA batteries that last 3 years on default settings, or 2 years for a 100ms iBeacon packet. When configured to advertise every 2000ms, they can last more than 7 years.

Bluetooth 5 chip
The new Bluetooth 5 spec is not fully adopted across mobile devices yet, but our beacons are ready for the update. The SoC we use is Bluetooth 5 compliant and can be upgraded over-the-air as soon as major phone manufacturers implement it as part of their Bluetooth stack.

Planet-friendly enclosure
New Proximity beacons have the same durable silicone enclosure made from silica (sand), which is non-toxic and 100% recyclable. It’s great for indoor and outdoor use, able to survive temperatures from -30°C to +55°C and is water-resistant (equivalent to IP67).

Improved adhesive
Each beacon has nanotechnology smart tape that can be repositioned for the first 40 minutes and will stick forever after that. For unusual surfaces such as an old brick wall or wood, there is a small mounting hole on the back. Simply use a screw or nail on the wall, and the beacon enclosure will fit over it perfectly.

Other hardware upgrades in the new Proximity Beacons

  • New 3-axis accelerometer supporting flip-to-sleep mode during prototyping
  • Light Sensor detecting Bright/Dark environment
  • Temperature sensing capability
  • RGB-color LED for configuration feedback and AR VLC
  • New PCB IFA antenna tuned for S-Band for performance

Each beacon is a little computer with a 32-bit chip. It runs embedded software called firmware. New beacons have the latest version supporting a bunch of new features - you can read more below.

Reliable Proximity packets
All the beacons we manufacture are configured by default to use a set of our own Bluetooth advertising packets. These custom packets (Estimote Monitoring schema), alongside Proximity SDK, are optimized for the best enter/exit reliability.

Multiple packets support
Customers who optimise more for interoperability rather than reliability can enable other popular packets such as iBeacon or Eddystone. New Proximity beacons can broadcast all these packets at the same time, if that’s what you want to do. Keep in mind, this will drain a bit more battery.

Secure Estimote Monitoring
To prevent attackers from piggybacking on your beacons and to comply with GDPR regulations, our intelligent firmware rotates and encrypts advertised data. This is patented technology and only provisioned mobile SDKs with Cloud access can decode it.

Cached Estimote Monitoring
For scenarios when users’ phones don’t have a constant Internet connection, it is possible for the mobile app to cache enough data to keep monitoring for beacon interactions while being offline for some time.

Proximity SDK
In the past, we used to have one giant SDK for both proximity and fleet management. We have decided to separate Proximity SDK and have written it from scratch for iOS and Android.

The new SDK is optimized for the best reliability and ease-of-use. It leverages our experience with hundreds of deployments and, thanks to signal filtering, allows you to more accurately detect the users the moment they interact with your beacon. With the software-defined range, you can set when the event is triggered in code instead of relying on connecting to a beacon and tweaking the broadcasting settings.

Fleet Management SDK
We do still innovate with the previous SDK; its main objective now is remote fleet management. Use it for any apps that will authenticate and connect to beacons, change their settings or upgrade the firmware. You can also use this SDK for collecting telemetry data such as battery status.

App Templates
To get started with our SDK, simply log in to our Cloud and go to Apps. Once you select the preferred language (Obj-C/Swift or Java/Kotlin) a ready-made app with our SDK, API token, and beacon identifiers will be downloaded as a ZIP file. Just compile it to have your first proximity app.

Demo Apps
To experience both SDKs in action, download Estimote app from the Apple App Store or Google Play. Try Proximity demo to experience improved reliability. Under the “Configuration” tab with the radar icon, you can still connect and change beacon settings. All of this can be re-created inside your very own app using our SDKs.

Development Mode
All manufactured beacons are automatically assigned to a Cloud account where we store a copy of their configuration. Previously, only the beacon owners (typically the person who purchased them) were allowed to change any settings. New Proximity beacons are shipped in “Development mode” meaning that a team of developers can freely play with them and tweak any settings. However, only the true owner can “transfer their ownership” or secure them for the final deployment.

Cloud Attachments
Historically, beacons broadcasted static identifiers. Many of our customers used different database architectures to map these identifiers into contextual data served to nearby users. In order to simplify app development, we have therefore introduced the new Cloud Attachments API. Each beacon that we store in the cloud can also store a JSON object. The object can be easily accessed via the mobile API that is part of our SDK, so you can keep your tags, location data, descriptions or any other data assigned to beacons there.

To get started order your dev kit today!

Buy 4 Proximity Beacons for $99
We ship daily to any place in the world


You can always shoot us a note to contact@estimote.com if you have any questions or if you are interested in bulk quantities.

Get started with low-power routed BLE mesh using beacons

$
0
0

Last week Bluetooth SIG — the organization helping push forward the most popular wireless connectivity technology — announced Bluetooth Mesh, a completely new wireless communication standard built on top of their existing stack.

Bluetooth Mesh, a protocol that the industry has been working on for a couple of years, leverages the existing Bluetooth 4.x/5.0 Low Energy stack and associated advertising and GATT services to provide reliable and secure connectivity between hundreds or even thousands of BLE-enabled nodes.

We are extremely excited about the approved standard. It will open a new frontier of innovative real world applications that we have always pushed towards.

Routed mesh network

Our own implementation of low-power BLE mesh

In fact, we’ve been working on our own low-power BLE mesh implementation for a couple of years now. That’s because at Estimote, we’re in the business of building highly scalable location intelligence software often running on thousands of wireless nodes. Deploying and maintaining these beacon networks at scale has to be time, labor, and cost efficient.

We were never excited about gateways or other powered devices to sync with beacons. When deployed in thousands of locations, gateways massively impact ROI and introduce deployment complexity.

“Talk is cheap. Listening is expensive”

That’s why last year we released our own — and the world’s first — low-power BLE mesh implementation. With just a firmware update, it enabled our customers to group Estimote beacons into networks that can sync settings or even upgrade firmware from one beacon to another.

One of our engineers likes to say, “Beacons are similar to people: talk is cheap but listening is expensive.” A Bluetooth device constantly advertising some data doesn’t experience much of a hit to battery life, but if it has to constantly “listen” by scanning the network so that it can accept and repeat messages, the battery drains much faster.

But for applications where we need to occasionally remotely update beacon settings, perform auto-mapping with UWB, collect sensor data or flash new firmware, high latency is not that important. In these cases it’s acceptable if new settings take a minute or so to propagate within the entire beacon network.

New firmware with routed BLE mesh

What’s important for us is not only how intelligent a beacon network can be, but also how power efficient it is. That’s why we are pleased to introduce today another firmware update, which brings both intelligent routing and messages to our mesh architecture.

Routed mesh network

Initially, our low-power mesh network could only use a flooding protocol, meaning that every single device in the mesh network was involved in changing the settings. A change meant for just 2 devices placed close to each other needed to be processed by hundreds of devices in the network. Obviously, this caused huge losses of performance and energy. On top of that, each of those devices had the same settings as a result.

Addressing and mesh messages

Thanks to addressing, a single message can contain a piece of data dedicated for a particular device. Only the minimum number of required devices will consume the message using just a portion of their power. For Remote Fleet Management, this means energy saving and, just as importantly, that different configurations of a single setting can be used for different devices in the network. Constraints introduced by the first version of the low-power mesh network disappear.

Estimote mesh addressing

Routed mesh

Our routing protocol allows you to send messages over a precisely defined and optimized path consisting of particular devices. Simple routing is not efficient enough from a power efficiency perspective, though. It lets you optimize the time of propagation, but a truly smart low-power network needs to go further — it should consider physical distance, the type of devices, their battery levels, and much more to properly balance the traffic. That is the reason we decided to take advantage of Estimote Cloud in calculating the optimal routing tables.

Our commitment to implement standardized mesh

Both addressing and routing are exactly these kinds of improvements, ones that you don’t need to think about. In practice, it means you can now define settings for each device independently. They will be applied to your network with a single message propagated over selected devices. In the future it will enable us to introduce much more advanced interactions.

Since Bluetooth SIG Mesh standard is official now and vendors like Nordic have already published new soft-devices for their chips, we are committing to implement a “friend mode” feature of the standardized mesh, to ensure our beacons will be compatible with other Bluetooth SIG mesh devices. Our nodes will continue to use our low-power implementation, to guarantee the highest possible power efficiency.

Get started with BLE mesh using beacons today

You can try the routed low-power mesh right away, just follow the tutorial we’ve prepared and you’ll be able to make a blinking beacon matrix as above in minutes.

To use these new mesh capabilities just update your beacons to firmware 4.13.0 (or later). To test straight away go to Cloud, set two different majors for two beacons in the same mesh, and connect to just one of the meshed beacons. You will see data propagating very quickly and you’ll be able to see that both have that new major applied. If your devices are already in a mesh, you need to update just one device and the others will update automatically.

Marcin Klimek, Product Manager at Estimote

Rafał Ociepa, Community Manager at Estimote


Estimote Private Cloud for enterprise-grade deployments

$
0
0

In 2014 we launched Estimote Cloud. Initially, it was a web dashboard where developers could visually manage the beacons they owned. Then, we introduced Fleet Management API which allowed developers to programmatically configure their beacons from their own code and apps, including any backend systems, e.g. CMS. This change significantly shortened the configuration and deployment phase. To protect our clients’ beacon networks we added cloud-based security authentication and UUID rotation, preventing unauthorized access and piggybacking on your beacon infrastructure. Later on, we added Analytics API, giving our customers the capability to measure the engagement of their users based on interactions with Estimote beacons and places they were installed in.

Same software, your isolated infrastructure

Today, our Cloud Services are used by a vibrant community of more than 100,000 developers, generating billions of requests to our servers. In the last 18 months, the Estimote Cloud infrastructure gained traction and has powered some of the largest commercial beacon deployments by Fortune 500 companies. The core experiences of those solutions rely on our integrated firmware, SDK and cloud services. Naturally, it wouldn’t be possible if we didn’t provide enterprise-level trust, control, and scalability.

To meet those growing requirements we’re introducing Estimote Private Cloud, which is designated for the most demanding applications.

Estimote Private Cloud

Beacon Containers

With Estimote Private Cloud, you have more control over your data and this part of your business. Since we use Docker Containers it can be run in a completely isolated environment in any place of the world, and at the same time can be scaled and updated with ease (e.g. using AWS or Azure services). You’ll still have access to the full functionality of Estimote Cloud Services and you’ll continue to have it in the future — all of the updates to our standard Cloud will be applied to the Private Cloud as well. Estimote Private Cloud helps you to ensure data compliance for your service infrastructure, and gives you absolute access to resources which are not shared with our other customers. The computational power of instances that run your private Estimote Cloud is entirely up to you and you can adapt it to your needs on the fly. Our iOS and Android mobile SDKs can be easily configured to point to your private beacon infrastructure allowing you to seamlessly move between Estimote Cloud and your own Private Cloud with no interruptions.

Setup your own Private Cloud

If you would like to integrate Estimote Private Cloud, we can setup it for you in a matter of days. We’ll give you the full assistance of our team in moving your data to a private infrastructure. After all, you’re also getting premium support from our side as part of the complete package!

To get started with Estimote Private Cloud, simply contact our Sales Team.

Contact Sales Team

Estimote Monitoring 2.0 with even better accuracy and custom, software-defined proximity zones

$
0
0

Here at Estimote, we take two approaches to physical-world context:

  • (Indoor) Location and
  • Proximity

Indoor location utilizes signals from multiple beacons and provides accurate coordinates. Proximity is relatively simple, and gives basic information such as “somewhere near beacon X.” The main advantage of a proximity solution is its simplicity to set up - you just tag a certain area with a beacon and detect whether you are within the beacon’s range. The majority of apps relying on the proximity method use something quite naive, such as "Can I hear the signal from the beacon or not?” A naive approach due to beacon physics usually leads to poor results, with disappointing reliability.

With Estimote Monitoring, we are applying complex math and models on top of a ton of research we’ve poured into how the iOS Bluetooth stack works, to improve reliability of enter/exit reporting. Today we are releasing a significant update to Estimote Monitoring, with more configuration flexibility and better accuracy.

What is Estimote Monitoring 2.0?

Estimote Monitoring 2.0 is an update to Estimote Monitoring 1.1, which means it retains all the advantages over CoreLocation Monitoring that you get from the previous versions:

  • Events will happen closer to your expected distance
  • You will get even more reliable enter/exits
  • You will get exits without a fixed time threshold
  • You are no longer limited to monitoring only for 20 regions

On top of all that, it adds:

  • More accurate enter/exit events
  • A software defined range

We made it even more precise

By leveraging our experience with Indoor Location, we managed to achieve the perfect compound of filtering data and ideal packet combination. This mixture ensures both precision of classification inside the beacon’s range, and stability of reported proximity.

We regularly deal with all the sensor data (including RSSI values) that we could obtain from a phone. To understand and use this data, we need to filter out measurement errors and perform signal processing. Using our know-how, we can find the perfect filter types and parameters to make sure the experience that you build on top of our SDK handles both dynamic and static cases equally well.

With this release, we focused on improving the filtering parameters so now we are more precise with detecting the exact spot of an “enter” event.

No more pre-defined zones

Context is all about micro-location, thus some applications require the range to be narrowed. Instead of connecting to a beacon and setting different tx powers or even physically shielding the beacon, you could utilize any desired range by using our Estimote Monitoring.

With a software defined range, you are no longer restricted to trigger one action per beacon. Imagine hailing a ride-share while the car is far away, having a screen to accept the fare pop-up as the cars pulls next to you, and then getting the option to rate the ride once you are safely inside. You could not achieve this without Estimote Monitoring.

With the previous version of Estimote Monitoring, we had predefined 3 distances where events could happen. With this release, we give you the ability to fully customize those distances. Now you could either use a very close distance for an experience similar to NFC, or very long distances to maximize the area coverage of your beacon (of course within the maximum range allotted for your beacon.)

We would like to hear from YOU!

We encourage you to use Estimote Monitoring to build on top of it and delight your users with predictable and repeatable experiences matching their expectations.

Estimote Monitoring 2.0 is available in our iOS SDK. Give it a try and share your thoughts on our forums or drop us an email.

Parked car detection made easy — magnetometer support in Estimote Beacons

$
0
0

We think of Estimote Beacons as the building blocks of physical location intelligence. We put a lot of stock in sensors that collect relevant ambient information for their surroundings. These sensors are the cornerstones of data driven decisions for intelligent indoor spaces. One of these sensors is a magnetometer, which enables some very interesting use cases.

Diagram

On one level, having a magnetometer means you can easily check if the beacon is installed properly — many sources of interference will also impact the magnetic field around the beacon. You can leverage this sensor for a smoother, more reliable deployment. In addition, you can also use the ambient magnetic fields to record a “fingerprint” of the location, making sure it can’t be spoofed, and adding another layer of sensors to your intelligent location arsenal.

For a while now, Estimote Location Beacons have had magnetometers installed. We’ve included magnetometer readings in our Estimote Telemetry packet due to popular demand, but we haven’t really put that feature in the spotlight before. It’s time to change that.

What is a magnetometer?

A magnetometer is a device that can measure changes in the magnetic field. It can be easily used as magnetic metal detector. The appearance of a chunk of magnetic material nearby is one of the most common reasons for changes in the magnetic field. Why a “magnetic metal,” and not just any metal, like with a metal detector? Magnetometers are different from metal detectors, since the latter can detect all metals — while magnetometers can only detect a special group of metals (i.e. magnetic metals) such as iron, nickel, cobalt, or their alloys, like steel.

Some of the larger-scale applications for magnetometers include searching for sunken ships, submarines, or underground structures — useful for those of you with archeological inclinations! Most of us probably won’t be diving for doubloons, though. If you set out north to watch the northern lights, though, magnetometers can be used to detect indications of auroral activity before the actual light show begins. In spacecraft, one of the more common uses for magnetometers is altitude sensing. Closer to home, magnetometers are also sometimes used in airports to scan for concealed weapons.

A big difference between a magnetometer and a metal detector is the scope: detectors typically have a shorter range, while magnetometers can detect large magnetic objects from several dozen feet away. The question “What’s a large object made of iron or steel that I might want to detect from quite far away?” has at least one pretty obvious answer.

Real-world uses for magnetometers

There are several, but one of the more interesting ones is very relevant in today’s world. Magnetometers are commonly used to detect the presence of cars. Some of the specific applications here include counting free spaces in car parks, measuring traffic loads by counting the number of cars passing on a given fragment of the road, creating adaptive traffic lights, and more.

Let’s imagine a multi-floor car park with hundreds of parking spaces. When you’re desperately trying to find a free space to make it in time for the movie, wouldn’t it be cool to be able to quickly find a spot? If you have beacons placed in each of the parking spaces, they can detect if a car is occupying that space or not, and send that data to a server that can then feed your phone (or the digital display in the parking lot) data on how many free spaces there are, and where to find them.

Detect car

An added bonus? No cables, no complex installation procedures, and no need for multiple “gateways” for the beacons to send their data to the web. All it takes is one person with a phone.

How can you start using it?

With Estimote beacons, you get this type of sensor right in the palm of your hand (or on your wall, as the case may be). We know you can use it to make amazing things.

Location Beacon’s magnetometers provide you with raw readings from the sensor. You can use our iOS and Android SDKs (starting with version 4.5 and 1.0.0, respectively) to get a reading from the magnetometer in the Estimote Telemetry packet. This will provide you with the values for x, y, and z axis, corresponding to three-dimensional coordinates. For best results, you should measure the values on site, where you want to deploy the beacon (bear in mind that the results may be impacted by magnetic objects in the vicinity — even your car on the other side of the wall can change the readings).

In essence, though, this means you only need to have an app you build for this purpose running on a device somewhere in the beacon’s range to know exactly when — and for how long — a car has been in the vicinity of the beacon. That said, the beacons aren’t calibrated — don’t use them as compasses and make sure you offset each beacon’s readings individually.

Here’s how you can read that data using our Android SDK

And our iOS SDK

Grab yourself a couple of Location Beacons — and now you’re ready to go out and find some buried treasure (provided they’re big enough)!

Buy Long Range Location Beacons

Rafał Ociepa, Community Manager at Estimote

Marcin Klimek, Product Manager at Estimote

Estimote launching precise indoor positioning for robots & AGVs using UWB beacons

$
0
0

In the beginning, our hardware and software were capable of just broadcasting and understanding iBeacon packets. But from the very start we’ve had a much broader vision and wanted to create an operating system for the physical world. One of the first steps was to release the Indoor SDK for iOS, which created a whole new area of possibilities for defining location based actions. Then we used all of our know-how in order to add the next brick to the foundation of our physical world OS, by creating the Android version of the Indoor SDK.

However, the physical world isn’t only for people. In industrial applications, robots start to play a major role and consequently they need to navigate and understand the physical world that surrounds them as well.


Estimote UWB beacons robots warehouse

Locating people and robots

That’s why we are taking the next step and releasing an SDK for robotics. The SDK uses the same robust Location Beacons with UWB that we began shipping in May 2017 and provides you with precise, real-time positioning. A combination of Bluetooth and UWB signal measurements is used to precisely calculate the 2D coordinates inside a location.
Estimote UWB beacons robot navigation

It is fully integrated with our current stack. That means that you’ll be able to see the robot’s position in our Cloud, request it using our Cloud API, or even add robotic integrations to your mobile apps using iOS and Android Indoor SDKs. Using the SDK, it will take only a few hours to create an app for managing an entire fleet of your robots as the mobile SDKs will give you full information about their position. There are no limits in terms of the size of the location, or the number of robots that are simultaneously using the Estimote beacon infrastructure to position themselves. The robots will also be able to know one another’s position thanks to their connection to Estimote Cloud - or using Estimote Mesh when you are offline.


Estimote Cloud people and robots

Raspberry + UWB beacons = Robot positioning in minutes

Indoor for robotics works almost the same way as Indoor for mobile phones, but instead of a phone there is a ROS (Robot Operating System) compatible hardware like Raspberry Pi. All you need to get started is at least two Location beacon with UWB devkits. Thanks to automapping, creating a map of the location that your robots navigate within takes only a couple of minutes, instead of hours when done manually. This saves you a lot of time, which you can use to create your solution. If you’ve already created a location using Location beacons with UWB, you won’t need to change or perform any other actions to prepare it for Indoor SDK for robotics.

The main part of this release is a ROS package which you can find here. You can easily integrate it with your ROS based robotic solution. You need to connect one of the beacons with your hardware solution using the beacon GPIO pins. They are used both to transfer the data and to power the beacon from your robot, as the beacon will require more energy to constantly collect, process, and transfer data to your hardware.


Estimote UWB beacon RaspberryPi robot

Since using the UWB module consumes much more power than broadcasting Bluetooth packets, we have also developed algorithms that will help optimize energy efficiency in the beacons that you place on the walls.

How do I get started?

If you are into robotics or if you want to know how to start your first project and integrate it with the Estimote stack, we encourage you to read this detailed technical post on how Estimote Robotics SDK works. There you will find a step by step tutorial describing how to set up positioning for your robot. You can purchase the Location beacons with UWB here:

Buy Location Beacons with UWB

If you have any questions don’t hesitate to contact our team. We will try to answer all your robotics related questions.
Contact us

Launching the most reliable, configuration‑less proximity detection

$
0
0

A few weeks ago we released Estimote Monitoring 2.0, our own API for proximity-based enter/exit events. This new version means even better accuracy, and software-defined zones. Today, we’re making Estimote Monitoring enabled by default on Estimote Beacons, greatly simplifying the process of building proximity-based apps.

Before, when you received your beacons, you had to tweak their broadcasting power to the desired range. Many developers would also build their own RSSI filters to further fine-tune where the proximity events should trigger. Planning for scale meant even more configuration — assigning common UUID/major/minor values to group the beacons into at most 20 regions.

Now, you get your beacons with Estimote Monitoring enabled by default. You can start building right away with a software-defined range, ability to monitor for each beacon individually (while still being able to group them using software), and Indoor-Location-quality RSSI filters.

Software-defined range

Previously, to trigger enter/exit events at 5 meters away from the beacon, you had to adjust the broadcasting power. To trigger events at a different distance, you had to reconfigure the beacon.

And then, tweaking the physical range only gives you a limited set of options. For example, -40 dBm = 0.5 m range, -20 dBm = 5 m range. If you wanted your enter event to trigger at 2 meters, that meant building your own RSSI filters.

With Estimote Monitoring enabled by default, you don’t need to do any configuration. You can adjust the range of the enter events by changing one line of code. And since the range is “virtual”, you can even have multiple enter/exit zones defined for each beacon.

Better accuracy & reliability, built-in

One of the common tasks when building proximity into an app is fine-tuning your beacon-handling code for the best reliability and user experience. For example, if the signal temporarily gets obstructed and a beacon disappears from scanning results, only to re-appear a few seconds later, you would need to write your own debouncer to handle that.

Enabling Estimote Monitoring by default takes most of it away. It borrows from our Indoor Location algorithms and know-how, so you don’t need to spend time building your own filtering logic. It also goes beyond just the software/SDK layer. At Estimote, we optimize both the hardware (≈ antenna) and firmware (≈ broadcasting) to make proximity work great out-of-the-box.

We’re tracking numerous metrics to measure our performance, and we believe “recall” is the most important one.

A perfect recall score means that you get an “enter” event immediately when you enter proximity of a beacon, and you get no false “exit” events as long as you remain in the proximity. Every second you’re in range, but the API is saying you’re outside range, lowers the recall.

By using Estimote Monitoring, we’ve improved the recall score almost 3 times over the previous configuration.

Per-beacon monitoring, with no limits

Designing your iOS app with scalability in mind previously meant working with the 20-region limit. You had to figure out how to structure your deployment, and physically assign a common UUID/major/minor to multiple beacons to form the regions. If your needs changed and you wanted different groups, it required re-configuring the beacons.

Estimote Monitoring is capable of per-beacon enter/exit detection, with no limits. Having it enabled by default means you can immediately put up all the beacons you have, and group and regroup them any time you want, in software — for example, by tagging the beacons in Estimote Cloud, and accessing those tags in your own app via our RESTful API. More flexibility, less configuration costs.

Try it!

All of this is available with Proximity Beacons out-of-the-box now. Since Estimote Monitoring builds on top of the same technologies that power Estimote Indoor Location, it works by default for Location Beacons, too.

If you are about to order a dev kit, now is a good time to try it out!

Buy Proximity Beacons

If you already have beacons, here’s how to enable Estimote Monitoring and experience all of the glory. Then you can kick back, and enjoy the time you just saved!

Viewing all 184 articles
Browse latest View live