Skip to main content

Remote RF

A python API to remotely access signal centric hardware.

Courtesy of Wireless Lab @ UCLA. - Ethan Ge

Prerequisites

  • Python 3.10: This package works in Python 3.10+. If you don’t have Python installed, you can download it from the official Python website.

To check your current Python version, open a terminal and run:

python --version
  • UCLA VPN: Please ensure that you are connected to the UCLA VPN. You can download and configure the VPN client from the following link: UCLA VPN Client Download. If you’re not connected to the VPN, you will not have access to the lab servers.

Installation

Use the package manager pip to install remoteRF. It is recommended that you install this package within a virtual environment.

python3 -m venv venv        # Create virtual environment
source venv/bin/activate    # Activate virtual environment

pip install remoterf        # Install remoteRF

NI USRP-2901 / B200-family

After reserving a server-local or HostRF-owned usrp inventory entry, fetch or refresh its Dynamic v2 package with the reservation token:

from remoteRF.drivers import ensure_driver

ensure_driver(token="reservation-token")

Both supported initialization forms then use the same generated runtime:

from remoteRF.drivers.usrp import uhd

with uhd.usrp.MultiUSRP(token="reservation-token") as usrp:
    print(usrp.remoterf_capabilities)
    usrp.set_rx_rate(1e6)
from remoteRF.drivers.usrp import MultiUSRP

usrp = MultiUSRP("reservation-token")
try:
    print(usrp.get_pp_string())
finally:
    usrp.close()

Streaming uses NumPy buffers and native-like UHD value objects. Only the leading region reported by native UHD is changed on a partial receive:

import numpy as np
from remoteRF.drivers.usrp import uhd

with uhd.usrp.MultiUSRP(token="reservation-token") as usrp:
    stream_args = uhd.usrp.StreamArgs("fc32", "sc16")
    stream_args.channels = [0]
    with usrp.get_rx_stream(stream_args) as rx:
        samples = np.empty(4096, dtype=np.complex64)
        metadata = uhd.types.RXMetadata()
        count = rx.recv(samples, metadata, 0.25)
        valid_samples = samples[:count]

The generated package includes native-like namespaces, aliases, overload stubs, deterministic close(), context managers, opaque session-bound handles, and typed errors in remoteRF.core.v2_errors. Streamers are never silently recreated after a disconnect; reopen a new device session and configure a new stream explicitly.

Methods marked deferred in the fetched schema remain available through generic native dispatch, but are not release-qualified as exact UHD overload parity until the server's UHD 4.10 target-introspection and hardware differential gates pass.

If pip install doesn't work, you can clone the source directly from github.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

remoterf-2.0.7.tar.gz (87.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

remoterf-2.0.7-py3-none-any.whl (83.1 kB view details)

Uploaded Python 3

File details

Details for the file remoterf-2.0.7.tar.gz.

File metadata

  • Download URL: remoterf-2.0.7.tar.gz
  • Upload date:
  • Size: 87.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.2

File hashes

Hashes for remoterf-2.0.7.tar.gz
Algorithm Hash digest
SHA256 71efe31494550b8f1c019e5485ee1ef5641a1ede1a75c2060d91c32d9c45b1e3
MD5 d28160690015402b3b4992e7cc456f41
BLAKE2b-256 ab4c5d2240ad59f63181b5c9168118454dc7c6e223d8fc626c5b99cb377d67af

See more details on using hashes here.

File details

Details for the file remoterf-2.0.7-py3-none-any.whl.

File metadata

  • Download URL: remoterf-2.0.7-py3-none-any.whl
  • Upload date:
  • Size: 83.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.2

File hashes

Hashes for remoterf-2.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 88d9833e39f0e9c525ba76681b789ea8e2a54aa1cdcac0109dd8a5179dbc50c7
MD5 eac89311e66a1bb5a6a76c8507e9fe53
BLAKE2b-256 13118c4e4907a8833e2658e7359018af7e13f95bb2fadaebee36f5c4df80b733

See more details on using hashes here.

Release history Release notifications | RSS feed

2.0.14

2 files

2.0.13

2 files

2.0.12

2 files

2.0.11

2 files

2.0.10

2 files

2.0.9

2 files

2.0.8

2 files

This release

2.0.7 This release

2 files

2.0.4

2 files

2.0.3

2 files

2.0.2

2 files

2.0.1

2 files

2.0.0

2 files

1.1.8

2 files

1.1.7

2 files

1.1.6

2 files

1.1.5

2 files

1.1.4

2 files

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.10

1 file

1.0.9

2 files

1.0.8

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

0.1.0.3

2 files

0.1.0.2

2 files

0.1.0.1

2 files

0.1.0.0

2 files

0.0.7.54

2 files

0.0.7.53

2 files

0.0.7.52

2 files

0.0.7.50

2 files

0.0.7.48

2 files

0.0.7.47

2 files

0.0.7.46

2 files

0.0.7.45

2 files

0.0.7.44

2 files

0.0.7.43

2 files

0.0.7.41

2 files

0.0.7.40

2 files

0.0.7.39

2 files

0.0.7.38

2 files

0.0.7.37

2 files

0.0.7.36

2 files

0.0.7.35

2 files

0.0.7.34

2 files

0.0.7.33

2 files

0.0.7.32

2 files

0.0.7.31

2 files

0.0.7.30

2 files

0.0.7.29

2 files

0.0.7.28

2 files

0.0.7.27

2 files

0.0.7.26

2 files

0.0.7.25

2 files

0.0.7.24

2 files

0.0.7.23

2 files

0.0.7.22

2 files

0.0.7.21

2 files

0.0.7.20

2 files

0.0.7.19

2 files

0.0.7.18

2 files

0.0.7.17

2 files

0.0.7.16

2 files

0.0.7.15

2 files

0.0.7.14

2 files

0.0.7.13

2 files

0.0.7.11

2 files

0.0.7.10

2 files

0.0.7.9

2 files

0.0.7.8

2 files

0.0.7.7

2 files

0.0.7.6

2 files

0.0.7.5

2 files

0.0.7.4

2 files

0.0.7.3

2 files

0.0.7.2

2 files

0.0.7.1

2 files

0.0.6.14

2 files

0.0.6.13

2 files

0.0.6.12

2 files

0.0.6.11

2 files

0.0.6.10

2 files

0.0.6.9

2 files

0.0.6.8

2 files

0.0.6.7

2 files

0.0.6.6

2 files

0.0.6.5

2 files

0.0.6.4

2 files

0.0.6.3

2 files

0.0.6.2

2 files

0.0.6.1

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

0.0.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page