Changes between Version 36 and Version 37 of Tutorials/Wireless/mmwave Paam Basics


Ignore:
Timestamp:
Mar 10, 2022, 6:37:45 PM (2 years ago)
Author:
prasanthi
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Tutorials/Wireless/mmwave Paam Basics

    v36 v37  
    1717Author: Tingjun Chen, Duke University / Columbia University (tingjun.chen [at] duke [dot] edu)
    1818
    19 Last updated: Apr. 11, 2021
     19Last updated: Mar. 10, 2022
    2020
    2121=== Acknowledgements ===
     
    3030=== Resources Required ===
    3131
    32 In this tutorial we will use the following hardware resources in sb2, which are also shown in the figure below.
     32In this tutorial we will use the following hardware resources, which are also shown in the figure below.
    3333* 2 USRP N310 SDRs ({{{sdr1-in1}}} and {{{sdr1-in2}}} in SB1, {{{sdr1-s1-lg1}}} and {{{sdr1-md1}}} in SB2)
    3434* 2 IBM 28GHz PAAMs ({{{rfdev4-in1}}} and {{{rfdev4-in2}}} in SB1, {{{rfdev2-1}}} and {{{rfdev2-2}}} in SB2 )
     
    7676 1. {{{ssh}}} to the server with option -Y for using GUI with gnuradio.
    7777{{{#!shell
    78 ssh -Y root@srv1-lg1,
     78ssh -Y root@srv1-lg1
    7979}}}
    8080
     
    8686   {{{#!shell
    8787root@srv1-lg1:~# ./eth_config.sh
    88 root@srv1-lg1:~# ifconfig DATA1
    89 DATA1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
     88root@srv1-lg1:~# ifconfig eno1
     89eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
    9090        inet 10.38.1.1  netmask 255.255.0.0  broadcast 10.38.255.255
    9191        inet6 fe80::1e34:daff:fe42:c3c  prefixlen 64  scopeid 0x20<link>
    9292        ether 1c:34:da:42:0c:3c  txqueuelen 1000  (Ethernet)
    93         RX packets 61195963  bytes 199994153268 (199.9 GB)
    94         RX errors 0  dropped 6680  overruns 0  frame 0
    95         TX packets 58734853  bytes 190912589303 (190.9 GB)
     93        RX packets 712  bytes 74814 (74.8 KB)
     94        RX errors 0  dropped 595  overruns 0  frame 0
     95        TX packets 42  bytes 9132 (9.1 KB)
    9696        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    97 root@srv1-lg1:~# ifconfig DATA2
    98 DATA2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
     97root@srv1-lg1:~# ifconfig eno2
     98eno2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
    9999        inet 10.39.1.1  netmask 255.255.0.0  broadcast 10.39.255.255
    100100        inet6 fe80::1e34:daff:fe42:c3d  prefixlen 64  scopeid 0x20<link>
    101101        ether 1c:34:da:42:0c:3d  txqueuelen 1000  (Ethernet)
    102         RX packets 7378  bytes 651944 (651.9 KB)
    103         RX errors 0  dropped 6682  overruns 0  frame 0
    104         TX packets 282  bytes 82239 (82.2 KB)
     102        RX packets 643  bytes 51548 (51.5 KB)
     103        RX errors 0  dropped 599  overruns 0  frame 0
     104        TX packets 42  bytes 9132 (9.1 KB)
    105105        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    106106   }}}
     
    148148
    149149Details and examples for the above are provided at the [https://wiki.cosmos-lab.org/wiki/Resources/Services/ArrayMgmt array management page].
    150 For this experiment we use static array management commands as shown below.
    151 First, start PAAM #1 (rfdev2-1) in TX mode with H-polarization using 4 antenna elements on IC 1, and configure the TX beamforming direction to be in the broadside (0,0). Check the current consumption on 2v7_1 and make sure IC1 has been successfully initialized (e.g., 2v7_1 has a current consumption of 1.026A in the example below).
     150For this experiment, we use static array management commands as shown below.
     151First, start PAAM #1 (rfdev4-in1) in RX mode with V-polarization using 4 antenna elements on IC 0, and configure the RX beamforming direction to be in the broadside (0,0). Check the current consumption on 2v7_0 and make sure IC0 has been successfully initialized (e.g., 2v7_0 has a current consumption much higher than the other ICs).
    152152{{{#!shell
    153153root@console:~# curl "http://am1.orbit-lab.org:5054/array_mgmt/configure?dev_name=rfdev4-in1.sb1.cosmos-lab.org&ics=0&num_elements=4&txrx=rx&pol=v&theta=0&phi=0"
     
    182182}}}
    183183
    184 * [Terminal 2] Similarly, start PAAM #2 (rfdev2-2) in RX mode with H-polarization using 4 antenna elements on IC 2, and configure the RX beamforming direction to be in the broadside (0,0). Check the current consumption on 2v7_2 and make sure IC2 has been successfully initialized (e.g., 2v7_2 has a current consumption of 0.821A in the example below).
     184* Similarly, 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.
    185185{{{#!shell
    186186root@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=rx&pol=v&theta=0&phi=0"
     
    216216
    217217
    218 
    219 
    220218==== Run the experiment ====
    221 * In the first terminal, start gnuradio companion and open the example experiment that established a single tone transmission:
     219* On srv1-lg1, start gnuradio companion and open the example experiment that establishes a single tone transmission:
    222220{{{#!shell
    223221root@srv1-lg1:~# gnuradio-companion example_paam_tone.grc
    224222}}}
    225223
    226 * In gnuradio-companion, start gnuradio-companion, configure the USRP sink (TX) with sdr1-in2 ("mgmt_addr=10.37.6.2,addr=10.38.6.2") and the USRP source (RX) with sdr1-in1("mgmt_addr=10.37.6.1,addr=10.37.6.2"). Set the carrier frequency to 3GHz (3e9) and the subdev to be "B:1" (RF3) 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.
     224* For running the experiment on SB1, configure the USRP sink (TX) with sdr1-in2 ("mgmt_addr=10.37.6.2,addr=10.38.6.2") and the USRP source (RX) with sdr1-in1("mgmt_addr=10.37.6.1,addr=10.37.6.2"). 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.
    227225|| [[Image(mmwavePaamBasicsFlowgraph.png, 600px)]] ||
    228226
    229227
    230228==== Observe the results ====
    231 The left figure shows the frequency response of the received tone at 1MHz offset. Experiment can for example increase the link SNR by using more antenna elements (i.e., 8 for TX and 8 for RX) via the PAAM API, and the corresponding results are shown in the right figure.
    232 
    233 {{{#!shell
    234 root@srv1-lg1:~/paam_api/examples# python3 setup_betaboard_v1.2.py -c ethernet -a rfdev2-1 --ic 1 -n 8 --txrx tx --pol h --dir 0 0
    235 root@srv1-lg1:~/paam_api/examples# python3 setup_betaboard_v1.2.py -c ethernet -a rfdev2-2 --ic 2 -n 8 --txrx rx --pol h --dir 0 0
    236 }}}
    237 
    238 || [[Image(mmwavePaamBasicsFreq_n_4.png, 600px)]] || [[Image(mmwavePaamBasicsFreq_n_8.png, 600px)]] ||
     229The left figure shows the frequency response of the received tone at 1MHz offset. 
     230[[Image(mmwavePaamBasicsFreq_n_4.png, 600px)]]
    239231
    240232==== Finish the experiments ====
    241 When the experiments are completed, make sure to turn off both PAAMs and see that the IC current consumption drops to the minimal values:
    242 {{{#!shell
    243 root@srv1-lg1:~/paam_api/examples# python3 reset_betaboard_v1.2.py -c ethernet -a rfdev2-1
    244 ...
    245 Index   Name    ADC     Volt.   Curr.
    246 0       1v2     30      0.073   0.037
    247 1       1v5     45      0.110   0.220
    248 2       1v8     1       0.002   0.001
    249 3       2v7_0   38      0.093   0.186
    250 4       2v7_1   45      0.110   0.220
    251 5       2v7_2   47      0.115   0.230
    252 6       2v7_3   37      0.090   0.181
    253 7       3v3_pll 57      0.139   0.070
    254 8       5v_uzed 264     0.645   0.645
    255 9       12v     106     0.259   0.863
    256 10      0V      0       0.000   x
    257 11      1V8     735     1.796   x
    258 Closed port to Zynq
    259 PAAM board shutdown...!!!
    260 
    261 root@srv1-lg1:~/paam_api/examples# python3 reset_betaboard_v1.2.py -c ethernet -a rfdev2-2
    262 ...
    263 Index   Name    ADC     Volt.   Curr.
    264 0       1v2     109     0.266   0.133
    265 1       1v5     140     0.342   0.684
    266 2       1v8     23      0.056   0.028
    267 3       2v7_0   9       0.022   0.044
    268 4       2v7_1   11      0.027   0.054
    269 5       2v7_2   51      0.125   0.249
    270 6       2v7_3   10      0.024   0.049
    271 7       3v3_pll 115     0.281   0.141
    272 8       5v_uzed 223     0.545   0.545
    273 9       12v     99      0.242   0.806
    274 10      0V      0       0.000   x
    275 11      1V8     735     1.796   x
    276 Closed port to Zynq
    277 PAAM board shutdown...!!!
    278 }}}
     233When the experiments are completed, make sure to clean up and turn off the PAAMs by running
     234{{{#!shell
     235}}}