An Experiment on Dynamic TX Power Control Using RSSI Feedback for Energy-Efficient

This project focuses on low-capacity BLE communication between a Peripheral and a Central device. In previous posts, current consumption was reduced using sleep control and power switching, and communication range was extended using Coded PHY.
XIAO nRF54L15 / nRF52840: Coded PHY Extends Communication Range by 4x — at the Cost of Current Consumption
nRF54L15 Peripheral<-->Central Bidirectional Communication
In connected BLE projects, XIAO_nRF54L15 does not outperform XIAO_nRF52840

This time, the experiment explores dynamic TX power control using RSSI feedback. The goal is simple:keep RSSI just high enough to maintain a stable connection, and avoid wasting power when full TX power is not necessary. RSSI changes depending on distance, orientation, and surrounding interference. Instead of using fixed TX power, the transmit level is adjusted automatically according to the measured RSSI.
The experiment uses XIAO nRF54L15 boards, but the same approach should work on most BLE platforms.

Experiment Conditions
Boards: XIAO nRF54L15 (Central and Peripheral)
SDK: nRF Connect SDK v3.2.1
Data: 16 bytes every 1 second (Notify + Write, bidirectional)
PHY: S=8 Coded PHY
Connection interval: 50 ms
Antenna: on-board ceramic antenna
Current measurement: PPK2, 3.8 V supply to Peripheral battery pad

Figure 1 shows the current during a single 16-byte Notify transmission. Transmittion current drops from about 10 mA at +8 dBm to about 3 mA at −20 dBm. Lower TX power clearly reduces transmission current.

Figure 2 shows the 1-second average current while sending data continuously. Reducing TX power from +8 dBm to −20 dBm lowers the average current to roughly two-thirds. Below −20 dBm, the improvement becomes small because other processing currents dominate.

Figure 3 shows actual RF output vs configured TX power. The output is roughly linear between +8 dBm and −22 dBm. Below −22 dBm, the setting becomes inaccurate.

Because of this behavior, the practical control range is +8 to −22 dBm.

Figure 4 shows the RSSI-based TX power control method. Since disconnections often drop below −100 dBm, the target RSSI is set to −80 dBm for stability.

The control flow:

  1. RSSI is measured every 50 ms
  2. A 0.8-second moving average smooths the signal
  3. Every second, the error from the target is fed to a PID controller
  4. The controller outputs a TX power value (−22 to +8 dBm)
  5. The Central sends the value to the Peripheral via Write
  6. The Peripheral updates its TX power

Figure 5 shows RSSI and TX power during movement tests. The Central stays fixed in a corner. The Peripheral is moved around the room. After movement, RSSI temporarily drops or rises.
The controller adjusts TX power and RSSI returns to around −80 dBm within about 3–4 seconds.
TX power automatically increases when the link weakens and decreases when the link is strong, which helps reduce unnecessary current consumption.

The method is still experimental, but the results look promising for low-power BLE projects.
I hope this serves as a useful reference for anyone interested.

The sample project used for this test is attached.

POST_nRF54_txpower_control.zip (1.1 MB)

1 Like