For the transmission power, are we allowed to use any number in the range [-30, 4] or only the values specified in table 37 in the product specification? When we select one of these values, what value do we use for the tx level in the advertising value? It isn't going to be the same value, is it? I'm confused, because according to my measurements with nRF 51822 Beacon kit, tx power at one meter is -54, which is clearly not in the aforementioned range.
If you look in the documentation, this should be pretty clear. Only the values mentioned there is allowed.
The TX power is a setting for the radio to set its transmitting strength. Higher values…
Okay, I was not aware of you using any manufacturer specific data at all, so please mention this in your question next time. Is this the iBeacon profile? If so, then the TX power is indeed included as…
Well, I guess my confusion arises from the advertising message having two different tx power values. One in the manufacturer data (In android I parse the manufacturer data to retrieve this, and actually…
The TX power is a setting for the radio to set its transmitting strength. Higher values amplify the signal strength, but also increase power usage. The values you are measuring are received signal strength in dBm, which is based on the distance between the devices, the transmitting power of the advertiser, and the sensitivity of the peer. So while not entirely unrelated, these two values will be vastly different and should not be compared as such.
The TX Power AD field should be set to the transmitting power of your advertiser, so either of the allowed values for sd_ble_gap_tx_power_set().
Well, I guess my confusion arises from the advertising message having two different tx power values. One in the manufacturer data (In android I parse the manufacturer data to retrieve this, and actually calibrate the beacons with that by doing measurements at 1 meter), and another one, which is level above that (that I get by scanRecord.getTxPowerLevel()). The first one is what I use for distance calculations, with the second one I do nothing, it actually isn't even set for default beacons.
Could you tell me if the following is correct? If I change the beacon's transmission power on the fly using sd_ble_gap_tx_power_set(), I should set the second tx power level in the advertising message to the same value by doing advdata.p_tx_power_level = &tx_power_level. The tx power value in the manufacturer data still needs to be figured out with measurements, and when I know what tx power corresponds to what RSSI value at 1 meter for my receiver, then I can include that in the manufacturer data.