Accessing the accelerometer data

Hello again,

This time i am going to start with some details.

  • The way i use them, beacons are attached to moving objects.
  • Recievers are raspberry pi’s
  • I am using NodeJs (no not using bleacon or noble).
  • Decided to build my own BLE scanner module from scratch. I get the data using hcidump -raw

To improve the accuracy of coordinates of the beacon, i decided to use the accelerometer data in Estimote’s beacons. So proximity beacons advertise two types of signals, that’s for sure.

  • First one is looking like this:
    04 3E 2A 02 01 00 01 4E 13 F6 4E 80 ED 1E 02 01 06 1A FF 4C 00 02 15 B9 40 7F 30 F5 F8 46 6E AF F9 25 55 6B 57 FE 6D 13 4E 4E F6 B6 B4 , and as i understand, this one transmits the UUID/major/minor and txPower of the beacon.

  • And the second one is looking like this:
    04 3E 17 02 01 00 01 79 1C B8 1A D3 5B 0B 02 01 06 07 FF 4C 00 10 02 0B 00 D9 , this one i don’t know what to use for.

So is there a way, i can access to data from the accelerometer? Do i have to connect to the beacon to get this specific data from it? Oh and i almost forgot, i am using proximity beacons

Here’s everything you need to know to parse the Telemetry packets (:

Note that in Proximity Beacons, the Telemetry packet is disabled by default. You can enable it with the Estimote app.

(Oh, also, you need our next-gen Proximity Beacons, i.e., hardware revision “G”, which we started shipping last summer. The previous model, “D”, doesn’t support Telemetry.)

1 Like

Thanks Piotr! Your answer was very helpful. My proximity beacons have hardware version D3.4 both. Yet when i use the Estimote iOS App (my personal fav btw) i can see if the beacon is moving or not. I suppose this has something to do with the accelerometer data. How does the iOS app do it ? My guess would be it has something to do with the second packet which is being advertised too often.

  • With beacons that has hardware version lower than G, do i need to connect the beacon to access the accelerometer data ?
  • Also is the accelerometer data limited with is “moving or not” or does it contain any information about x/y/z movements?

The answer lies in this:

With beacons that has hardware version lower than G, do i need to connect the beacon to access the accelerometer data ?

Yup, and that’s exactly how the iOS app is doing this with the D3.4 beacons. Here’s the exact method in the ESTBeaconConnection class:
http://estimote.github.io/iOS-SDK/Classes/ESTBeaconConnection.html#//api/name/motionState

An alternative would be to use Motion UUID, which makes the beacon broadcast a different iBeacon UUID when it’s moving:

Also is the accelerometer data limited with is “moving or not” or does it contain any information about x/y/z movements?

In D3.4, it’s “moving or not moving”. The newer beacons and the Telemetry packet include raw x/y/z acceleration measurements.