Changes between Version 2 and Version 3 of Tutorials/Wireless/GNURadioOFDM
- Timestamp:
- Oct 3, 2023, 6:50:03 PM (14 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Tutorials/Wireless/GNURadioOFDM
v2 v3 5 5 === Description === 6 6 7 This tutorial illustrates use of [https://archive.fosdem.org/2015/schedule/event/rfnocfosphor/attachments/slides/804/export/events/attachments/rfnocfosphor/slides/804/fosdem2015_rfnoc_fosphor.pdf RFNoC Fosphor block for spectrum visualization]. RFNoC Fosphor block is the FPGA accelerated version of [https://projects.osmocom.org/projects/sdr/wiki/Fosphor gr-fosphor (CPU/GPU version)]. As any other RFNoC blocks, RFNoC Fosphor can be instantiated on 3rd generation USRP devices, and can be used in conjunction with gnuradio-companion(GRC) on the host computer. This tutorial demonstrates GRC RFNoC Fosphor application on USRP-2974 in [wiki:Hardware/sdr/usrp2974 COSMOS testbed].7 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] 8 8 9 Running a GRC application on a testbed node requires using graphical user interface(GUI) over SSH. This tutorial also illustrates use of [https://mobaxterm.mobatek.net/ MobaXterm] and jumphost to setup X forwarding for accessing GUI over SSH.10 9 11 10 === Prerequisites === … … 13 12 14 13 === Resources required === 15 1 USRP-2974 (sdr2-md1 or sdr2-s1-lg1) on COSMOS SB1 or COSMOS bed. 14 A pair of USRPs in COSMOS or ORBIT testbed. 15 - 2 USRP X310s (connected to node1-1,node1-2) in sb2.orbit-lab.org or 16 - 2 USRP 2974s (sdr2-s1-lg1,sdr1-md1) in sb1.cosmos-lab.org 17 16 18 === Tutorial Setup === 17 19 … … 23 25 1. Make sure all the nodes and devices used in the experiment are turned off: 24 26 {{{#!shell 25 omf tell -a offh -t s dr2-s1-lg127 omf tell -a offh -t system:topo:all 26 28 }}} 27 1. Load rfnoc_fosphor_3_15.ndz on sdr2-s1-lg1.29 1. Load gnuradio_ofdm.ndz on both the nodes 28 30 {{{#!shell 29 omf load -i rfnoc_fosphor_3_15.ndz -t sdr2-s1-lg131 omf load -i gnuradio_ofdm.ndz -t node1-1,node1-2 30 32 }}} 31 1. Turn the SDRon and check the status33 1. Turn the nodes on and check the status 32 34 {{{#!shell 33 omf tell -a on -t sdr2-s1-lg135 omf tell -a on -t node1-1,node1-2 34 36 }}} 35 37 {{{#!shell 36 omf stat -t sdr2-s1-lg138 omf stat -t all 37 39 }}} 38 1. Log into the SDRwith -Y for X11 forwarding40 1. Open 2 terminal sessions and ssh into the nodes with -Y for X11 forwarding 39 41 {{{#!shell 40 ssh root@sdr2-s1-lg1 -Y 41 }}} 42 ==== Configure !MobaXterm for node access ==== 43 Another way to access the SDR is to set up a MobaXterm session directly to the SDR, with the console as the jump host. As shown in the pictures below, for the SSH session, use remote host = sdr2-s1-lg1.sb1.cosmos-lab.org username = root. Enable X11 forwarding in advanced settings. Set up jump host in network settings, with gateway host = console.sb1.cosmos-lab.org, username = your cosmos username. 44 45 [[Image(nodessh.JPG, width=600px)]] 46 [[Image(jumphost.png, width=600px)]] 47 48 The following is displayed when this session runs. 49 {{{#!shell 50 ┌────────────────────────────────────────────────────────────────────┐ 51 │ • MobaXterm 20.6 • │ 52 │ (SSH client, X-server and networking tools) │ 53 │ │ 54 │ ➤ SSH session to root@sdr2-s1-lg1.sb1.cosmos-lab.org │ 55 │ • SSH gateway : ✔ (myusername@console.sb1.cosmos-lab.org) │ 56 │ • SSH compression : ✔ │ 57 │ • SSH-browser : ✔ │ 58 │ • X11-forwarding : ✔ (remote display is forwarded through SSH) │ 59 │ • DISPLAY : ✔ (automatically set on remote server) │ 60 │ │ 61 │ ➤ For more info, ctrl+click on help or visit our website │ 62 └────────────────────────────────────────────────────────────────────┘ 63 64 Last login: Fri Dec 11 04:49:36 2020 from 10.106.0.21 65 root@sdr2-s1-lg1:~# 66 42 ssh root@node1-1 -Y 43 ssh root@node1-2 -Y 67 44 }}} 68 45 … … 70 47 === Experiment Execution === 71 48 72 ==== RFNoC Fosphor FPGA image ==== 73 Custom USRP-2974 FPGA image /bit/rfnoc3_15_fosphor_x310.lvbitx will be used for this tutorial. To use this image with a UHD or GRC application use the fpga-path argument as shown below. 74 {{{#!shell 75 uhd_usrp_probe --args="resource=RIO0,type=x300,fpga-path=/root/bit/rfnoc3_15_fosphor_x310.lvbitx" 76 }}} 77 Following are the blocks in rfnoc3_15_fosphor_x310.lvbitx 78 {{{#!shell 79 | | _____________________________________________________ 80 | | / 81 | | | RFNoC blocks on this device: 82 | | | 83 | | | * DmaFIFO_0 84 | | | * Radio_0 85 | | | * Radio_1 86 | | | * DDC_0 87 | | | * DUC_0 88 | | | * FFT_0 89 | | | * Window_0 90 | | | * FIR_0 91 | | | * SigGen_0 92 | | | * KeepOneInN_0 93 | | | * fosphor_0 94 | | | * FIFO_0 95 | | | * FIFO_1 96 }}} 49 ==== Find the USRPs ==== 97 50 98 ==== Run rfnoc-fosphor GRC application ==== 51 52 ==== Run the GRC application ==== 99 53 {{{#!shell 100 54 gnuradio-companion /root/gr-ettus/examples/rfnoc/rfnoc_fosphor.grc