Changes between Version 1 and Version 2 of Tutorials/Wireless/GNURadioCFOEstimation


Ignore:
Timestamp:
Feb 9, 2024, 4:42:07 PM (10 months ago)
Author:
prasanthi
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Tutorials/Wireless/GNURadioCFOEstimation

    v1 v2  
    4646    ssh -Y root@srv1-lg1
    4747    }}}
     48=== Experiment Execution ===
     49==== Find and prepare USRPs  ====
     50* Upon logging into the server, run eth_config.sh script. This sets up the 10G data interfaces eno1, eno2. After running the script, you should see that the data interfaces have the appropriate IP addresses assigned, as per the tables for [https://wiki.cosmos-lab.org/wiki/Architecture/Domains/cosmos_sb1#IPAddressAssignment SB1] and [https://wiki.cosmos-lab.org/wiki/Architecture/Domains/cosmos_sb2#IPAddressAssignment SB2].
     51{{{#!td
     52   SB1
     53   {{{#!shell
     54root@srv1-lg1:~# ./eth_config.sh
     55root@srv1-lg1:~# ifconfig eno1
     56eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
     57        inet 10.38.1.1  netmask 255.255.0.0  broadcast 10.38.255.255
     58        inet6 fe80::1e34:daff:fe42:c3c  prefixlen 64  scopeid 0x20<link>
     59        ether 1c:34:da:42:0c:3c  txqueuelen 1000  (Ethernet)
     60        RX packets 712  bytes 74814 (74.8 KB)
     61        RX errors 0  dropped 595  overruns 0  frame 0
     62        TX packets 42  bytes 9132 (9.1 KB)
     63        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
     64root@srv1-lg1:~# ifconfig eno2
     65eno2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
     66        inet 10.39.1.1  netmask 255.255.0.0  broadcast 10.39.255.255
     67        inet6 fe80::1e34:daff:fe42:c3d  prefixlen 64  scopeid 0x20<link>
     68        ether 1c:34:da:42:0c:3d  txqueuelen 1000  (Ethernet)
     69        RX packets 643  bytes 51548 (51.5 KB)
     70        RX errors 0  dropped 599  overruns 0  frame 0
     71        TX packets 42  bytes 9132 (9.1 KB)
     72        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
     73   }}}
     74}}}
     75* Run {{{und_find_devices}}} to make sure that both USRP N310s can be reached:
     76{{{#!td
     77   SB1
     78   {{{#!shell
     79root@srv1-lg1:~# uhd_find_devices
     80[INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_3.15.0.0-release
     81--------------------------------------------------
     82-- UHD Device 0
     83--------------------------------------------------
     84Device Address:
     85    serial: 3176DF5
     86    addr: 10.38.2.1
     87    claimed: False
     88    mgmt_addr: 10.37.2.1
     89    mgmt_addr: 10.38.2.1
     90    mgmt_addr: 10.39.2.1
     91    product: n310
     92    type: n3xx
     93--------------------------------------------------
     94-- UHD Device 1
     95--------------------------------------------------
     96Device Address:
     97    serial: 3196937
     98    addr: 10.38.3.1
     99    claimed: False
     100    mgmt_addr: 10.37.3.1
     101    mgmt_addr: 10.38.3.1
     102    mgmt_addr: 10.39.3.1
     103    product: n310
     104    type: n3xx
     105   }}}
     106}}}
    48107
     108==== Configure IBM 28GHz PAAM ====
     109COSMOS uses a RESTful [https://wiki.cosmos-lab.org/wiki/Resources/Services/ArrayMgmt service for IBM PAAM management]
     110The service can be used for
     111* Dynamic array management - where the user connects to the antenna using {{{connect}}} command, dynamically steers the antenna during the experiment using {{{steer}}} command, and disconnects once the experiment is done.
     112* Static array management - where the user can connect, steer and disconnect using a single command, {{{configure}}}
     113
     114Details and examples for the above are provided at the [https://wiki.cosmos-lab.org/wiki/Resources/Services/ArrayMgmt array management page].
     115For this experiment, we use static array management commands as shown below.
     116First, start PAAM #1 (rfdev4-in1) in RX mode with V-polarization using 16 antenna elements on all the ICs, and configure the RX beamforming direction to be in the broadside (0,0). Check the current consumption on 2v7_0,1,2,3 to make sure all the ICs have been successfully initialized.
     117{{{#!shell
     118root@console:~# curl "http://am1.orbit-lab.org:5054/array_mgmt/configure?dev_name=rfdev4-in1.sb1.cosmos-lab.org&ics=all&num_elements=16&txrx=rx&pol=v&theta=0&phi=0"
     119}}}
     120{{{#!shell
     121<?xml version="1.0" encoding="UTF-8"?>
     122<response status="OK">
     123  <action service="array_mgmt" name="configure" ipaddr="10.37.7.1">
     124    <step name="open" duration="3.599997"/>
     125    <step name="initializaition" duration="0.071123"/>
     126    <step name="enabling" duration="0.016817"/>
     127    <step name="steering" duration="0.007705"/>
     128    <state PAAM_ID="0x36" LO_switch="PLL" if_sw1="0x0" if_sw2="0x0" if_sw3="0x0" if_sw4="0x0"/>
     129    <adc>
     130      <conv index="0" name="1v2" tADC="120" tVolt="0.293" tCurr="0.147"/>
     131      <conv index="1" name="1v5" tADC="334" tVolt="0.816" tCurr="1.632"/>
     132      <conv index="2" name="1v8" tADC="24" tVolt="0.059" tCurr="0.029"/>
     133      <conv index="3" name="2v7_0" tADC="163" tVolt="0.398" tCurr="0.797"/>
     134      <conv index="4" name="2v7_1" tADC="206" tVolt="0.503" tCurr="1.007"/>
     135      <conv index="5" name="2v7_2" tADC="220" tVolt="0.538" tCurr="1.075"/>
     136      <conv index="6" name="2v7_3" tADC="180" tVolt="0.440" tCurr="0.880"/>
     137      <conv index="7" name="3v3_pll" tADC="408" tVolt="0.997" tCurr="0.499"/>
     138      <conv index="8" name="5v_uzed" tADC="206" tVolt="0.503" tCurr="0.503"/>
     139      <conv index="9" name="12v" tADC="244" tVolt="0.596" tCurr="1.988"/>
     140      <conv index="10" name="0V" tADC="0" tVolt="0.000"/>
     141      <conv index="11" name="1V8" tADC="737" tVolt="1.801"/>
     142    </adc>
     143    <step name="status" duration="0.020882"/>
     144    <step name="close" duration="0.100221"/>
     145  </action>
     146</response>
     147}}}
     148
     149Similarly, start PAAM #2 (rfdev4-in2) in TX mode with V-polarization using 16 antenna elements on all the ICs, and configure the TX beamforming direction to be in the broadside (0,0). Check the current consumption to make sure the ICs have been successfully initialized.
     150{{{#!shell
     151root@console:~# curl "http://am1.orbit-lab.org:5054/array_mgmt/configure?dev_name=rfdev4-in2.sb1.cosmos-lab.org&ics=all&num_elements=16&txrx=tx&pol=v&theta=0&phi=0"
     152}}}
     153{{{#!shell
     154<?xml version="1.0" encoding="UTF-8"?>
     155<response status="OK">
     156  <action service="array_mgmt" name="configure" ipaddr="10.37.7.2">
     157    <step name="open" duration="3.558891"/>
     158    <step name="initializaition" duration="0.072244"/>
     159    <step name="enabling" duration="0.018709"/>
     160    <step name="steering" duration="0.008254"/>
     161    <state PAAM_ID="0x30" LO_switch="PLL" if_sw1="0x0" if_sw2="0x0" if_sw3="0x0" if_sw4="0x0"/>
     162    <adc>
     163      <conv index="0" name="1v2" tADC="125" tVolt="0.305" tCurr="0.153"/>
     164      <conv index="1" name="1v5" tADC="331" tVolt="0.809" tCurr="1.618"/>
     165      <conv index="2" name="1v8" tADC="22" tVolt="0.054" tCurr="0.027"/>
     166      <conv index="3" name="2v7_0" tADC="255" tVolt="0.623" tCurr="1.246"/>
     167      <conv index="4" name="2v7_1" tADC="250" tVolt="0.611" tCurr="1.222"/>
     168      <conv index="5" name="2v7_2" tADC="266" tVolt="0.650" tCurr="1.300"/>
     169      <conv index="6" name="2v7_3" tADC="264" tVolt="0.645" tCurr="1.290"/>
     170      <conv index="7" name="3v3_pll" tADC="410" tVolt="1.002" tCurr="0.501"/>
     171      <conv index="8" name="5v_uzed" tADC="215" tVolt="0.525" tCurr="0.525"/>
     172      <conv index="9" name="12v" tADC="300" tVolt="0.733" tCurr="2.444"/>
     173      <conv index="10" name="0V" tADC="0" tVolt="0.000"/>
     174      <conv index="11" name="1V8" tADC="734" tVolt="1.794"/>
     175    </adc>
     176    <step name="status" duration="0.021005"/>
     177    <step name="close" duration="0.100240"/>
     178  </action>
     179</response>
     180}}}
     181
     182==== Run the experiment ====
     183* On srv1-lg1, start gnuradio companion and open the example experiment that establishes a single tone transmission. Use the file that is appropriate for the domain (SB1 or SB2).
     184{{{#!shell
     185root@srv1-lg1:~# gnuradio-companion example_paam_tone_sb1.grc
     186}}}
     187
     188* For running the experiment on SB1, configure the USRP sink (TX) with sdr1-in2 ("mgmt_addr=10.37.6.2,addr=10.39.6.2") and the USRP source (RX) with sdr1-in1("mgmt_addr=10.37.6.1,addr=10.39.6.1"). For SB2, configure the USRP sink (TX) with sdr1-s1-lg1 ("mgmt_addr=10.116.2.1,addr=10.117.2.1") and the USRP source (RX) with sdr1-md1 ("mgmt_addr=10.116.3.1,addr=10.117.3.1"). Set the carrier frequency to 3GHz (3e9) and the subdev to be "B:1" (RF3) (For SB2, use "B:0", RF2) on both TX and RX. In this example flowgraph, the sampling rate and the tone frequency are set to be 2.5MHz (2.5e6) and 1MHz (1e6), respectively.
     189|| [[Image(mmwavePaamBasicsFlowgraph.png, 600px)]] ||
     190