== Using mmWave equipment on COSMOS SandBox1 (In Progress) == === Description === A pair of Sivers EVK06002, evaluation kits for Sivers IMA TRX BF/01, are deployed on COSMOS SandBox1. The TRX BF/01 is a 16+16 IEEE802.11ad Beamforming Transceiver with a complete Radio front-end and control functions. Current deployment of COSMOS SB1 consists of 4 servers, 2 USRP N310s, 2 USRP 2974s and mmWave equipment, as shown in the following figure. Nodes, srv1-lg1 and srv2-lg1 are directly connected (over USB, for JTAG programming) to USRP X310s sdr2-md2 and sdr2-md3 respectively. srv1-lg1 and srv2-lg1 also control the Sivers evaluation kits over USB. Channel sounding is the process of evaluating the characteristics of a radio environment. Evaluating the power delay profile (PDP) of a radio channel helps in developing statistical models for channel simulation. This tutorial demonstrates how to use the RFNoC channel sounder design for obtaining the PDP of channels up to 100MHz wide. An FPGA correlator module computes real time correlation power, and an averaging module, averages contiguous sets of PDP over time, and sends the result to host CPU. This design is compatible with 3rd generation Ettus USRP devices. This tutorial uses USRP X310s on ORBIT grid. === Prerequisites === In order to access the test bed, create a reservation and have it approved by the reservation service. Access to the resources is granted after the reservation is confirmed. Please follow the process shown on [wiki:cosmos_workflow the COSMOS work flow page] to get started. === Resources required === 2 host nodes and 2 USRP X310s are required for this experiment. USRP X310 devices in ORBIT grid are located in the massive MIMO mini-racks [https://www.orbit-lab.org/wiki/Hardware/bDomains/aGrid#Massive-MIMOmini-racks]. === Execution === ==== Prepare the host nodes ==== Determine the set of nodes that you're using. If you have a topology assigned, it will be entered in the form "system:topo:group-red" for example. * Load channel-sounder.ndz on a pair of nodes (group assigned to you) {{{ prasanthi@console.grid:~$ omf load -i channel-sounder.ndz -t system:topo:group-red }}} * Turn the nodes on {{{ prasanthi@console.grid:~$ omf tell -a on -t system:topo:group-red }}} * Check the status {{{ prasanthi@console.grid:~$ omf stat -t system:topo:group-red }}} {{{ ----------------------------------------------- Node: node19-1.grid.orbit-lab.org State: POWERON Node: node20-1.grid.orbit-lab.org State: POWERON ----------------------------------------------- }}} * ssh to the nodes {{{ prasanthi@console.grid:~$ ssh root@node19-1 }}} ==== Prepare the USRPs ==== * If you are using a topology, USRPs are assigned by default. For example, group-red uses 23-16 as TX and 24-16 as RX. ||='''Group color'''=||='''TX USRP''' =||='''RX USRP''' =|| ||red || 10.10.23.16 || 10.10.24.16 || || yellow || 10.10.23.1 || 10.10.24.18 || || green || 10.10.23.14 || 10.10.24.14 || || purple || 10.10.23.15 || 10.10.24.15 || || blue || 10.10.23.12 || 10.10.24.13 || || black || 10.10.23.11 || 10.10.24.11 || || cyan || 10.10.23.13 || 10.10.24.12 || || white || 10.10.23.18 || 10.10.24.17 || || orange || 10.10.23.2 || 10.10.23.3 || || pink || 10.10.23.4 || 10.10.23.5 || || tan || 10.10.23.6 || 10.10.23.7 || || gray || 10.10.24.3 || local X310(PCIe) || || brown || 10.10.24.4 || local X310(PCIe) || || silver || 10.10.24.5 || local X310(PCIe) || || gold || 10.10.24.6 || local X310(PCIe) || * Check if USRPs have the modules required for the experiment by running uhd_usrp_probe on each on of them. For USRP over the network, run {{{ root@node19-1:~# uhd_usrp_probe --args="addr=10.10.23.16" }}} For local USRP (PCIe), run {{{ root@node3-20:~# uhd_usrp_probe --args="resource=RIO0" }}} {{{ | | _____________________________________________________ | | / | | | RFNoC blocks on this device: | | | | | | * DmaFIFO_0 | | | * Radio_0 | | | * Radio_1 | | | * DDC_0 | | | * DUC_0 | | | * Corrmag63avg8k_0 | | | * Spreader_0 | | | * SpecSense2k_0 | | | * FIFO_0 | | | * FIFO_1 }}} If you see the above at the end of uhd_usrp_probe output, the USRPs are ready. Spreader_0 is used to spread the transmit signal, and Corrmag63avg8k_0 is the correlator on the receive side. ==== Run the experiment * Start transmit application on the TX node. If you were assigned a group, the command below will start the application on the assigned TX USRP, with a bandwidth of 100MHz. {{{ root@node19-1:~# /root/uhd/host/build/examples/channel_sounding_tx --group red }}} * Start receive application on the RX node. If you were assigned a group, the command below will start the application on the assigned RX USRP {{{ root@node20-1:~# ./uhd/host/build/examples/channel_sounding_rx --group red }}} * Download [https://wiki.cosmos-lab.org/raw-attachment/wiki/tutorials/wideband/channel_sounding_display.html channel_sounding_display.html] (also attached at the bottom of this tutorial) and open it in your browser. Select your group from the drop down menu and click Connect. Then, click the start button, and you should see PDP of the channel. || [[Image(channel_sounding_display_orange.jpg]] ||