Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

Compiling and running FutureSDR applications requires at least a Rust toolchain. The sections below walk you through setting up Rust and the additional tooling needed for building native binaries and the web user interface.

Install Rust

To install Rust, follow the official instructions.

FutureSDR works with both the stable and nightly toolchains. The nightly compiler enables a few performance optimizations and is required when you build or modify the web UI, since it uses Leptos, which provides an ergonomic syntax behind a nightly feature flag.

Tip

We recommend using the nightly Rust toolchain.

You can switch to nightly globally:

rustup toolchain install nightly
rustup default nightly

or only for your FutureSDR project:

rustup toolchain install nightly
cd <into your project or FutureSDR>
rustup override set nightly

Web GUI and Web SDR Applications

FutureSDR ships with pre-compiled web UIs, so you can use them without extra tooling. If you want to extend or adapt the web UIs, install the wasm32-unknown-unknown target:

rustup target add wasm32-unknown-unknown

Install Trunk, a build and packaging tool for Rust WebAssembly projects, with Cargo or one of the other options listed in their documentation:

cargo install --locked trunk

Linux (Ubuntu)

  • Clone the FutureSDR repository
    git clone https://github.com/FutureSDR/FutureSDR.git
  • Optionally, install SoapySDR
    sudo apt install -y libsoapysdr-dev soapysdr-module-all soapysdr-tools
  • Check if your setup is working by running cargo build in the FutureSDR directory.

macOS

These instructions assume that you use Homebrew as your package manager.

  • Clone the FutureSDR repository
    git clone https://github.com/FutureSDR/FutureSDR.git
  • Optionally, install SoapySDR
    brew install soapysdr
  • Additional drivers are available in the Pothos Homebrew tap.
  • Check if your setup is working by running cargo build in the FutureSDR directory.

Windows

  • Clone the FutureSDR repository
    git clone https://github.com/FutureSDR/FutureSDR.git.

  • Install Visual Studio C++ Community Edition (required components: Win10 SDK and VC++).

    Visual Studio does not add its binaries and libraries to the PATH. Instead, it offers various terminal environments, configured for a given toolchain. Please use the native toolchain for your system to build FutureSDR, e.g., x64 Native Tools Command Prompt for VS 2022.

For SoapySDR hardware drivers:

  • Miniconda for pre-built SDR drivers. The installer offers to add the binaries to your PATH. Do not check this option.

  • After installation, open Anaconda Prompt application.

  • Create an environment and activate it:
    conda create -n sdr_env && conda activate sdr_env

  • Install SoapySDR:
    conda install -c conda-forge soapysdr

  • Install necessary drivers (e.g. for USRP):
    conda install -c conda-forge soapysdr-module-uhd
    Note: Download FPGA images if using USRP:
    uhd_images_downloader

  • Add the following to your User Environment Variables:

    VariableValue
    SOAPY_SDR_ROOTC:\Users\<User>\miniconda3\envs\sdr_env\Library
    SOAPY_SDR_PLUGIN_PATHC:\Users\<User>\miniconda3\envs\sdr_env\Library\lib\SoapySDR\modules0.8
    LIBC:\Users\<User>\miniconda3\envs\sdr_env\Library\lib
    PATH (Append this one)C:\Users\<User>\miniconda3\envs\sdr_env\Library\bin
  • For verification, restart a new terminal and run SoapySDRUtil --info. Check if your hardware (e.g., uhd) is listed under Available factories.

  • Check if your setup is working by running cargo build in the FutureSDR directory.