The maximum input power of X420 is 0 dBm. And to do the RX power
calibration it is required as otherwise the signal will be too low most
of the times during the cal and the cal may fail.
Use comma instead of period as thousands separator for the
--num_samples default value in uhd_iq_dc_correction.py, matching
English locale conventions.
In the X420 IQ/DC offset compensation, waveforms get preloaded into the
DRAM. During the measurement they are then streamed to the radio. The
DRAM on the device operates at 4k boundaries. Therefore, the waveform
start addresses are rounded up to the next multiple of 4096 bytes to
ensure proper alignment and avoid potential underflows during playback.
These changes enable usage of OOT modules on Windows, and also fixes
issues with Python usage of OOT modules on all platforms. Note that
existing OOT modules will need to apply these patches manually.
These changes are backported from rfnoc-oot-blocks. The following fixes
are included:
- We require UHD 4.9 so that we can use the UHD::uhd target for linking
instead of using the older-style ${UHD_LIBRARIES}. This fixes some
linker issues.
- The symbol export macro name is fixed (missing "DLL")
- The Python module is explicitly linked against the OOT DLL
- The Python module forces a loading of the UHD Python module, which
helps resolve RTTI and allows blocks to be declared descendents of
noc_block_base.
- RFNoC OOTs with a module name that contains a hyphen (like
"oot-blocks") are now correctly generated (macro names, e.g., should
include the string OOT_BLOCKS in this case)
- We can provide a Pybind11 path, which is helpful on Windows, because
unlike UHD, OOTs don't carry their vendored version of that library.
Co-authored-by: Wade Fife <wade.fife@emerson.com>
Enable NEW cmake policy CMP0167 that stops using the depreciated FindBoost
module and rely in upstream BoostConfig.cmake configuration files.
This may also avoid conflicts between upstream BoostConfig.cmake configuration
files and the depreciated, legacy implementation in FindBoost.
This fixes special build targets (rtl, synth) that pull in RFNoC blocks
which use RFNOC_OOT_SRCS. Since fa7c3604, we create an OOT source file
to avoid ARG_MAX issues, but these special targets were not updated to
respect this. This would be a problem when using the --SYNTH or --CHECK
flags on a clean build from rfnoc_image_builder.
When launching a multi_usrp or RFNoC session with multiple devices, an
assertion error would always be thrown (with a single device, it works).
This is because the existence of the key rpc_version was checked before
separating multiple devices from a device_args dictionary.
This adds a new key to the discovery information coming from MPM
devices (rpc_version). The purpose of this is to smooth a transition to
alternative RPC subsystems other than mprpc.
If a device reports a different RPC version than supported by UHD, it
can still be found, but cannot be used for UHD sessions.
Added missing Msps conversion for actual rx sampling rate print in
the rfnoc oot gain block example.
Also applied ni-python-styleguide changes for import order.
This improves the logging IDs of files related to HBX. It adds the radio
as prefix to the logging ID to make it easier to recognize which
component wrote a log message as we typically have (at least) two in a
UHD session. Improved behavior for ADMV1320, ADMV1420, LTC5594
(demodulator) and for the TX and RX LOs.
This shortens the HBX TX gain map at the lower end. With this, these
high attenuations / low gain indexes will not be possible anymore
to avoid non-linearities that were discovered otherwise.
This adds a warning when changing into the manual gain profile in the RX
direction. It warns the user that in manual gain mode it is possible to
increase individual gain stages in a way that the input level to RF
chain can be too high even if the input power is below or at the
specified damage level.
This commit aligns the documented and the actual default value for the
waveform duration and corrects the value to pass for infinite playback
to be 0. With duration = -1 it would stop with an error immediately.
This adds the TX to RX trigger in the DDC portion of the dram_utils. Without
that, the trigger was not passed on from the issue_stream_cmd() wrapper to
the actual method which led to "late command" errors.
Removed deprecated 'license classifiers' and updated license field with
valid SPDX license expression to to comply with Python packaging standards
(PEP 639).
This fixes the following problems with generic modules in RFNoC image
core files:
- The schema had a typo that prevented third-party modules to be
instantiated in the image core file
- Modules without explicit resets couldn't be instantiated
- The module generation code (both templates and builder_config.py) were
using the module.desc information, not the sanitized content. This
bypassed any checking and sanitization and would cause additional
problems if there were either no clocks or no resets defined (or both)