The first step in deploying RemoteRF is to acquire the necessary hardware.
While this can vary widely across deployments, every deployment will need the following:
A Linux-based computer to act as the RemoteRF server.
One or more SDRs that will be made remotely accessible by the RemoteRF server.
Each of these hardware components can be purchased from any vendor of your choice.
Linux-Based Machine
The RemoteRF server must be run on a Linux-based machine.
It can be either x86_64 or ARM.
The RemoteRF server software is confirmed to work properly on Ubuntu 24.04 LTS (desktop or server).
If you prefer another Linux distribution, feel free, but we cannot ensure serious issues will not be encountered.
We recommend that you begin set up of the RemoteRF server on a fresh installation of Ubuntu 24.04 LTS.
To do so, follow the instructions on this page to install/boot Ubuntu Server by downloading the Ubuntu Server ISO, writing it to a USB installer, rebooting the target PC, opening the BIOS/UEFI boot menu (often F12/Esc/Del), and booting from the USB to run the installer.
This documentation will assume a fresh install of Ubuntu 24.04 LTS and that you have root/sudo access.
One or More SDRs
You will need to acquire one or more SDRs to connect to the RemoteRF server.
For initial deployment, we recommend using two Pluto SDRs, each of which can be purchased for less than $250 from DigiKey or Mouser Electronics.
For guidance on determining how many SDRs you may need for your course, please see the following guide. How Many SDRs Do I Need?
Server Software Installation
Once the above hardware components have been acquired, installation of the RemoteRF server software can commence, which we provide documentation for below.
Our walkthrough below uses conda and mamba to create a remoterf environment and then install dependencies.
System Prerequisites
After booting up the Ubuntu machine, log into your user account.
Then open a terminal and run the following commands:
To confirm conda has been installed correctly, run the following.
conda --version
Install Mamba
Next, we will use conda to install mamba, which will be used to install dependencies needed to install the RemoteRF server software.
Install mamba with the following:
conda install -n base -c conda-forge -y mamba
You may need to accept Conda’s terms of service by running the following:
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r
To confirm mamba has been installed correctly, run the following:
mamba --version
Create the Environment
Now, use conda to create the remoterf environment with the following:
Then, activate the newly created environment with the following:
conda activate remoterf
Then, update pip with the following:
python -m pip install -U pip
Finally, run the following to install the remoterf-server software.
python -m pip install pyadi-iio remoterf-server
Network Configuration
Depending on your IT/ISP setup, the details vary, but you will need a stable address for the Server—either a static IP or a DNS name that resolves to it.
In most campus networks this means requesting IT to (1) assign a static IP / DNS for the server, and (2) allow inbound connectivity to the server on the required ports (e.g., TCP 61005–61006) so machines on the campus LAN/VPN can reach it directly.
Example will use:
Static IP: 192.168.1.50
Ports: 61005, 61006
Generate CA Certificates
If static IP connection: (force overrides existing)
Troubleshooting:
Some distros come with default firewall settings that block traffic on specific ports. Make sure that your firewall settings permit traffic to and from the server. Depending on the setup, you may also have ISP firewalls.
Connecting SDRs to the Server
We now walk through how to connect SDRs to the server.
Currently, only Pluto SDRs are supported, with work ongoing to add support for other SDRs.
We will thus describe below how to connect a Pluto SDR to the server, with the understanding that this process would be repeated to connect more than one.
To start, open a new terminal and run the following to activate the remoterf environment.
conda activate remoterf
Connect the Pluto SDR to the server via USB.
Information about connecting SDRs to the server via LAN, Wi-Fi, or VPN will be covered on this page, which documents setup of RemoteRF hosts.
After connecting the Pluto SDR, run the following command in the newly opened terminal:
iio_info -s
If the Pluto SDR is not listed upon running the above command, run the following:
sudo iio_info -s
Then, run the commands below:
sudo groupadd -f plugdev
sudo usermod -aG plugdev "$USER"
sudo tee /etc/udev/rules.d/53-adi-usb.rules >/dev/null <<'EOF'
# Type the below in
SUBSYSTEM=="usb", ATTR{idVendor}=="0456", MODE="0660", GROUP="plugdev"
EOF
sudo udevadm control --reload-rules
sudo udevadm trigger
Then, reboot the server by typing the following into the terminal:
sudo reboot now
Upon reboot, log back in, and open a new terminal.
Activate the remoterf environment by typing the following.
conda activate remoterf
The below should work as intended now:
iio_info -s
The output should be something similar to the following:
Run the server normally, and you should see your gist change every minute!
serverrf -s
This walkthrough uses Miniconda + mamba to create a remoterf-server environment, install RemoteRF Server dependencies, and confirms everything works on Ubuntu 24.04 LTS (Desktop or Server). If you prefer another distro or package manager feel free, but it won’t be covered here.
Recommended: Use a Linux machine (x86_64 or ARM), ideally a fresh install for a clean, reproducible setup. This guide assumes root/sudo access.
After booting in, you should be at a fresh Ubuntu login prompt (console or GUI). If you still need to install/boot Ubuntu Server on the machine: download the Ubuntu Server ISO, write it to a USB installer, reboot the target PC, open the BIOS/UEFI boot menu (often F12/Esc/Del), and boot from the USB to run the installer. (Ubuntu)
CAN MULTIPLE REMOTERF PLATFORMS LIVE ON THE SAME LOCAL NETWORK? FAQ SECTION?
This page explains how to deploy a full RemoteRF instance. It is intended for instructors, researchers, or lab administrators who want to host RemoteRF themselves to provide shared access to RF hardware. The guide covers server setup, host configuration, and operational workflows needed to run a functioning RemoteRF environment.