Changes between Version 27 and Version 28 of Tutorials/Wireless/mmwave80211adORCA


Ignore:
Timestamp:
Mar 30, 2020, 10:56:24 AM (4 years ago)
Author:
prasanthi
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Tutorials/Wireless/mmwave80211adORCA

    v27 v28  
    55RFNoC 802.11ad preamble processing blocks demonstrated in this tutorial were developed by researchers at IMDEA networks institute, Spain, as an extension for EU project ORCA https://www.orca-project.eu/orca-at-the-imec-technology-forum. The extension was named MIllimeter wave SDR based Open experimentation platform (MISO), and the focus was on developing hardware/software for mmWave experimentation on SDRs. Specifically FPGA modules for processing 802.11ad(SC) preamble at scaled down bandwidth were designed and integrated with RFNoC, GNURadio, to be used on USRP X310s. Detailed information about the project can be found at https://www.orca-project.eu/millimeter-wave-open-experimentation-platform/.
    66
    7 Setup for the experiment is shown in the figure above. In the benchtop 60GHz setup of SandBox1, either USRP X310 or RFSoC can be used for baseband processing. RF Switche boxes as shown in the figure are used to select between X310 and RFSoC. RF Control commands are explained here - https://wiki.cosmos-lab.org/wiki/testing/services/rf_control. To select X310s as baseband processing units, all the switches in the RF switch boxes are configured to port 1.
     7Setup for the experiment is shown in the figure above. In the benchtop 60GHz setup of SandBox1, either USRP X310 or RFSoC can be used for baseband processing. RF Switche boxes as shown in the figure are used to select between X310 and RFSoC. RF Control commands are explained at https://wiki.cosmos-lab.org/wiki/testing/services/rf_control. To select X310s as baseband processing units, all the switches in the RF switch boxes are configured to port 1.
    88
    99This experiment uses USRP X310s for baseband processing and RF front-end control. Sivers control software on srv3, srv4 talk to the mmWave front-ends over USB links. Host GNURadio applications on srv3, srv4, send/receive data samples to/from the X310s over 10G Ethernet links. 802.11ad single carrier frames at reduced bandwidth (200MHz) are transmitted over 60GHz mmWave link, and channel impulse response is computed on the receive end.
     
    1313
    1414=== Resources required ===
    15 4 servers srv1-lg1 to srv4-lg1, 2 USRP X310s rfdev3-1, rfdev3-2 and both the Sivers platforms rfdev3-5, rfdev3-6 on COSMOS SB1.
     152 servers srv3-lg1, srv4-lg1, 2 USRP X310s rfdev3-1, rfdev3-2, and both the Sivers platforms rfdev3-5, rfdev3-6 on COSMOS SB1.
    1616
    1717=== Tutorial Setup ===
     
    2323 1. Make sure all the nodes and devices used in the experiment are turned off:
    2424{{{
    25 omf tell -a offh -t srv1-lg1,srv2-lg1,srv3-lg1,srv4-lg1,rfdev3-1,rfdev3-2,rfdev3-5,rfdev3-6 
     25omf tell -a offh -t srv3-lg1,srv4-lg1,rfdev3-1,rfdev3-2,rfdev3-5,rfdev3-6 
    2626}}}
    27  1. The image rfnoc_wigig.ndz has aforementioned RFNoC 802.11ad preamble processing blocks installed.   
    28   Load rfnoc_wigig.ndz on srv1,srv2. The image sivers_sb1_cosmos.ndz has UHD and Sivers control software installed.
    29   Load sivers_sb1_cosmos.ndz on srv3,srv4.
     27 1. The image rfnoc_wigig.ndz has aforementioned RFNoC 802.11ad preamble processing blocks and Sivers control software installed.   
     28  Load rfnoc_wigig.ndz on srv3,srv4. 
    3029{{{
    31 omf load -i rfnoc_wigig.ndz -t srv1-lg1,srv2-lg1
    32 }}}
    33 {{{
    34 omf load -i sivers_sb1_cosmos.ndz -t srv3-lg1,srv4-lg1
     30omf load -i rfnoc_wigig.ndz -t srv3-lg1,srv4-lg1
    3531}}}
    3632 1. Turn all the required resources on and check the status
    3733{{{
    38 omf tell -a on -t srv1-lg1,srv2-lg1,srv3-lg1,srv4-lg1,rfdev3-1,rfdev3-2,rfdev3-5,rfdev3-6
     34omf tell -a on -t srv3-lg1,srv4-lg1,rfdev3-1,rfdev3-2,rfdev3-5,rfdev3-6
    3935}}}
    4036{{{
     
    4844==== Find and prepare USRPs ====
    4945
    50 * The IP addresses for Ethernet Port 1(10G) on the X310s sdr2-md2 and sdr2-md3 were hard-coded to 10.115.2.2 and 10.115.2.3 respectively. To access them from srv1-lg1 or srv2-lg2, configure the network interface eno2 as follows
     46* The IP addresses for Ethernet Port 1(10G) on the X310s rfdev3-1 and rfdev3-2 were hard-coded to 10.115.2.2 and 10.115.2.3 respectively. To access them from srv3-lg1 or srv4-lg1, configure the network interface enp1s0 as follows
    5147{{{
    52 root@srv2-lg1:~# ifconfig eno2 10.115.1.1 netmask 255.255.0.0 mtu 9000 up
    53 root@srv2-lg1:~# ifconfig eno2
    54 eno2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
     48root@srv3-lg1:~# ifconfig enp1s0 10.115.1.1 netmask 255.255.0.0 mtu 9000 up
     49root@srv3-lg1:~# ifconfig enp1s0
     50enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
    5551        inet 10.115.1.1  netmask 255.255.0.0  broadcast 10.115.255.255
    56         inet6 fe80::9a03:9bff:fe61:b0b1  prefixlen 64  scopeid 0x20<link>
    57         ether 98:03:9b:61:b0:b1  txqueuelen 1000  (Ethernet)
    58         RX packets 4661357820  bytes 37005247545892 (37.0 TB)
    59         RX errors 0  dropped 692293  overruns 0  frame 0
    60         TX packets 59454137  bytes 3576874343 (3.5 GB)
     52        inet6 fe80::f652:14ff:fe83:b930  prefixlen 64  scopeid 0x20<link>
     53        ether f4:52:14:83:b9:30  txqueuelen 1000  (Ethernet)
     54        RX packets 2839670  bytes 20838442698 (20.8 GB)
     55        RX errors 0  dropped 0  overruns 0  frame 0
     56        TX packets 78864  bytes 6661472 (6.6 MB)
    6157        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    6258}}}
     
    6460* Run uhd_find_devices to check if the X310s can be reached
    6561{{{
    66 root@srv2-lg1:~# uhd_find_devices --args="addr=10.115.2.3"
     62root@srv3-lg1:~# uhd_find_devices --args="addr=10.115.2.3"
    6763[INFO] [UHD] linux; GNU C++ version 7.4.0; Boost_106501; UHD_3.14.1.1-release
    6864--------------------------------------------------
     
    7874}}}
    7975
    80 * Check which RFNoC blocks the are loaded on the X310s, by running uhd_usrp_probe
     76* Check which RFNoC blocks are loaded on the X310s, by running uhd_usrp_probe
    8177{{{
    82 root@srv1-lg1:~# uhd_usrp_probe --args="addr=10.115.2.2"
     78root@srv3-lg1:~# uhd_usrp_probe --args="addr=10.115.2.2"
    8379}}}
    8480* Following is the list of RFNoC blocks required for the experiment
     
    10399* If the required RFNoC blocks are not found, load X310 with MISO_IMAGE_x300.bit
    104100{{{
    105 root@srv1-lg1:~# uhd_image_loader --args="addr=10.115.2.2,type=x300" --fpga-path="ORCA_MISO_PROJECT/FPGA_IMAGES/MISO_IMAGE_x300.bit"
     101root@srv3-lg1:~# uhd_image_loader --args="addr=10.115.2.2,type=x300" --fpga-path="ORCA_MISO_PROJECT/FPGA_IMAGES/MISO_IMAGE_x300.bit"
    106102}}}
    107103* Power cycle X310 to use the new image, and run uhd_usrp_probe to check RFNoC blocks.
     
    122118
    123119==== Run the experiment ====
    124 * Open transmit application TX_TEST.grc on transmit node(srv2-lg1). This application transmits 802.11ad frames over rfdev3-2(10.115.2.3), at 200MSPS, by reading samples from a pre-generated file.
    125 * Open receive application RADIORX_CIR.grc on receive node(srv1-lg1). This application receives and processes samples over rfdev3-1(10.115.2.2) as seen in the grc model below. Channel impulse response computed for every frame is written into a file on the host node.
     120* Open transmit application TX_TEST.grc on transmit node(srv4-lg1). This application transmits 802.11ad frames over rfdev3-2(10.115.2.3), at 200MSPS, by reading samples from a pre-generated file.
     121* Open receive application RADIORX_CIR.grc on receive node(srv3-lg1). This application receives and processes samples over rfdev3-1(10.115.2.2) as seen in the grc model below. Channel impulse response computed for every frame is written into a file on the host node.
    126122
    127 || root@srv2-lg1:~# gnuradio-companion TX_TEST.grc || root@srv1-lg1:~# gnuradio-companion RADIORX_CIR.grc ||
     123|| root@srv4-lg1:~# gnuradio-companion ORCA_MISO_PROJECT/examples/TX_TEST.grc || root@srv3-lg1:~# gnuradio-companion ORCA_MISO_PROJECT/examples/RADIORX_CIR.grc ||
    128124||  [[Image(tx_test_grc.jpg, 500px)]]      || [[Image(radiorx_cir_grc.jpg, 500px)]]      ||
    129125
    130 * Run the applications.
    131 * Plot the CIR using CIR_read_out_file.m script
     126* Run TX applications followed by the RX application.
     127* Launch octave and plot the CIR using ORCA_MISO_PROJECT/examples/CIR_read_out_file.m
    132128* Shown below are the CIR plots obtained for TX beam angles set to 0 and -5 degrees.
    133129||  TX beam angle 0                ||  TX beam angle -5                       ||