Can i change the antenna power with software?
Do you mean the radio's transmit power?
You can set that by calling sd_ble_gap_tx_power_set().
For SoftDevice S132 V6.1.0, the API is:
/**@brief Set the radio's transmit power.
* @param[in] role The role to set the transmit power for, see @ref BLE_GAP_TX_POWER_ROLES for
* possible roles.
* @param[in] handle The handle parameter is interpreted depending on role:
* - If role is @ref BLE_GAP_TX_POWER_ROLE_CONN, this value is the specific connection handle.
* - If role is @ref BLE_GAP_TX_POWER_ROLE_ADV, the advertising set identified with the advertising handle,
* will use the specified transmit power, and include it in the advertising packet headers if
* @ref ble_gap_adv_properties_t::include_tx_power set.
* - For all other roles handle is ignored.
* @param[in] tx_power Radio transmit power in dBm (see note for accepted values).
* @note Supported tx_power values: -40dBm, -20dBm, -16dBm, -12dBm, -8dBm, -4dBm, 0dBm, +3dBm and +4dBm.
* @note The initiator will have the same transmit power as the scanner.
* @note When a connection is created it will inherit the transmit power from the initiator or
* advertiser leading to the connection.
* @retval ::NRF_SUCCESS Successfully changed the transmit power.
* @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
* @retval ::BLE_ERROR_INVALID_ADV_HANDLE Advertising handle not found.
* @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
SVCALL(SD_BLE_GAP_TX_POWER_SET, uint32_t, sd_ble_gap_tx_power_set(uint8_t role, uint16_t handle, int8_t tx_power));
Thanks for your answer. Yes i mean the radio's transmit power. i found that code block. But i don't understand how can i change it.
Are you advertising? Or scanning?
If you are advertising, you can take a look at the examples\ble_peripheral\ble_app_proximity example.
Here, you can see how the API is used:
sd_ble_gap_tx_power_set(BLE_GAP_TX_POWER_ROLE_ADV, m_advertising.adv_handle, TX_POWER_LEVEL);
The first input is BLE_GAP_TX_POWER_ROLE_ADV, which is one of three options from BLE_GAP_TX_POWER_ROLES, as you can read here:
/**@brief GAP TX Power roles.
BLE_GAP_TX_POWER_ROLE_ADV = 1, /**< Advertiser role. */
BLE_GAP_TX_POWER_ROLE_SCAN_INIT = 2, /**< Scanner and initiator role. */
BLE_GAP_TX_POWER_ROLE_CONN = 3, /**< Connection role. */
The second input is the advertising handle, m_advertising.adv_handle. If you are scanning you should give NULL as input, and if you are connected, you should give the connection handle as input.
The third input is the actual TX power value, and the supported values are -40dBm, -20dBm, -16dBm, -12dBm, -8dBm, -4dBm, 0dBm, +3dBm and +4dBm.
Is default power value is +4dBm in sdk?I'm using nordic uart service(nus).
The default transmit power is 0 dBm.