Frequently Asked Questions
This page provides answers to common questions about using RemoteRF, managing accounts, booking SDRs, and conducting experiments.
General
What is RemoteRF?
RemoteRF lets users remotely access and control software-defined radios (SDRs) over a network. It provides a simple way to reserve, connect to, and use SDRs without physical access to the hardware, so users can conduct wireless experiments from virtually anywhere their RemoteRF server is reachable.
What is a Software-Defined Radio (SDR)?
A software-defined radio (SDR) is a transmitter, receiver, or transceiver whose behavior can be configured through software. For example, users can set parameters such as carrier frequency, transmit power, bandwidth, and sample rate in Python, then generate signals to transmit or process signals the radio receives.
What do I need to use RemoteRF?
You need the RemoteRF client installed and configured to connect to a RemoteRF server deployed by your college, university, research lab, or similar organization. You will also need network access to that server, an account, and a reservation for an available SDR before starting an experiment. See Installation and Usage for the complete setup and booking workflow.
What operating systems are supported by the RemoteRF client?
Because the RemoteRF client is a pure Python package, it runs on any operating system that supports Python 3, including Linux, macOS, and Windows.
Can I use RemoteRF with software other than Python?
No. RemoteRF currently supports accessing SDRs through Python only.
Do I need hardware drivers (such as libiio, libusb, UHD, or HackRF host tools) installed on my local machine?
No. All low-level hardware drivers, kernel modules, and USB/Ethernet communications are handled entirely by the RemoteRF server. On your local machine, you only need Python and the remoterf client package installed.
How do I find out which SDRs are connected to my institution’s server?
When you log into the RemoteRF reservation interface, it displays a live inventory of all connected, active SDRs deployed on that server along with their availability and schedule.
Reservations & Connecting
How do I make a reservation?
Reservations are made through the RemoteRF client interface. Select an available device and time slot, and RemoteRF will issue a token for that reservation. You will use the token to authenticate your connection to the SDR during the reserved time.
What is a token and why do I need it?
A token is a unique identifier assigned to your reservation. It authenticates your connection to the RemoteRF server and ensures that only the user holding the reservation can access that SDR during the reserved time.
How do I connect to a device?
After making a reservation, write a Python script that imports the RemoteRF driver for your SDR and initializes the device with the reservation token. The individual SDR guide pages walk through this process step by step.
How far in advance can I book a reservation?
Reservation horizons and booking rules are configured by your RemoteRF server administrator. Typically, users can reserve available slots several days or weeks in advance through the reservation interface.
Can multiple users access the same SDR at the same time?
No. RemoteRF enforces strict exclusive access. When you reserve an SDR, only the reservation token issued for that slot can connect to and control the hardware. Other users cannot interact with or configure that device until your reservation expires or is released.
Can I reserve multiple SDRs at the same time?
Yes, provided multiple devices are available on your server. You will receive a distinct token for each device you reserve. You can then initialize multiple SDR objects within the same Python script (e.g., transmitting on one device while receiving on another).
Can I cancel a reservation early if I finish my experiments ahead of schedule?
Yes. You can release your reservation early through the RemoteRF reservation interface so that other users or lab members can utilize the hardware.
What happens if my script crashes or terminates early? Does my token become invalid?
No. Your token remains valid for the entire scheduled duration of your reservation. If your Python script exits, throws an exception, or gets interrupted, you can fix the issue and run your script again using the same token.
Does my token work after my reservation window ends?
No. Tokens expire immediately once the reservation period lapses. Any active network connections using that token are terminated by the server, and subsequent requests will return an authorization error. If you need more time, you must book another reservation slot and use the new token.
What should I do if a reservation expires while my experiment is running?
RemoteRF immediately revokes device access when a reservation expires. If you anticipate that an experiment will take longer than a single slot, you can reserve consecutive time slots in advance.
Usage
Can I run RemoteRF scripts inside Jupyter Notebooks or interactive Python environments?
Yes. RemoteRF can run in any Python environment (including interactive shells, Jupyter notebooks, scripts, or IDEs) as long as it has network access to the RemoteRF server you are trying to connect to and the remoterf package installed.
Can I use standard signal processing libraries like NumPy, SciPy, and Matplotlib with RemoteRF?
Yes. Received samples are returned directly as standard NumPy arrays of complex numbers, and transmit functions accept standard NumPy arrays. You can use any Python scientific computing, signal processing, or visualization libraries as you normally would.
Can I use RemoteRF from off-campus or home?
Yes, as long as your machine can reach the IP address and port of your institution’s RemoteRF server. Depending on your institution’s network setup, this typically requires being connected to your university or organizational VPN.
Does network latency affect streaming or RF signal quality?
Network latency does not alter the actual digital IQ sample values captured by the radio’s ADC or synthesized by your script. Transferring long transmit or receive signals across the network can introduce some latency, but in most cases this is fairly minimal or even imperceptible.
What happens to the SDR hardware when my script finishes or my reservation ends?
When a session closes or a reservation expires, RemoteRF does its best to clean up active DMA buffers, stop any ongoing RF transmissions, and reset the device to a clean, idle state for the next user.
Privacy & Security
Can other users see my Python scripts or code?
No. Your Python scripts run entirely on your local machine (or wherever you execute them). Only the API commands, configuration parameters, and IQ sample arrays are sent over the network to the server. Your source code, comments, algorithms, and local data files are never uploaded or visible to the server or other users.
Does RemoteRF record or store my transmitted or received data on the server?
No. Transmit and receive IQ data stream directly between your local client script and the radio hardware in volatile system memory. RemoteRF does not save, log, or persist your RF sample data on the server.
What personal information does RemoteRF store about me?
RemoteRF only stores the basic account information needed for authentication and access control (such as your username/email and reservation history). It does not collect telemetry or personal data from your local computer.
Is my connection to the RemoteRF server secure?
Yes. Client-to-server communication is authenticated via unique reservation tokens. When deployed with TLS/SSL encryption or accessed over an institutional VPN, all control messages and data streams between your client and the server are encrypted in transit.