The RemoteRF client provides an interactive terminal shell to check live radio availability, book exclusive time slots, and manage reservations. Once reserved, you control the physical SDR directly through Python on your personal computer.

CLI Command Reference

Run remoterf --login from your terminal to enter the interactive shell. The table below lists all available commands:

Command Description Typical Use Case
getdev Lists all connected SDRs and their availability status. Check which radios are online or currently reserved.
resdev Searches available time slots and reserves an SDR. Book an upcoming 30-minute block on an SDR.
myres Displays active and upcoming reservations held by you. Review your booked time slots, device IDs, and tokens.
cancelres Cancels a reservation you currently hold. Release hardware early or cancel if a token was lost.
getres Views all reservations across the system. Inspect overall lab schedule and hardware availability.
perms Displays your user permissions and reservation quotas. Check your max reservations and allowed duration.
enroll Enrolls with an additional course or lab code. Gain access to devices for a new class or project.
clear Clears the terminal screen. Clean up terminal clutter.
help Shows the help menu with all available commands. Review available command names and syntax.
exit Exits the RemoteRF interactive session. Return to your regular system shell.

Launching and Logging In

Open your computer’s terminal, activate your virtual environment (if using conda: conda activate remoterf), and start the RemoteRF interactive client:

remoterf --login

When prompted, enter l to log in with your registered username and password:

Terminal
Welcome to the RemoteRF Platform Current version: 1.1.2 (latest) Please login or register to continue. (l/r): l Username: user Password (Hidden): Input 'help' for a list of available commands. user@remoterf:

Checking Available Hardware

To view all physical radios attached to your institution’s RemoteRF server, type getdev:

Terminal
user@remoterf: getdev Devices: Device ID: 0 Device Name: Pluto SDR A (online) Device ID: 1 Device Name: Pluto SDR B (online, reserved) Device ID: 2 Device Name: Pluto SDR C (online) Device ID: 3 Device Name: Pluto SDR D (online)
  • (online): The radio is connected, operational, and unreserved during the current time slot.
  • (online, reserved): The radio is operational, but currently booked by another user during the active time slot.

Checking User Quotas

Type perms to check your account’s booking limits:

Terminal
user@remoterf: perms Permission Level: Normal User User Groups:   - ece101_s26 Accessible Devices: [0, 1, 2] Permissions:   Max Reservations: 3   Reservation Duration (min): 30

This confirms which device IDs you can book, your maximum simultaneous active reservations, and the duration of each reservation window.

Reserving an SDR

RemoteRF guarantees exclusive access to hardware. During your reserved slot, only your script can communicate with that specific radio. To book an SDR:

  1. Type resdev.
  2. Enter the device index you wish to reserve (e.g., 0).
  3. Enter the number of days to inspect for open slots (e.g., 1 for today).
  4. Select an available time slot from the list.
  5. Confirm your booking by entering y.
Terminal
user@remoterf: resdev Devices: 0. Name: Pluto A (online) Duration: 30 min 1. Name: Pluto B (online, reserved) Duration: 30 min 2. Name: Pluto C (online) Duration: 30 min 3. Name: Pluto D (online) Duration: 30 min Which device do you want? (enter the 0-based index): 0 Enter the number of days to check for available reservations (starting today): 1   Available time slots for device 0 (30 min blocks) over the next 1 days:   2026-04-16 (Thu)   0. 10:00 PM - 10:30 PM   1. 10:30 PM - 11:00 PM   2. 11:00 PM - 11:30 PM   3. 11:30 PM - 12:00 AM Select a slot by index: 0 You have selected a reservation on 2026-04-16 from 10:00 PM to 10:30 PM for Pluto A. Confirm reservation? (y/n): y Reservation successful on device 0 for 2026-04-16 10:00 PM-10:30 PM. Your Token -> dUx6lG3I9lA Please keep this token safe, as it is not saved on the server and cannot be retrieved again. If you lose it, cancel your reservation and make a new one.
Save Your Reservation Token Immediately! Copy the token using your mouse or clipboard shortcut (do not press Ctrl+C, which terminates the CLI session). For privacy and security reasons, RemoteRF does not store tokens on the server. If you lose your token, you must cancel the reservation and make a new one.

Viewing Active Reservations

Use myres to check your currently held bookings, device IDs, and scheduled start/end times:

Terminal
user@remoterf: myres Current Reservations Held By user: Device ID: 0, Start Time: 2026-04-16 22:00:00, End Time: 2026-04-16 22:30:00

Canceling a Reservation

If you finish your experiments early or need to release hardware after losing a token, run cancelres. Enter the ID of the reservation and confirm with y:

Terminal
user@remoterf: cancelres Current Reservations Held By user: Reservation ID: 0 Device ID: 0 Start Time: 2026-04-16 22:00:00 End Time: 2026-04-16 22:30:00 Enter the ID of the reservation you would like to cancel (abort with non-number input): 0 Cancel reservation ID 0 Device ID: 0 Start Time: 2026-04-16 22:00:00 End Time: 2026-04-16 22:30:00? (y/n): y Reservation ID 0 successfully canceled.

Canceling immediately releases the radio back into the pool so other students and researchers can book it.

Connecting in Python

When your reserved window begins, pass your token directly to the device driver in Python:

from remoterf.drivers.adalm_pluto import *

# Initialize the radio with your active reservation token
pluto = adi.Pluto(token='dUx6lG3I9lA')

# Configure radio parameters as normal
pluto.rx_lo = int(915e6)
pluto.sample_rate = int(1e6)

# Receive complex baseband samples into a NumPy array
samples = pluto.rx()

When initialized, RemoteRF validates the token against the server schedule, connects to the reserved radio, and handles all network transport transparently.

Next Steps

Now that you know how to reserve SDRs and connect with your token, explore the dedicated device guides below for code templates, RF property tables, and tuning tips: