Hi,
I'm working on a wireless sensing project using the nRF54L15-DK (PCA10156) where I need continuous RSSI measurements at 2440 MHz. I'm accessing the RADIO peripheral directly (not through the BLE softdevice/stack) under Zephyr (NCS v3.2.2).
Problem: The RSSI reads only noise floor (~-105 dBm) regardless of signal strength. A USRP SDR at the same location and frequency confirms strong LoRa signal presence (-2 dB relative power). I've tested two separate nRF54L15-DK boards with the same result.
Setup:
- nRF54L15-DK (PCA10156), two boards tested
- NCS v3.2.2, Zephyr, bare RADIO peripheral (no BLE stack)
- PHY:
NRF_RADIO_MODE_BLE_1MBIT - Frequency: 2440 MHz (
FREQUENCY = 40) - External 2.4 GHz antenna on J1 (uFL SWF connector)
- TX source: SX1280 LoRa @ 2440 MHz, +13 dBm, <30 cm distance
Radio initialization code:
nrf_radio_mode_set(NRF_RADIO, NRF_RADIO_MODE_BLE_1MBIT);
nrf_radio_frequency_set(NRF_RADIO, 40); // 2440 MHz
// Packet config (minimal, just to enter RX)
nrf_radio_packet_configure(NRF_RADIO, &pkt_cfg);
nrf_radio_packetptr_set(NRF_RADIO, rx_pkt);
// Access address, CRC config...
nrf_radio_shorts_enable(NRF_RADIO,
NRF_RADIO_SHORT_READY_START_MASK |
NRF_RADIO_SHORT_END_START_MASK);
// Enter RX
nrf_radio_task_trigger(NRF_RADIO, NRF_RADIO_TASK_RXEN);
// Wait for READY...
// Then in 25 kHz timer ISR:
nrf_radio_task_trigger(NRF_RADIO, NRF_RADIO_TASK_RSSISTART);
// ... 40 us later:
uint8_t raw = nrf_radio_rssi_sample_get(NRF_RADIO);
Observations:
- RSSI consistently reads -105 to -108 dBm (noise floor)
- Expected: approximately -30 dBm at 30 cm distance (13 dBm TX - 40 dB FSPL)
- Same code logic on TI CC2652R7 works perfectly (sees -40 to -60 dBm)
- USRP SDR confirms strong signal at 2440 MHz simultaneously
- Two different nRF54L15-DK boards produce identical results
- With/without external antenna on J1: only ~3 dB difference
Questions:
- When using the RADIO peripheral directly (without softdevice), are there additional initialization steps required for the RF front-end on nRF54L15? (e.g., HFCLK configuration, VREQCTRL, LDO enable, RF matching network settings)
- Does
NRF_RADIO_MODE_BLE_1MBITrequire any additional register writes beyond whatnrf_radio_mode_set()configures? - Is the J1 SWF connector (MM8130-2600) supposed to auto-switch when a uFL cable is inserted? We see almost no difference with/without external antenna.
- Are there any known errata for nRF54L15 RADIO peripheral that could cause this?
Thank you for your help.