Commit Graph

105 Commits

Author SHA1 Message Date
Martin Anderseck
72d896bd25 CHANGELOG: Correct and update UHD 4.11 features
This adds the Linux kernel update as highlight and corrects the
statement about the X420/X440 repeatable phase offsets.
2026-09-08 09:28:31 +01:00
Jörg Hofrichter
9a3a47bb69 CHANGELOG: Update UHD 4.11 new features descriptions
- Updated the description of the fabric resampler addition.
- Corrected the documentation for the default state of the MPM serialization setting.
2026-09-02 18:40:29 +01:00
Jörg Hofrichter
218975dd22 CHANGELOG: Added information on X4XX Locked FPGA Variants 2026-09-02 16:45:32 +01:00
Niels Garibaldi
344c6793ac doc: fpga: host: Updated Wideband DDC DUC related documentation
Updated the references to DDC and DUC RFNoC blocks to reflect the
new split between legacy(singlesample) and wideband(multisample)
implementations.
Updated the related manual references as well as the C++ block
controller API comments that are pulled in by doxygen.
Also fixed a minor outdated comment in the FPGA source code.
2026-08-23 02:03:43 +02:00
Marian Koop
556b378912 Prepare for 4.11.0.0 RC1 2026-08-12 18:25:49 +02:00
Marian Koop
0fd2f32cb8 doc: Mention B310 in release highlights 2026-08-10 08:46:44 +02:00
Niels Garibaldi
f60ae0e17d doc: add Wideband DDC/DUC information to changelog 2026-08-05 08:43:42 +02:00
Abhishek Verma
15264cdc06 Update CHANGELOG 2026-07-28 18:40:13 +02:00
Abhishek Verma
85523485c7 CHANGELOG: add RPC migration to gRPC 2026-07-28 14:10:47 +02:00
Martin Braun
7b9e704074 Update CHANGELOG 2026-06-12 14:06:13 +02:00
Martin Braun
3eb6fe492a uhd: Remove usage of boost::optional
- boost::optional is replaced by std::optional
- In public APIs, boost::optional is still usable, but it is declared
  deprecated. That means this is no API break (but it is an ABI break).
- Within the library portion (host/lib/**) there is no more usage of
  boost::optional. Some backward-compatibility code (in actions.cpp and
  ctrlport_endpoint.cpp) was moved out to the header.

Note: The most difficult replacement was that for
parse_log_level_from_string(), where boost::optional is the return
value. To retain API compatibility, we had to create a helper function.
2026-05-05 14:41:39 +02:00
Marian Koop
d03af7b936 images: Update manifest for v4.10.0.0-rc2 2026-04-09 12:41:01 +02:00
Marian Koop
dd41a0801f Prepare for 4.10.0.0 release 2026-03-25 16:18:00 +01:00
Martin Braun
cf2f00e452 Update CHANGELOG 2026-02-20 10:12:53 +01:00
Martin Braun
6496f6883a rfnoc: Add mtu stream argument
When creating an RFNoC streamer (using rfnoc_graph::create_?x_stream(),
or when calling multi_usrp::get_?x_stream() on an RFNoC device), the
argument `mtu` is now interpreted by the RFNoC infrastructure. It allows
overriding the MTU for a given connection, regardless of what the
underlying link is using.

A good reason to use this is when doing remote streaming, and the path
MTU differs between the USRP and the UHD host computer, and the USRP and
the remote destination. UHD will default to the path MTU between the
host computer and the USRP, but that may be too small (e.g., when
controlling a USRP X410 over its RJ45 port, which typically has an MTU
of 1500, but doing remote streaming over 100 GbE, which typically has an
MTU of 8000 or above).

Depending on the link type used, it may be useful to use
`recv_frame_size` instead (or `send_frame_size`). However, `mtu` is
a true override that will ignore any link settings, whereas
`recv_frame_size`/`send_frame_size` are hints for the underlying link
setup, and may not be honoured.

Use this like any other stream argument:
```cpp
uhd::stream_args_t s_args("sc16", "sc16");
s_args.args = uhd::device_addr_t("mtu=8000");
auto streamer = my_rfnoc_graph->create_rx_streamer(1, s_args);
```

The relevant manual pages are also updated.
2025-12-03 16:55:07 +01:00
Niels Garibaldi
956f3a7b1a docs: Add timed complex gain to documentation
Add a new section to the changelog regarding changed bitfile
behavior, specifically regarding the crossbar changes between
radio and replay block connections of the x440_X4_400 bitfile.

Change the standard bitfile description in manual to reflect
changes in x440_X4_400 bitfile behaviour changes. Add comment
to x440_X4_400 config regarding how to revert changes.
2025-12-03 16:41:01 +01:00
Martin Braun
fe1a4ec2ef Update CHANGELOG 2025-10-10 15:51:56 +02:00
Martin Braun
ab724a30ec cmake: Enable usage of UHD:: module
Instead of relying on CMake variables like ${UHD_LIBRARIES}, downstream
projects can now use the UHD::uhd target to link against UHD.
2025-09-24 11:35:24 +02:00
Frank Dietze
b2d396d436 Prepare for 4.9.0.0 RC2
Update Changelog
- Add mention of new RFNoC OOT block repository to changelog.
  Add link to RFNoC OOT block github repository to README.
Update Readme with reference to new OOT block repo
Update Manifest

Co-authored-by: Niels Garibaldi <niels.steffen.garibaldi@emerson.com>
Co-authored-by: Marian Koop <marian.koop@emerson.com>
2025-08-23 00:21:06 +02:00
Marian Koop
893fbb2a50 doc: Update User Manual Binary Installation section for Windows
Change binary installation instructions for Windows to reflect that
installation of Windows USB driver packages is now fully integrated
into UHD installer and this previous post installation step is
no longer needed.
2025-08-20 16:06:40 +02:00
Marian Koop
d2f401da2f Prepare for 4.9.0.0 release
- Updated version string
- Updated CHANGELOG
- Updated Debian-related files
- Updated manifest
2025-08-11 19:12:16 +02:00
Martin Braun
52396f7e20 examples: Remove network_relay
This example is getting a bit dusty. Besides, it only works for
USRP2/N210. Instead of overhauling it, it will therefore get deprecated.
2025-07-28 15:47:58 +02:00
Grant Meyerhoff
c52889b356 usrp: Add support for OBX daughterboard
This adds support for the OBX daughterboard, a new daughterboard
compatible with the USRP X3x0 series.

- Includes both UHD and CPLD codebases
- Includes CI hooks

Co-authored-by: Javier Valenzuela <javier.valenzuela@emerson.com>
2025-07-28 09:33:14 +02:00
Lars Amsel
b8e2e70675 host: b200: Add support for B206i (as a variant of B205i)
- Added B206MINI_PRODUCT_ID and extend various defines
  to enable B206 support in driver code
- Extend B200 devtest definition to include B206mini
- Extend B200Calibrator class to support B206mini

Co-authored-by: Lars Amsel <lars.amsel@emerson.com>
Co-authored-by: Abhishek Verma <abhishek.verma@emerson.com>
Co-authored-by: Marian Koop <marian.koop@emerson.com>
2025-05-15 11:15:51 +02:00
Marian Koop
183b91d5ea host: examples: Revert commit 4289cc1 affecting tx_waveforms examples
Removed obsolete workaround for X410 after fixing the NCO reset
mechanism that caused ADC self-cal errors to occur during reopening
of a UHD session when timed tune commands were previously used.
2025-05-13 13:01:14 +02:00
Martin Braun
50967d137f rfnoc_modtool: add: Add option to run make-yaml wizard 2025-04-15 17:47:51 +02:00
Martin Braun
8684d3c15a rfnoc oot: Move fpga/ subdir into rfnoc/
During redesign of the OOT module directory layout, the block YAMLs and
dts files were moved under `rfnoc/`, but the gateware was not. This
causes an inconsistency in the directory layout before and after
installation, making it hard to switch between installed and
not-installed versions of RFNoC modules.

For example, block YAMLs are in `./rfnoc/blocks/*.yml`, and gateware is
in `fpga/gain/rfnoc_block_gain/*`. After installation, block YAMLs are
in `$PREFIX/share/uhd/rfnoc/blocks/*.yml`, and gateware is in
`$PREFIX/share/uhd/rfnoc/fpga/gain/rfnoc_block_gain/*` -- note the
discrepancy.

This fixes two immediate issues:

- When building the X410 example in-tree, the DTS file was not being
  found because it used the same finding logic as the gateware source files.
- When building any image core file post-installation, none of the
  gateware could be found because it used the same logic for finding
  gateware inside the OOT, which is in a different location relative to
  the block YAMLs.

By removing the inconsistencies, both these use cases work.

A note on backward compatibility:

- Existing OOT modules already have the issue that building bitfiles
  post-install does not work, and that will continue to not work.
  However, otherwise, they will keep working as before.
- Because people may have gotten accustomed to specifying the RFNoC OOT
  module as the include directory (e.g., `rfnoc_image_builder -I
  /path/to/rfnoc-gain`), we allow for this use case, and auto-correct
  the include path in this case with some backward compatibility code.
- Building the rfnoc-gain/icores/x410_XG_200_rfnoc_image_core.yml
  example image core file now also works, even with older versions of
  rfnoc-gain.
2025-04-15 09:43:04 +02:00
Martin Braun
b767b4e628 tools: Remove uhd_dump
This tool was originally written to aid with X3x0 development, prior to
the development of current-day RFNoC. Basically, it's a poor-man's
version of Wireshark.

However, it implements an old version of the network protocol, which is
currently not in use. The tool is therefore obsolete, and our Wireshark
dissectors are a perfectly reasonable substitute. We therefore remove it
from UHD.
2025-03-14 15:25:57 +01:00
Jacob Holtom
2522733a38 gps: Add send_cmd() API to the GPS iface feature
This allows sending arbitrary commands to a GPS device. There is no
guarantee that this will do anything useful or safe, and can put the
device in an unknown state. Use at your own discretion!

This lets you control the GPS device as such:

```cpp
auto my_usrp = uhd::usrp::multi_usrp("type=x300");
auto mb_ctrl = my_usrp->get_mb_controller(0);
if (mb_ctrl->has_feature<uhd::features::gps_iface>()) {
    auto& gps = mb_ctrl->get_feature<uhd::features::gps_iface());
    // We assume you really, really know what you're doing. Look up the
    // commands in the GPSDO manual!
    const std::string resp = gps->send_cmd("SERV:PHASECO 20.0");
    std::cout << resp << std::endl;
}
```

Co-authored-by: Martin Braun <martin.braun@ettus.com>
2025-02-21 09:20:20 +01:00
Martin Braun
d542ec41bf uhd: stream: Bring back zero-latency recv() calls
This introduces a behavioural change in recv() (for RFNoC devices; older
devices are unaffected).

The behavioural changes depend on the way recv() was called:

- nsamps_per_buff > 0, timeout == 0: This is the busy-loop, or polling
  use case. This is typically done in application that require best-case
  latency.
  - OLD CODE: Before this change, the streamer would artificially
    increase the timeout value to 1ms (in order to increase the chance
    of catching an overrun or late error).
  - NEW CODE: After this change, the timeout of 0 is applied everywhere.
    This means that if a timeout occurs while calling recv(), it is not
    sufficient to call recv() again with a zero-timeout, zero-nsamps
    value (see next case) to detect what error occurred.
- nsamps_per_buff == 0, timeout == 0: Within niuhd, this was used to
  determine the error code if a regular call to recv() failed to
  receive all expected samples. The assumption was that calling recv()
  ones with these values (all zero) would suffice to figure out what the
  problem was (i.e., if an overrun or other error had occurred). However,
  this behaviour was never documented or declared to be valid!
  - OLD CODE: In the old code, the timeout was artifically increased to
    1ms, even if we would never process any packets. This was used to
    force a short "sleep" of the recv call, which would increase the
    chance that outstanding errors (overruns or lates) would be made
    available to the recv() thread. However, if a timeout would occur,
    then we would report back ERROR_CODE_NONE to the user, because they
    were requesting zero samples anyway.
  - NEW CODE: After the change, the timeout is not increased to 1ms any
    longer, but the timeout-scrubbing behaviour is retained. Because we
    don't artificially let the thread sleep, there is increased risk
    of missing outstanding errors. If the intention was to always catch
    those, call recv() with a non-zero timeout!
- nsamps_per_buff == 0, timeout > 0: This should be the right call to
  "catch" any outstanding errors (overruns, lates) with an arbitrary
  amount of waiting time.
  - OLD CODE: Ironically, before this change, the code would fix the
    timeout to 1ms, even if a bigger timeout was requested.
  - NEW CODE: The desired timeout is applied, even though no packets
    will be processed. This allows the call site, if they don't care
    about latency, to increase the sleep duration to a safe margin.
- nsamps_per_buff > 0, timeout > 0: This is the normal streaming case,
  and this remains unchanged.

On top of the changes to the RX streaming behaviour for RFNoC devices,
the documentation for recv() was made more detailed to better explain
the contract around recv().

Some background:

- In a2f10eed, a change was made to bump the minimum timeout to 1ms to
  increase the chance that errors are propagated back the call site.
  However, there was never a guarantee in the UHD API that recv() with
  zero samples, zero timeout would return all errors.
- This change had the effect that recv() would return with
  ERROR_CODE_TIMEOUT if nothing was available, which is also undesired.
  So in 0382a1c, a change was made to fix the timeout to 1ms for
  nsamps_per_buff == 0, regardless of the desired timeout.
2025-02-18 12:08:39 +01:00
Martin Braun
3909512623 lib: Replace uhd::math::gcd,lcm with std::gcd,lcm
This became possible with the new dependency on C++17, which added std::
gcm() and std::lcm(). The standard library has some advantages over our
version (e.g., constexpr) but most importantly, it allows us to remove
the (version dependent!) Boost dependency in math.hpp.

This breaks the public API: `uhd::math::{gcd,lcm}` were defined in the
public header uhd/utils/math.hpp.
2025-02-07 11:00:36 +01:00
Marian Koop
1e4d0a7d56 doc: Appended changelog for UHD 4.8 release
Added mention for bug fix of usrp_update_fs utility.
2025-01-23 20:42:29 +01:00
Marian Koop
3a629f8549 Updated CHANGELOG 2025-01-13 22:35:01 +01:00
Martin Braun
9fc242122e Update CHANGELOG
Co-authored-by: Lars Amsel <lars.amsel@emerson.com>
Co-authored-by: Martin Anderseck <martin.anderseck@emerson.com>
Co-authored-by: Wade Fife <wade.fife@emerson.com>
Co-authored-by: Jörg Hofrichter <joerg.hofrichter@emerson.com>
Co-authored-by: Grant Meyerhoff <grant.meyerhoff@emerson.com>
2024-11-27 12:20:22 +01:00
Marian Koop
b60c459ea1 doc: Corrected errors in release CHANGELOGs for UHD 4.7.0.0
- Corrected tested Fedora versions to 37, 38 (was 34, 35, 36)
- Removed duplicate changelog for 4.7.0.0 in debian changelog
2024-07-01 13:02:03 +02:00
Marian Koop
a5ed1872be 4.7.0.0 Release 2024-06-28 15:31:02 +02:00
Marian Koop
3752ed83fa docs: CHANGELOG: Added change log for UHD 4.7.0.0 2024-06-18 17:11:49 +02:00
Aki Tomita
50fa3baa2e 4.6.0.0 Release 2023-11-13 09:22:00 -06:00
mkoop
e547a6bba3 doc: x440: Highlight new X440 features and replay block behavior changes 2023-11-09 07:55:58 -06:00
Aki Tomita
0c4637aba8 Update to changelogs 2023-11-06 18:20:00 -06:00
Aki Tomita
c2dd6c1d99 Prepare for 4.6.0.0 release
- Updated version string
- Updated CHANGELOG
- Updated Debian-related files
- Updated images package
2023-10-30 21:50:18 -05:00
Aki Tomita
471af98f6b 4.5.0.0 Release 2023-09-11 14:12:35 -05:00
Aki Tomita
9fb9d79d85 Prepare for 4.5.0.0 release
- Updated version string
- Updated CHANGELOG
- Updated Debian-related files
- Updated manifest
2023-08-31 17:04:08 -05:00
Aki Tomita
1877db8f7f uhd: Update changelog with 4.1.0.x releases 2023-05-03 10:16:20 -07:00
michael-west
5fac246bc1 UHD 4.4.0.0 Release
Signed-off-by: michael-west <michael.west@ettus.com>
2023-01-27 13:17:39 -08:00
michael-west
cea9b945bc Prepare branch for 4.4.0.0 release
- Updated version string
- Updated CHANGELOG
- Updated Debian-related files
- Updated images

Signed-off-by: michael-west <michael.west@ettus.com>
2023-01-23 23:13:06 -08:00
Steven Koo
1f8fd3457d uhd: Prepare branch for 4.3.0.0 release
- Updated CHANGELOG
 - Updated Debian-related files
 - Updated images package

Signed-off-by: Steven Koo <steven.koo@ni.com>
2022-09-14 09:19:33 -05:00
Steven Koo
fbcc8a642e Prepare branch for 4.3.0.0-rc2 release
- Updated CHANGELOG
 - Updated Debian-related files
 - Updated images package

Signed-off-by: Steven Koo <steven.koo@ni.com>
2022-09-12 17:27:49 -05:00
Steven Koo
2c96e57f1f uhd: Prepare for 4.3.0.0-rc1 release
- images: update manifest
- uhd: update changelog and version string
- debian: update changelog and installer version

Signed-off-by: Steven Koo <steven.koo@ni.com>
2022-09-06 15:09:25 -05:00
Steven Koo
7313d28b2b changelog: forward port 4.2.0.1 changes 2022-09-06 15:09:25 -05:00