wiki:tutorials/mmwaveSB1

Using Sivers mmWave equipment on COSMOS SandBox1

Description

A pair of Sivers EVK06002s, evaluation kits for Sivers IMA TRX BF/01, are deployed on COSMOS SandBox1. TRX BF/01 is a 16+16 IEEE802.11ad Beamforming Transceiver with a complete Radio front-end with 57-66 GHz mmWave frequency range.

Current mmWave setup in COSMOS SB1 looks as shown in the figure below.

Baseband data samples to Sivers front-ends are fed by USRP X310s with BasicTX and BasicRX daughtercards. BasicTX (https://www.ettus.com/all-products/basictx/) daughtercard is a simple wideband (250MHz) interface to the raw DAC signals from USRP. Similarly BasicRX (https://www.ettus.com/all-products/basicrx/) provides a simple, wideband interface to USRP ADCs. The raw data can be generated/processed in the FPGA on USRP X310 and can be transferred to the host servers srv1-lg1, srv2-lg1 over 10G Ethernet link for further processing/storage. Control software for Sivers front-ends runs on srv3-lg1 and srv4-lg1. srv3-lg1 is directly connected to Sivers SN0243 and srv4-lg1 is connected to Sivers SN0240. These servers also have a direct USB connection to the X310s, for JTAG programming.

This tutorial demonstrates how to transmit and receive a signal in the 60GHz mmWave spectrum using these Sivers front-ends.

Prerequisites

In order to access the test bed, create a reservation and have it approved by the reservation service. Access to the resources is granted after the reservation is confirmed. Please follow the process shown on the COSMOS work flow page to get started.

Resources required

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.

Execution

Prepare the host nodes

The image sivers_sb1_cosmos.ndz, has UHD and Sivers control software installed.

  • Load sivers_sb1_cosmos.ndz on srv3,srv4
    prasanthi@console:~$ omf load -i sivers_sb1_cosmos.ndz -t srv3-lg1,srv4-lg1
    
  • If using an example application from UHD, sivers_sb1_cosmos.ndz can be used on srv1 and srv2 as well. If using a custom UHD application or Gnuradio application, please load baseline_sdr_1804.ndz.
    prasanthi@console:~$ omf load -i sivers_sb1_cosmos.ndz -t srv1-lg1,srv2-lg1
    
    prasanthi@console:~$ omf load -i baseline_sdr_1804.ndz -t srv1-lg1,srv2-lg1
    
  • Turn the servers on
    prasanthi@console:~$ omf tell -a on -t srv1-lg1,srv2-lg1,srv3-lg1,srv4-lg1
    
  • Turn the X310s and Sivers 60GHz frontends on
    prasanthi@console:~$ omf tell -a on -t rfdev3-1,rfdev3-2,rfdev3-5,rfdev3-6
    
  • Check the status
    prasanthi@console:~$ omf stat -t system:topo:allres
    
     -----------------------------------------------
     Node: rfdev1-1.sb1.cosmos-lab.org       State: POWERON
     Node: rfdev1-2.sb1.cosmos-lab.org       State: POWERON
     Node: rfdev2-1.sb1.cosmos-lab.org       State: POWERON
     Node: rfdev2-2.sb1.cosmos-lab.org       State: POWERON
     Node: rfdev3-1.sb1.cosmos-lab.org       State: POWERON
     Node: rfdev3-2.sb1.cosmos-lab.org       State: POWERON
     Node: rfdev3-3.sb1.cosmos-lab.org       State: POWERON
     Node: rfdev3-4.sb1.cosmos-lab.org       State: POWERON
     Node: rfdev3-5.sb1.cosmos-lab.org       State: POWERON
     Node: rfdev3-6.sb1.cosmos-lab.org       State: POWERON
     Node: sdr1-md1.sb1.cosmos-lab.org       State: POWERON
     Node: sdr1-s1-lg1.sb1.cosmos-lab.org            State: POWERON
     Node: sdr2-md1.sb1.cosmos-lab.org       State: POWERON
     Node: sdr2-s1-lg1.sb1.cosmos-lab.org            State: POWERON
     Node: srv1-lg1.sb1.cosmos-lab.org       State: POWERON
     Node: srv2-lg1.sb1.cosmos-lab.org       State: POWERON
     Node: srv3-lg1.sb1.cosmos-lab.org       State: POWERON
     Node: srv4-lg1.sb1.cosmos-lab.org       State: POWERON
    -----------------------------------------------  
    
  • ssh to the nodes, use option -Y if using GUI.
  • 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
    root@srv2-lg1:~# ifconfig eno2 10.115.1.1 netmask 255.255.0.0 mtu 9000 up
    root@srv2-lg1:~# ifconfig -a
    eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet6 fe80::9a03:9bff:fe61:b0b0  prefixlen 64  scopeid 0x20<link>
            ether 98:03:9b:61:b0:b0  txqueuelen 1000  (Ethernet)
            RX packets 802837  bytes 110409834 (110.4 MB)
            RX errors 0  dropped 691507  overruns 0  frame 0
            TX packets 22003  bytes 6983546 (6.9 MB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    eno2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
            inet 10.115.1.1  netmask 255.255.0.0  broadcast 10.115.255.255
            inet6 fe80::9a03:9bff:fe61:b0b1  prefixlen 64  scopeid 0x20<link>
            ether 98:03:9b:61:b0:b1  txqueuelen 1000  (Ethernet)
            RX packets 4661357820  bytes 37005247545892 (37.0 TB)
            RX errors 0  dropped 692293  overruns 0  frame 0
            TX packets 59454137  bytes 3576874343 (3.5 GB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    enp94s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.113.1.2  netmask 255.255.0.0  broadcast 10.113.255.255
            inet6 fe80::6a05:caff:fe1e:e595  prefixlen 64  scopeid 0x20<link>
            ether 68:05:ca:1e:e5:95  txqueuelen 1000  (Ethernet)
            RX packets 2580061  bytes 179676082 (179.6 MB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 3041138  bytes 918629092 (918.6 MB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
            device interrupt 38  memory 0xb8880000-b88a0000
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 190683  bytes 17539929 (17.5 MB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 190683  bytes 17539929 (17.5 MB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    
  • Run uhd_find_devices to check if the X310s can be reached
    root@srv2-lg1:~# uhd_find_devices --args="addr=10.115.2.3"
    [INFO] [UHD] linux; GNU C++ version 7.4.0; Boost_106501; UHD_3.14.1.1-release
    --------------------------------------------------
    -- UHD Device 0
    --------------------------------------------------
    Device Address:
        serial: 31B6FFA
        addr: 10.115.2.3
        fpga: HG
        name: sdr2-md3
        product: X310
        type: x300
    

Prepare Sivers front-ends

  • To demonstrate the experiment here, we use Sivers front-end SN0243 as transmitter and SN0240 as receiver
  • Configure SN0243 as transmitter using "TX enable" on the GUI
    root@srv3-lg1:~/ederenv# ./start_mb1.sh  --gui SN0243
    
  • Configure SN0240 as receiver using "RX enable" on the GUI on srv4-lg1
    root@srv4-lg1:~/ederenv# ./start_mb1.sh  --gui SN0240
    

Run the experiment

  • Start transmit application on the TX node(srv1-lg1). Run UHD application tx_waveforms to transmit a sine wave.
    root@srv1-lg1:~/uhd/host/build/examples# ./tx_waveforms --args="addr=10.115.2.2" --freq 100e6 --rate 200e6 --ant AB --subdev A:AB --wave-freq 1e6 --wave-type SINE
    

  • Start receive application on the RX node(srv2-lg1). Run rx_ascii_art_dft to observe the sinewave as shown in the picture below
    root@srv2-lg1:~# /usr/lib/uhd/examples/rx_ascii_art_dft --args="addr=10.115.2.3" --freq 100e6 --rate 200e6 --ref-lvl -20 --ant AB --subdev B:AB  
    
Last modified 3 weeks ago Last modified on 03/16/20 10:21:28

Attachments (4)

Download all attachments as: .zip