# WISCANet: A Rapid Development Platform for Beyond 5G and 6G Radio System Prototyping
## 3 System Design  
WISCANet is a hardware-agnostic control software that automatically configures and controls an SDR network. A complete WISCANet deployment consists of a control node that runs this software, some number of edge computing nodes that receive instructions from this control node, and radio devices (SDRs, USRPs, RFFEs, etc.) connected to these edge nodes that perform RF operations. This configuration is depicted in Figure 1. The control node takes a user-defined baseband processing application and handles application distribution, hardware configuration, and edge node execution to deploy this application over-the-air. This control software is implemented in C++ using the C++17 standard, leverages the Secure Shell (SSH) protocol for edge node provisioning, and performs management over a secondary Transmission Control Protocol (TCP) channel. The system is configured in a set of files written in the industry standard YAML Ai not Markup Language (YAML), an example of which is provided in Listing 1. These files configure the edge node application paths, operating modes, frequencies, sampling rates, device addressing and more. Each edge node interfaces with radio devices using the USRP Control subprocess. When instructed to, the edge node launches the user-defined baseband application at the runtime specified by the control node and interfaces this application with the control process. An example of this interaction is depicted in Figure 3 for an Ettus USRP peripheral. At the start of each application, the system initializes all edge nodes to an initial start time and maintains stable phase between channels. After this initial start time, transmit and receive timing is defined by the user software, as depicted in Figure 4.  
WISCANet has a stable Application Binary Interface (ABI), including an RF sample line protocol over the User Datagram Protocol (UDP), which is designed to be programming-language agnostic. This allows users to define applications in any language and--when run inside the WISCANet framework--gain access to WISCANet's quasi-real-time RF transmit and receive capabilities and diverse feature set. We already provide bindings for MATLAB, Python, and GNURadio, and can easily extend support to other languages. Figure 3: Example interactions between a control node, edge node, and Ettus radio peripheral. The control node performs command and control operations over the TCP Control Channel and distributes baseband software over the SSH protocol. The edge node software has multiple threads, one controlling attached USRPs and the other running the user’s application. They communicate through WISCANet bindings that leverage UDP for inter-process communication. WISCANet supports Ettus USRP radios that support the UHD interface. This enables support for flexible multi-antenna and multi-channel operation, including phase-synchronous operation. WISCANet requires GPS synchronization between all Ettus radio frontends; however, more complex networks may utilize the UHD multi_usrp interface, which enables multiple USRPs to behave as one radio unit by configuring them to share a single reference GPS, 10 MHz clock, and pulse-per second signal. This, in turn, enables phase synchronized operation across multiple channels, including stable phase between on-air frames in the quasi-real-time system. This enables beamforming and MIMO applications leveraging estimates made in prior cycles. The Octoclock-G may also be leveraged to provide synchronization to radios in the network. When different models of USRP are used in a single system, there must be some small compensation for the differing baseband delay in the time to first sample. These are fixed quantities determined by the different FPGA routing delays in different radio firmware. If the on-air time is sufficiently long and there is enough guard time, this tends toward being a negligible difference.