Go to file
Abhishek Verma a076ee6dd7 rpc_server: disable BDP pings on server
The MPM gRPC server runs on a single-threaded gevent hub. gRPC's BDP
(bandwidth-estimation) probe fires repeatedly while the reclaim loop
keeps the link busy, and its ACK must return within grpcio's short,
RTT-derived internal BDP deadline. Any blocking hardware register read
(e.g. a ClkMgr PLL-lock poll) stalls all socket I/O on the hub until it
returns; , but these polls also run periodically in steady state.
When a stall outlasts the BDP deadline the server sends GOAWAY
"ping_timeout" and drops the transport. The fix is to disable BDP on
the server. The default flow-control window is fine on the LAN link,
so this costs nothing here. BDP is left enabled on the client, whose
native-threaded stack never freezes.
2026-08-23 02:23:02 +02:00
.ci ci: fpga: Added pipeline switch to optionally build alternate X420 designs 2026-08-23 02:02:27 +02:00
.github github: update template so it works with the UI 2025-04-29 18:21:53 +02:00
firmware host/firmware/tools: Update minimum CMake versions 2025-09-24 13:48:07 +02:00
fpga fpga: enable clock watch circuit on X440 images 2026-08-23 02:17:12 +02:00
host python: Fix error in python import warning on Windows 2026-08-23 02:11:55 +02:00
images Prepare for 4.11.0.0 RC1 2026-08-12 18:25:49 +02:00
mpm rpc_server: disable BDP pings on server 2026-08-23 02:23:02 +02:00
tools ci: Add support for USRP B310 2026-08-04 12:00:49 +02:00
.clang-format Update clang-format for version 14 2023-08-07 15:35:56 -05:00
.clang-format-ignore host/mpm: replace mpRPC with gRPC transport 2026-07-09 12:12:04 +02:00
.clang-tidy Add clang-tidy file 2021-03-04 08:07:26 -06:00
.gitattributes uhd: Add support for the USRP X410 2021-06-10 12:01:53 -05:00
.gitignore Move ignore of build folders into top level 2025-07-18 11:19:52 +02:00
.gitmodules Merge FPGA repository back into UHD repository 2020-01-28 09:35:36 -08:00
.pre-commit-config.yaml pre-commit: Add Doxygen comment format check 2026-05-28 14:10:22 +02:00
.readthedocs.yaml docs: fixing the readthedocs builds 2023-11-10 16:01:01 -06:00
CHANGELOG doc: fpga: host: Updated Wideband DDC DUC related documentation 2026-08-23 02:03:43 +02:00
CODING.md coding guidelines: Add information on documentation 2026-05-28 14:10:22 +02:00
CONTRIBUTING.md doc: Add information about NI SRM 2024-01-09 08:52:16 -06:00
LICENSE.md Merge FPGA repository back into UHD repository 2020-01-28 09:35:36 -08:00
README.md Update README.md 2026-06-08 09:41:18 +02:00

USRP Hardware Driver (UHD™) Software

Welcome to the UHD™ software distribution! UHD is the free & open-source software driver and API for the Universal Software Radio Peripheral (USRP™) SDR platform, created and sold by Ettus Research.

UHD supports all Ettus Research USRP™ hardware, including all motherboards and daughterboards, and the combinations thereof.

Documentation

For technical documentation related to USRP™ hardware or UHD system design, check out the UHD and USRP Manual. That is where you can find Installation Instructions, help on how to build UHD from source on different platforms, development guidelines and reference documentation as well as device usage guidance.

Additionally, be sure to check out the Ettus Research FAQ, and the Knowledge Base for useful application notes and tutorials.

OS Support

UHD is primarily developed on Linux, but we also test and support the following operating systems.

  • Linux (Fedora and Ubuntu)
  • Mac OS X
  • Windows 11

Other operating systems will most likely work, too, but are not officially supported.

Applications

UHD can be used to build stand-alone applications with USRP™ hardware, or with third-party applications. Some common toolkits / frameworks are:

Directories

host/

The source code for the user-space driver.

mpm/

The source code for the module peripheral manager (MPM). This is code that is run on embedded devices.

firmware/

The source code for all microprocessors in USRP hardware.

fpga/

The source code for the UHD FPGA images.

images/

This contains the package builder for FPGA and firmware images. We provide other tools to download image packages, the scripts in here are mainly relevant for UHD maintainers and -developers.

tools/

Additional tools, mainly for debugging purposes. See the readme-file in that directory for more details on the individual tools.