NetSys 2023, International Conference on Networked Systems 20234-7 September 2023 – Potsdam, Germany
NetSys 2023 Tutorial on Software-Defined Radio
Tutorial: Building Wireless Communication Systems with FutureSDR
A new performance metric for measuring freshness of information
Date: 4th September, 2023
Speaker: Bastian Bloessl
Introduction Software Defined Radios (SDRs) are an important driver for research and innovation in the wireless sector. While SDRs were always invaluable for teaching and experimentation with prototypes, they gain further relevance with the recent trend towards virtualized, programmable radio access networks, which adopt the technology to shift from highly configurable to programmable wireless networks. Yet, implementing SDR applications was and still is a great challenge. At the intersection of computer science and electrical engineering, SDRs require not only an understanding of communications but also of systems-related aspects to realize high-performance implementations that can deal with the bandwidth and latency constraints of today’s technologies.
The goal of this tutorial is to help participants to get started in this domain, focusing on systems- and implementation-related aspects. We will provide an overview of core concepts that are used by any SDR framework and then dive deeper into FutureSDR, a novel project that has several unique features:
- It is implemented in Rust, a modern type-safe language.
- It supports async principles to overcome long-standing issues with I/O and blocking.
- It can be extended with custom schedulers, optimized for a particular architecture or application.
- It can be extended with custom buffers, enabling efficient integration of accelerators.
- It runs on a wide range of platforms from Xilinx FPGA boards to the browser through WebAssembly.
- It comes with an integrated REST API to easily interface the flowgraph remotely, enabling a seamless workflow even for embedded devices.
Objectives Participants understand the core concepts of SDR frameworks, in general, and FutureSDR, in particular. They learn about systems-related challenges of SDR implementations and how FutureSDR helps to solve them. Applying this knowledge, they are able to conceptualize the structure of an SDR transceiver for a give signal processing chain. Attendees are, furthermore, able to use existing SDR implementations and interface them remotely through a REST API. Finally, they understand how the framework can be extended to realize custom communication systems.
Outline Since we might not be able to provide hardware for every participant, we will provide pre-recorded samples that can be used in the hands-on parts. However, participants can also receive live data from a shared Aaronia SpectranV6 SDR that allows streaming samples over HTTP.
SDR Core Concepts and FutureSDR (45min, talk)
- Stream- and message-based transports
- Task-based async SDR runtime
- Integration of hardware accelerators
- Remote interaction, using the REST API
- Portability and platform-independence
Implementing FutureSDR Applications (60min, hands-on)
- Create a receiver, using existing blocks
- Extend FutureSDR with custom blocks
Remote Interaction and Visualization (60min, hands-on)
- Using the REST API for live reconfiguration
- Websocket-based GUI components for visualization
Requirements The hands-on parts require Git, a Rust toolchain, and an editor. We recommend that participants install this software in their native environment. We will, however, also provide a ready-to-use Ubuntu-based VM. The VM is created with VirtualBox and exported in OVA format. We recommend using it with VirtualBox, having the Extension Pack installed.
Material Participants will receive the slides, the code examples, and a VM with everything pre-installed.
Acknowledgements This work has been co-funded by the LOEWE initiative (Hessen, Germany) within the emergenCITY center, as well as the German Research Foundation (DFG) in the Collaborative Research Center (SFB) 1053 MAKI. The authors acknowledge the financial support by the Federal Ministry of Education and Research of Germany in the project “Open6GHub” (grant number: 16KISK014).