Changes between Version 1 and Version 2 of Tutorials/k0SDR/Tutorial28


Ignore:
Timestamp:
Oct 8, 2019, 3:30:59 PM (5 years ago)
Author:
prasanthi
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Tutorials/k0SDR/Tutorial28

    v1 v2  
    11== Wideband Channel Sounding with USRP X310s ==
     2
     3=== Description ===
     4This tutorial shows how to use the RFNoC Correlator block(CE) for channel sounding. This experiment is conducted using USRP X310s on ORBIT grid.
     5
     6=== Set Up ===
     7Make a reservation on the [https://www.orbit-lab.org/schedule/ Orbit Scheduler] for using the grid.
     8==== Prepare Receive Node ====
     9* Load channel_sounder_x310.ndz on an ORBIT node.
     10{{{
     11prasanthi@console.grid:~$ omf load -i channel_sounder_x310.ndz -t node1-19
     12}}}
     13* Once imaging is done, turn the node on and log in
     14{{{
     15prasanthi@console.grid:~$ omf tell -a on -t node1-19
     16prasanthi@console.grid:~$ ssh root@node1-19
     17}}}
     18
     19==== Prepare Receive USRPs ====
     20* Pick USRP X310s from the MIMO racks 23-1...8, 23-11...18, 24-1...8, 24-11...18 and load correlator FPGA image on them. The USRPs are programmed one at a time.
     21{{{
     22root@node1-19:~# uhd_image_loader --args="addr=10.10.24.12" --fpga-path="/root/bit/corrmag63avg8k_v2_8_7.bit"
     23}}}
     24* Power cycle USRPs so that the new FPGA image is active
     25{{{
     26prasanthi@console.grid:~$ omf tell -a offh -t node24-12,node24-13
     27prasanthi@console.grid:~$ omf tell -a on -t node24-12,node24-13
     28}}}
     29* Running uhd_usrp_probe on the X310s with spectrum sensing FPGA image should give the following
     30{{{
     31|   |    /
     32|   |   |       RFNoC blocks on this device:
     33|   |   |
     34|   |   |   * DmaFIFO_0
     35|   |   |   * Radio_0
     36|   |   |   * Radio_1
     37|   |   |   * DDC_0
     38|   |   |   * DUC_0
     39|   |   |   * Corrmag63avg8k_0
     40|   |   |   * FIFO_0
     41
     42}}}
     43==== Prepare Transmit Node ====
     44A spectrum spreader RFNoC block is being used to generate wideband PN signal.
     45* Load prasanthi-channel-sounder.ndz on an ORBIT node.
     46{{{
     47prasanthi@console.grid:~$ omf load -i prasanthi-channel-sounder.ndz -t node14-20
     48}}}
     49* Once imaging is done, turn the node on and log in
     50{{{
     51prasanthi@console.grid:~$ omf tell -a on -t node14-20
     52prasanthi@console.grid:~$ ssh root@node14-20
     53}}}
     54
     55==== Prepare Transmit USRP ====
     56* Pick a USRP X310 for transmitting, and load the spectrum spreader FPGA image
     57{{{
     58root@node1-20:~# uhd_image_loader --args="addr=10.10.24.11" --fpga-path="/root/bit/x310_spreader_4_28.bit"
     59}}}
     60* Power cycle the USRP so that the new FPGA image is active
     61{{{
     62prasanthi@console.grid:~$ omf tell -a offh -t node24-11
     63prasanthi@console.grid:~$ omf tell -a on -t node24-11
     64}}}
     65* Running uhd_usrp_probe on the X310 with spectrum spreader FPGA image should give the following
     66{{{
     67|   |     _____________________________________________________
     68|   |    /
     69|   |   |       RFNoC blocks on this device:
     70|   |   |
     71|   |   |   * DmaFIFO_0
     72|   |   |   * Radio_0
     73|   |   |   * Radio_1
     74|   |   |   * DUC_0
     75|   |   |   * Spreader_0
     76|   |   |   * FIFO_0
     77|   |   |   * FIFO_1
     78}}}
     79==== Set up SSH tunnel from your local port 5100 to grid.orbit-lab.org:5100 ====
     80{{{
     81ssh -L 5100:grid.orbit-lab.org:5100 username@grid.orbit-lab.org
     82}}}
     83==== Set up a web proxy for the receive node ====
     84Use run-websock command to set up the proxy (this is required for remote web based streaming)
     85{{{
     86prasanthi@console.grid:~$ run-websock 5100 10.10.1.19:5100 --daemon
     87WARNING: no 'numpy' module, HyBi protocol will be slower
     88WebSocket server settings:
     89  - Listen on :5100
     90  - Flash security policy server
     91  - No SSL/TLS support (no cert file)
     92  - Backgrounding (daemon)
     93}}}
     94=== Run the experiment ===
     95* Run rfnoc_spec_sense_display on the receive node. The command below starts the application to receive spectrum sensing samples from 4 USRP X310s at 100MSPS.
     96{{{
     97root@node1-19:~/uhd/host/build/examples# ./rfnoc_spec_sense_display --args="addr0=10.10.23.11,addr1=10.10.23.12,addr2=10.10.23.13,addr3=10.10.23.14,skip_ddc,skip_duc" --freq 5e9 --gain 15 --ddc-args="input_rate=200000000.0,output_rate=100000000.0" --num-usrp 4 --spec-sense-args="avg_size=256"
     98}}}
     99* Run rfnoc_spreader on the transmit node. The command below starts the application to send a 50MHz wide PN signal on node23-17.
     100{{{
     101root@node1-20:~/uhd/host/build/examples# ./rfnoc_spreader --args="addr=10.10.23.17,skip_ddc,skip_duc" --freq 5e9 --gain 15 --duc-args="input_rate=50000000.0,output_rate=200000000.0"
     102}}}
     103* Download spec_sense_display.html and open it in your browser. Once you click the Start button, you should see power spectrum display as shown below.
     104
     105    || [[Image(spec_sense_display.jpg)]]||
     106
     107
     108