Intro to Eddystone

Eddystone is a Bluetooth advertising protocol (“packet”) designed by Google. You can learn more about it on github.com/google/eddystone.

Eddystone specification actually defines a few types of packets:

  • Eddystone-UID, an opaque namespace + instance identifier
    • this is similar to iBeacon’s UUID + major + minor, or Estimote’s device identifier
  • Eddystone-EID, similar to UID, but “encrypted”, so that only authorized apps and services can make use of it
  • Eddystone-URL, a short URL encoded directly into the packet
  • Eddystone-TLM, telemetry data such as battery voltage, uptime, etc.

These packets can be discovered with any BLE APIs, e.g., Core Bluetooth on iOS, or android.bluetooth.le on Android. You can also use them with:

  • Google’s Nearby Notifications, which allows Android devices to show certain notifications when in range of beacons; these notifications can lead to:
    • a web page
    • a specific action in your app (via an app intent)
    • Google Play Store, if the user doesn’t have the app installed
  • Google’s Nearby Messages API, which you can integrate into your iOS or Android app, and receive “messages” when you enter and exit range of beacons
  • Google’s Places API, to improve the accuracy of detecting indoor places

What’s ahead (aka Table of Contents)

Eddystone vs iBeacon vs Estimote Proximity

A header phrased like that isn’t entirely correct: remember that iBeacon and Eddystone are only advertising protocols. We actually want to compare the APIs and services, e.g., Core Location to Nearby to Estimote Proximity.

Estimote Proximity Core Location Nearby
Messages API
Nearby
Notifications
packets Estimote Monitoring
Estimote Telemetry
iBeacon Eddystone
UID/EID + TLM
Eddystone
UID/EID/URL + TLM
platforms iOS and Android iOS iOS and Android Android
requires an installed app yes yes yes no
triggers callback to ProximityObserver,
or PendingIntent
callback to CLLocationManager callback to MessagesClient,
or PendingIntent
notification to a URL, app intent,
or Google Play Store
trigger range configurable via an API parameter unspecified
(anywhere in range)
unspecified
(anywhere in range)
unspecified
(anywhere in range)
cloud services Estimote Cloud:
- attachments
- analytics
- beacon health
- Google's cloud:
- attachments
- beacon health
Google's cloud:
- notifications
- beacon health
security yes - yes yes

How to get started with Nearby

Dive deeper into Eddystone

  • It’s impossible to talk about Eddystone and not mention the Physical Web. It’s an idea that you should be able to just walk up to a smart object or place, and be able to immediately interact with it or learn more about it via a web page—without the need for any app.

    Learn more ⇒ Physical Web

  • To take advantage of some of the Nearby features, you may need to register your beacons with the Google’s beacon cloud, also known as Google Proximity Beacon API.

    Learn more ⇒ Google’s Beacon API

  • Part of the Eddystone specification is also an Eddystone GATT Configuration Service. It’s a standardized GATT service that you can use to configure compatible beacons to broadcast Eddystone packets, in a vendor-agnostic way. Eddystone Configuration Service is used by Google’s own Beacon Tools app.

    Learn more ⇒ Eddystone Config Service

  • Eddystone also comes with a specification for secure advertising: Eddystone-EID. With Eddystone-EID, only authorized apps and services can make use of your beacons.

    Learn more ⇒ Eddystone-EID

Configure Estimote Beacons to broadcast Eddystone

Every Estimote Beacon ever shipped supports Eddystone UID, URL, and TLM packets:

  • first-generation Estimote Beacons (hardware revision “D”)
    • need to be on firmware 3.1.1 or later
    • use the Estimote iOS app or Estimote Android app to set their Broadcasting Scheme to either Eddystone-UID or Eddystone-URL
    • Eddystone-TLM frame will be automatically broadcast between the UID or URL broadcasts
  • Estimote Proximity and Location Beacons
    • support Eddystone since the very beginning, no firmware upgrade required
    • use the Estimote apps or Estimote Cloud to enable and configure UID, URL, and TLM packets

Eddystone-EID and Eddystone Configuration Service are only supported by Location Beacons. You can read how to enable them in their respective articles.