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().
Thanks very much for your answer Ulrich. Yes, I'm using the iBeacon format now. So, semantically the tx power which is the last byte of manufacturer data and the standard AD type tx power are not the same, right? Because the tx power in the iBeacon format is determined with measurements and can be any value (indeed the default value with nordic beacons was -69 db), whereas the standard AD type can be set only to the specified values that are in the range [-30,4]. Or is it that they're semantically the same, but iBeacon chose to use this format to save space (1 instead of 3).