RemoteRF USRP Extension and Deployment

UHD-compatible USRP integration and RemoteRF deployment at Yonsei

RemoteRF is a Python-based platform that enables SDR devices connected to a remote server or host PC to be controlled as if they were locally attached to a client machine. The platform was developed by Ethan Ge and Prof. Ian Roberts at UCLA, affiliated with the UCLA Wireless Lab led by Prof. Ian Roberts.

During my visit to UCLA, I implemented a custom device schema for RemoteRF to add support for USRP devices. At the time, RemoteRF primarily supported the ADI PlutoSDR, so this work extended the platform to support a broader range of SDR hardware.

USRP connected to the RemoteRF test server at UCLA for remote SDR control experiments.

The main implementation challenge was to make existing UHD-based USRP code work through RemoteRF’s Python object-based call/response interface. To address this, I developed a UHD-compatible wrapper that mimics the relevant classes and methods of the original USRP Hardware Driver (UHD) API.

I also collaborated with Ethan to add support for dictionary-based arguments in RemoteRF. This enabled the device schema to parse structured argument dictionaries on the server side and reconstruct the corresponding method and constructor calls, allowing more flexible behavior for custom device wrappers.

Building on our previous USRP soft modem implementation, I implemented a basic RemoteRF USRP driver that allows existing UHD-based transmission code to run with minimal modification. In practice, most of the original code can be reused by simply replacing the UHD import path from import uhd with a RemoteRF-compatible wrapper import such as import remoteRF.uhd.

To further reduce client-side code changes, I proposed additional client- and server-side modifications to support dictionary-based class mockup responses. With these changes, the client can automatically instantiate the appropriate wrapper class based on the server response, preserving a programming model close to the native UHD API.

As part of this implementation, I also validated and revised RemoteRF’s custom driver documentation, particularly the sections related to custom device schema development.

MIMO transmission result obtained using a remotely controlled USRP through the RemoteRF interface.

The resulting USRP support has been integrated into the official RemoteRF deployment, where I am also listed as a contributor. I also extended RemoteRF to support the ADI Phaser phased array platform, building on my previous phased-array implementation.

I currently operate an independent RemoteRF deployment at Yonsei University, providing remote access to our USRP and phased-array platforms. The deployment is used to share these SDR and phased-array resources with members of our lab as well as other researchers interested in experimenting with the platforms.

Independent RemoteRF deployment at Yonsei University for remote access to our USRP and phased-array platforms.