1
votes

I'm studying beacon these days and have a question about it.
In my javascript advertising ibeacon program, I can set measurePower value like below :

var Bleacon = require('bleacon');

var uuid = 'E2C56DB5-DFFB-48D2-B060-D0F5A71096E0';
var major = 1;
var minor = 2;
var measuredPower = -50;

console.log('starting advertising ...');
Bleacon.startAdvertising(uuid, major, minor, measuredPower);

When I start this program, the ibeacon is detected in iOS 'Locate Beacon' application.

But the rssi value appearing in this application is different with the value that I set.

This is my thought : var measuredPower = -50; is the rssi value that I would get if I measure beacon rssi value staying 1 meter away from beacon transmitter.

But even in 1 meter away from it, the value doesn't seem close...

Could you explain it, please?

1

1 Answers

0
votes

The measuredPower field is set on the beacon during its initial configuration, then it is transmitted by the beacon in each packet. It is supposed to be set to the RSSI value a receiving device measures at one meter away. By comparing the measuredPower value received in the transmission to the actual RSSI the receiver measures, the receiver can tell if the beacon is more or less than one meter away, and even roughly estimate distance using a formula.

The fact that you are seeing significantly different values of RSSI at one meter probably means the -50 measuredPower field for your transmitter is incorrect. You can do a "calibration" with the Locate app, which will average RSSI measurements at one meter over about 30 seconds, then you can use this value in your code.

A few things to note:

  • If you change the transmission power of your beacon (if the transmitter allows that), you will need to recalibrate and set measuredPower

  • Each device type will measure RSSI slightly differently, due to antenna gain differences. A later model iPhone is typically used as a standard reference.