Changes between Version 2 and Version 3 of Tutorials/Wireless/GNURadioOFDM


Ignore:
Timestamp:
Oct 3, 2023, 6:50:03 PM (14 months ago)
Author:
prasanthi
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Tutorials/Wireless/GNURadioOFDM

    v2 v3  
    55=== Description ===
    66
    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].
     7This 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]
    88
    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.
    109
    1110=== Prerequisites ===
     
    1312
    1413=== Resources required ===
    15 1 USRP-2974 (sdr2-md1 or sdr2-s1-lg1) on COSMOS SB1 or COSMOS bed.
     14A 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
    1618=== Tutorial Setup ===
    1719
     
    2325 1. Make sure all the nodes and devices used in the experiment are turned off:
    2426{{{#!shell
    25 omf tell -a offh -t sdr2-s1-lg1 
     27omf tell -a offh -t system:topo:all 
    2628}}}
    27  1. Load rfnoc_fosphor_3_15.ndz on sdr2-s1-lg1.
     29 1. Load gnuradio_ofdm.ndz on both the nodes
    2830{{{#!shell
    29 omf load -i rfnoc_fosphor_3_15.ndz -t sdr2-s1-lg1
     31omf load -i gnuradio_ofdm.ndz -t node1-1,node1-2
    3032}}}
    31  1. Turn the SDR on and check the status
     33 1. Turn the nodes on and check the status
    3234{{{#!shell
    33 omf tell -a on -t sdr2-s1-lg1
     35omf tell -a on -t node1-1,node1-2
    3436}}}
    3537{{{#!shell
    36 omf stat -t sdr2-s1-lg1
     38omf stat -t all
    3739}}}
    38  1. Log into the SDR with -Y for X11 forwarding
     40 1. Open 2 terminal sessions and ssh into the nodes with -Y for X11 forwarding
    3941{{{#!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 
     42ssh root@node1-1 -Y
     43ssh root@node1-2 -Y
    6744}}}
    6845
     
    7047=== Experiment Execution ===
    7148
    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 ====
    9750
    98 ==== Run rfnoc-fosphor GRC application ====
     51
     52==== Run the GRC application ====
    9953{{{#!shell
    10054gnuradio-companion  /root/gr-ettus/examples/rfnoc/rfnoc_fosphor.grc