.. _usrp: Intro to the USRP family ======================== The USRP (Universal Software Radio Peripheral) product line is a series of software-defined radios (SDRs) developed by Ettus Research. These devices are widely used in academia, industry, and research for various wireless communication applications, ranging from simple experimentation to complex signal processing tasks. USRP devices offer a flexible platform that can be used with various software frameworks, including GNU Radio and the USRP Hardware Driver (UHD). The product line includes both entry-level models for hobbyists and advanced models for professional and research use. Supported Models ---------------- - USRP B200/B210: Compact, single-board, full-duplex, with a wide frequency range. - USRP N200/N210: High-performance models with increased bandwidth and connectivity options. - USRP X300/X310: High-end models featuring large bandwidth, multiple MIMO channels, and support for GPSDO. - USRP E310/E320: Embedded devices with onboard processing capabilities. - USRP B200mini: Ultra-compact model for portable and embedded applications. Key Features ------------ - Frequency Range: Typically covers from DC to 6 GHz, depending on the model and daughter boards used. - Bandwidth: Varies by model, up to 160 MHz in some high-end versions. - Connectivity: Includes USB 3.0, Ethernet, and PCIe interfaces depending on the model. - Software Support: Compatible with UHD, GNU Radio, and other SDR frameworks. Hackability ----------- - The UHD library is fully open source and can be modified to meet user untention. - Certain USRP models have "RFNoC" which streamlines the inclusion of custom FPGA processing in a USRP. Limitations ----------- - Some models may have limited bandwidth or processing capabilities. - Compatibility with certain software tools may vary depending on the version of the UHD. - Price range can be a consideration, especially for high-end models. Further Information ------------------- - Official Website: https://www.ettus.com/ - Documentation: https://kb.ettus.com/USRP_Hardware_Driver_and_Interfaces Installation Instructions (Linux) --------------------------------- Simple apt installations (may not work for all targets): .. code-block:: bash sudo apt-get install libuhd-dev uhd-host python3-uhd Simple build instructions: .. code-block:: bash sudo apt-get install git cmake libboost-all-dev libusb-1.0-0-dev python3-docutils python3-mako python3-numpy python3-requests python3-ruamel.yaml python3-setuptools build-essential cd ~ git clone https://github.com/EttusResearch/uhd.git cd uhd/host mkdir build cd build cmake -DENABLE_TESTS=OFF -DENABLE_C_API=OFF -DENABLE_MANUAL=OFF .. make -j8 sudo make install sudo ldconfig Getting UHD working in a python virtual environment: .. code-block:: bash python3 -m venv venv pip install -r requirements.txt # If relevant source venv/bin/activate Find your dist packages and add to `PYTHONPATH`. Example: .. code-block:: bash export PYTHONPATH='/usr/local/lib/python3.10/site-packages/' export PYTHONPATH='/usr/local/lib/python3.10/dist-packages/:$PYTHONPATH'