[[Include(WikiToC)]] == GNURadio OFDM tutorial == === Description === This tutorial illustrates the use of GNURadio OFDM blocks for data transfer between a pair of USRPs. The GNURadio flowgraphs used here were obtained from the workshop material provided for the [https://gitlab.flux.utah.edu/powderrenewpublic/mww2019 POWDER-RENEW Mobile and Wireless Week 2019]. They are mainly based on the GRC examples available in the [GNURadio repository https://github.com/gnuradio/gnuradio/tree/main/gr-digital/examples/ofdm]. For a good understanding of the flowgraphs and the blocks, please refer to OFDM pages on GNURadio Wiki such as [https://wiki.gnuradio.org/index.php/Basic_OFDM_Tutorial OFDM Basics] and [https://wiki.gnuradio.org/index.php/Schmidl_%26_Cox_OFDM_synch. OFDM Synchronization] === 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 the COSMOS [wiki:GettingStarted getting started] page to get started. === Resources required === A pair of USRPs in COSMOS or ORBIT testbed. - 2 USRP X310s (connected to node1-1,node1-2) in sb2.orbit-lab.org or - 2 USRP 2974s (sdr2-s1-lg1,sdr1-md1) in sb1.cosmos-lab.org === Tutorial Setup === Follow the steps below to gain access to the [wiki:/hardware/Domains/sb1 sandbox 1 console] and set up nodes with appropriate images. 1. If you don't have one already, sign up for a [https://www.cosmos-lab.org/portal-2/ COSMOS account] 1. [wiki:/GettingStarted#MakeaReservation Create a resource reservation] on sandbox 1 1. [wiki:/GettingStarted#LogintoyourReservation Login] into sandbox 1 console (console.sb1.cosmos-lab.org) with an SSH session. SSH session for COSMOS SB1 with MobaXterm can be setup as shown, with remote host = console.sb1.cosmos-lab.org, and username = your COSMOS username. X11 forwarding is enabled to access GUI. [[Image(mobaxterm_sb1_session.JPG, width=600px)]] 1. Make sure all the nodes and devices used in the experiment are turned off: {{{#!shell omf tell -a offh -t system:topo:all }}} 1. Load gnuradio_ofdm.ndz on both the nodes {{{#!shell omf load -i gnuradio_ofdm.ndz -t node1-1,node1-2 }}} 1. Turn the nodes on and check the status {{{#!shell omf tell -a on -t node1-1,node1-2 }}} {{{#!shell omf stat -t all }}} 1. Open 2 terminal sessions and ssh into the nodes with -Y for X11 forwarding {{{#!shell ssh root@node1-1 -Y ssh root@node1-2 -Y }}} === Experiment Execution === ==== Find the USRPs ==== ==== Run the GRC application ==== {{{#!shell gnuradio-companion /root/gr-ettus/examples/rfnoc/rfnoc_fosphor.grc }}} {{{#!shell root@sdr2-s1-lg1:~# gnuradio-companion /root/gr-ettus/examples/rfnoc/rfnoc_fosphor.grc <<< Welcome to GNU Radio Companion 3.7.14.0 >>> Block paths: /usr/local/share/gnuradio/grc/blocks Loading: "/root/gr-ettus/examples/rfnoc/rfnoc_fosphor.grc" >>> Done }}} With X11 forwarding enabled, GRC should show up as below. Set Device Arguments in the Device3 block to "resource=RIO0,fpga-path=/root/bit/rfnoc3_15_fosphor_x310.lvbitx". [[Image(rfnoc_fosphor_grc.jpg, width=800px)]] Set center frequency, bandwidth and run the application to see spectrum display. || [[Image(rfnoc_fosphor_display.jpg, width=800px)]] || [[Image(rfnoc_fosphor_display_bed.jpg, width=800px)]] ||