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 Messages API, which you can integrate into your iOS or Android app, and receive “messages” when you enter and exit range of beacons.

Important: It also used to be possible to use Eddystone with:

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
packets Estimote Monitoring
Estimote Telemetry
iBeacon Eddystone
UID/EID + TLM
platforms iOS and Android iOS iOS and Android
requires an installed app yes yes yes
triggers callback to ProximityObserver,
or PendingIntent
callback to CLLocationManager callback to MessagesClient,
or PendingIntent
trigger range configurable via an API parameter unspecified
(anywhere in range)
unspecified
(anywhere in range)
cloud services Estimote Cloud:
- attachments
- analytics
- beacon health
- Google's cloud:
- attachments
- beacon health
security yes - yes

How to get started with Nearby

Dive deeper into Eddystone

  • 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.

    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 select Estimote Beacons. You can read how to enable them in their respective articles.