wiki:Tutorials/Wireless/mmwavePaamAgora

Version 20 (modified by zhenzhou77, 17 months ago) ( diff )

IBM 28GHz PAAM: Integration with USRPs with MIMO capability

Description

In this tutorial, we demonstrate the integration of IBM 28GHz PAAM boars with USRPs. We present the MIMO capability with real-time baseband processing using the system.

  • The instructions for the RENEW Platform Agora software can be found here under RENEW license.
  • The COSMOS team contributes to adding the UHD support for the Agora software under the UHD license. We thank the RENEW team for their support and help throughout the process.

Authors:
Zhenzhou (Tom) Qi, Duke University <zhenzhou.qi[at]duke[dot]edu>
Tingjun Chen, Duke University <tingjun.chen[at]duke[dot]edu>

Last updated: July 5, 2023

Prerequisites

In order to access COSMOS-SB2, create a reservation in COSMOS testbed 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 getting started page to get started.

Resources Required

  • 2 USRP N310 SDRs (sdr1-s1-lg1 and sdr1-md1 in SB2)
  • 2 IBM 28GHz PAAMs (rfdev2-1 and rfdev2-2 in SB2 )
  • 1 Server (srv1-lg1)

The current hardware connection in SB2 as shown below

  • sdr1-s1-lg1 RF2 TX/RX — rfdev2-1 IC0/TX/H, sdr1-s1-lg1 RF2 RX2 — rfdev2-1 IC1/RX/H
  • sdr1-s1-lg1 RF3 TX/RX — rfdev2-1 IC0/TX/V, sdr1-s1-lg1 RF3 RX2 — rfdev2-1 IC1/RX/V
  • sdr1-md1 RF2 TX/RX — rfdev2-2 IC0/TX/H, sdr1-md1 RF2 RX2 — rfdev2-2 IC1/RX/H
  • sdr1-md1 RF3 TX/RX — rfdev2-2 IC0/TX/V, sdr1-md1 RF2 RX2 — rfdev2-2 IC1/RX/V

The required software components used in this demo are already loaded to the IBMPAAM-USRP-RT-Baseband.ndz node image, the node image includes:

  • Ubuntu 20.04, UHD 4.1.0
  • PAAM Control to initialize the PAAM boards to integrate with USRPs.
  • Agora-UHD: An UHD-integrated real-time baseband processing pipeline. Please refer to Cubic23 branch at here for more information.
  • Real-time visualization for the real-time DSP pipeline.

Tutorial Setup

Follow the steps below to gain access to the sandbox console and set up nodes with appropriate images.

  1. If you don't have one already, sign up for a COSMOS account
  2. Create a resource reservation on COSMOS SB2
  3. Login into sandbox console console.sb2.cosmos-lab.org) with four SSH sessions.
  4. In terminal 1, make sure all the nodes and devices used in the experiment are turned off. Use the following command for SB2
    omf tell -a offh -t sdr1-s1-lg1,sdr1-md1,rfdev2-1,rfdev2-2,srv1-lg1
    
  5. Load IBMPAAM-USRP-RT-Baseband.ndz on the server.
    omf load -i IBMPAAM-USRP-RT-Baseband.ndz -t srv1-lg1
    
  6. Turn all the required resources on and check the status of all the resources. Use the following commands for SB2.
    omf tell -a on -t sdr1-s1-lg1,sdr1-md1,rfdev2-1,rfdev2-2,srv1-lg1
    
    omf stat -t all
    
  7. ssh to the server with option -Y for using GUI for our live demo.
    ssh -Y root@srv1-lg1
    

Experiment Execution

Find and prepare USRPs

  • Upon logging into the server, in terminal one, set up the 10G data interfaces DATA1, DATA2. After running the following script,
    ifconfig DATA1 10.117.1.1 netmask 255.255.0.0 mtu 9000 up
    
    ifconfig DATA2 10.118.1.1 netmask 255.255.0.0 mtu 9000 up
    

you should see that the data interfaces have the appropriate IP addresses assigned, as per the tables for SB2.

Before

root@srv1-lg1:~# ifconfig DATA1
DATA1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::1e34:daff:fe42:d4c  prefixlen 64  scopeid 0x20<link>
        ether 1c:34:da:42:0d:4c  txqueuelen 1000  (Ethernet)
        RX packets 21092  bytes 1881634 (1.8 MB)
        RX errors 0  dropped 19183  overruns 0  frame 0
        TX packets 686  bytes 204975 (204.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
root@srv1-lg1:~# ifconfig DATA2
DATA2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::1e34:daff:fe42:d4d  prefixlen 64  scopeid 0x20<link>
        ether 1c:34:da:42:0d:4d  txqueuelen 1000  (Ethernet)
        RX packets 21091  bytes 1881530 (1.8 MB)
        RX errors 0  dropped 19184  overruns 0  frame 0
        TX packets 690  bytes 226549 (226.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

SB2

root@srv1-lg1:~# ./eth_config.sh
root@srv1-lg1:~# ifconfig eno1
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
        inet 10.117.1.1  netmask 255.255.0.0  broadcast 10.117.255.255
        inet6 fe80::1e34:daff:fe42:d4c  prefixlen 64  scopeid 0x20<link>
        ether 1c:34:da:42:0d:4c  txqueuelen 1000  (Ethernet)
        RX packets 254  bytes 20924 (20.9 KB)
        RX errors 0  dropped 185  overruns 0  frame 0
        TX packets 25  bytes 4642 (4.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
root@srv1-lg1:~# ifconfig eno2
eno2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
        inet 10.118.1.1  netmask 255.255.0.0  broadcast 10.118.255.255
        inet6 fe80::1e34:daff:fe42:d4d  prefixlen 64  scopeid 0x20<link>
        ether 1c:34:da:42:0d:4d  txqueuelen 1000  (Ethernet)
        RX packets 218  bytes 22274 (22.2 KB)
        RX errors 0  dropped 186  overruns 0  frame 0
        TX packets 25  bytes 4642 (4.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Attachments (7)

Note: See TracWiki for help on using the wiki.