Optimizing SRN USRP Performance
Use LO Offset Tuning
NI recommends using an LO Offset of -42 MHz for TX and +42 MHz for RX. See figures below.
TX Settings
For teams using the device3 API (RFNoC):
Offset LO tuning has to be done in two steps because the radio and the digital upconverter (DUC) blocks have separate frequency configuration APIs.
uhd::rfnoc::radio_ctrl::sptr radio_blk;
uhd::rfnoc::duc_block_ctrl::sptr duc_blk;
…
double center_freq = 1.0e9
double lo_offset = -42.e6;
radio_blk->set_tx_frequency(center_freq + lo_offset);
duc_blk->set_arg("freq", -lo_offset); //NOTE: lo_offset is negated
RX Settings
For teams using the device3 API (RFNoC): Offset LO tuning has to be done in two steps because the radio and the digital downconverter (DDC) blocks have separate frequency configuration APIs.
uhd::rfnoc::radio_ctrl::sptr radio_blk;
uhd::rfnoc::ddc_block_ctrl::sptr ddc_blk;
…
double center_freq = 1.0e9
double lo_offset = +42.e6;
radio_blk->set_rx_frequency(center_freq + lo_offset);
ddc_blk->set_arg("freq", lo_offset);
Use optimal ADC/DAC settings to maximize dynamic range
Use optimal ADC/DAC settings to maximize dynamic range for UBX-LP UBX-LP link. NI’s recommendation is to increase the ADC gain and decrease DAC full-scale current.
For users using vanilla/unmodified UHD:
- See the attached patch for older versions of UHD, including the default LTS version in Colosseum, UHD 3.9.x:
x300-Optimal-ADC-DAC-settings-for-Colosseum-SRNs_UHD-3.9.x.patch
- For teams using a more recent version of UHD 3.10.x:
x300-Optimal-ADC-DAC-settings-Colosseum-SRNs_UHD-3.10.x.patch
How-to install patch: (1) download your patch from above (attachments found at bottom of page), (2) run “patch < patchfile”
For teams using a custom modified version of UHD 3.10.x or higher, or the rfnoc-devel branch, the following patches (files attached below) can be applied individually so that they are agnostic to the git hash or version:
x300-Optimal-ADC-DAC-settings-Colosseum-SRNs_UHD-NOVER_x300_dac_ctrl.cpp.patch
x300-Optimal-ADC-DAC-settings-Colosseum-SRNs_UHD-NOVER_x300_radio_ctrl_impl.cpp.patch
Commands:
patch /host/lib/usrp/x300/x300_dac_ctrl.cpp x300-Optimal-ADC-DAC-settings-Colosseum-SRNs_UHD-NOVER_x300_dac_ctrl.cpp.patch
patch /host/lib/usrp/x300/x300_radio_ctrl_impl.cpp x300-Optimal-ADC-DAC-settings-Colosseum-SRNs_UHD-NOVER_x300_radio_ctrl_impl.cpp.patch
Use optimal RF gain to maximize dynamic range
NI has determined that the optimal RX and TX gain settings for the UBX-LP UBX-LP link vary across frequency. See below for the recommended settings at some common frequencies.
1.0 GHz => TX Gain: 20 dB, RX Gain: 7 dB
2.4 GHz => TX Gain: 23 dB, RX Gain: 8 dB
5.8 GHz => TX Gain: 28 dB, RX Gain: 15 dB