wiki:Tutorials/Wireless/MassiveMIMO

Version 17 (modified by zhenzhou77, 4 years ago) ( diff )

Site Navigation

  1. COSMOS Testbed Overview
    1. Concepts
    1. Testbed Workflow
    1. Availability and Resource Status
    1. Events and Conferences
  2. Getting Started
    1. Make an Account
    2. Create and Configure SSH Keys
    3. Make a Reservation
    4. Log in to your Reservation
    5. Control Resources with OMF
    6. Run a Hello World Experiment
    7. Get Help and Support
  3. COSMOS/ORBIT User Guide
    1. The COSMOS Portal
    2. Connecting to the Testbed
    3. Running Experiments
    4. Policies and Support
    5. Quick Links
    1. Policies
    1. Account Creation
    1. Camera Streaming
    1. Scheduling and Reservations
    1. Disk Images
    1. Frequently Asked Questions
    1. Resource Control with OMF
  4. COSMOS Portal
    1. Your First Visit
    2. Setting Up Your Account
    3. Reserving Testbed Time
    4. Monitoring Your Experiment
    5. Connecting via SSH
    6. Managing Disk Images
    7. Joining the Community
    8. Browsing Users and Groups
    9. Tips
  5. Account Management
    1. Edit Profile
    2. Change Password
    3. SSH Keys
  6. Portal Dashboard
    1. Profile Card
    2. Usage Statistics
    3. Community Forum
  7. Directory
    1. Users
    2. Groups
    3. Privacy Note
  8. Disk Images
    1. Browsing Images
    2. Image Details
    3. Searching and Sorting
    4. Managing Your Images
    5. Baseline Images
    6. Saving Custom Images
    7. Storage and Retention
  9. Community Forum
    1. Accessing the Forum
    2. Forum Categories
    3. How to Use the Forum
    4. Forum Etiquette
    5. Privacy and Access
  10. Getting Started with the COSMOS Portal
    1. Creating an Account
    2. Logging In
    3. What to Do After Logging In
  11. SSH Access to Testbed Nodes
    1. Access Model
    2. Console Servers
    3. Basic Connection
    4. SSH Config File
    5. SSH Tunneling
    6. File Transfer
    7. Troubleshooting
  12. Scheduler
    1. Calendar View
    2. Reservation Colors
    3. Creating a Reservation
    4. Competing for a Slot
    5. Modifying or Canceling Reservations
    6. My Reservations
    7. Resource Information
  13. Testbed Status
    1. Node Status Grid
    2. RF Matrix Control (SB4)
    3. Understanding Node States During Experiments
    1. Remote Access
    1. Chrome Remote Desktop Setup Page
  14. Installing Chrome Remote Desktop (CRD) on a Custom Image
    1. Measurement & Result Collection
    1. Storage
    1. Support
    1. Contributing to the Wiki
  15. Tutorials
    1. SDR and Wireless
    2. Wireless Digital Twins
    3. Optical Networking
    4. Wired Networking
    5. Edge Computing
    6. 4G/5G Systems
    7. Orchestration Platforms
  16. Architecture
    1. Data Flow
    1. Deployment Map
    1. Domains
    1. Naming Convention
    1. Networks
    1. Optical
  17. Resources, Services and APIs
    1. RF Control
    2. SDR Control
    3. Compute Control
    4. Network Control
    5. Optical Control
  18. Datasets
  19. Hardware Info
    1. Cameras
    1. Compute
    1. FR3 SDRs
    1. Network
    1. Nodes
    1. Optical
    1. RF Subsystems
    1. Antennas
    1. Full-Duplex Radio
    1. RF Front End
    1. Software Defined Radios (SDR)
  20. RF Policies & Compliance
    1. Outdoor Radio Frequency Allocation
    2. Program Experiment License
    3. Spectrum Monitoring
    4. Emergency Stop Procedures
    5. Network and Platform Security

Massive MIMO Channel Sounding

Description

In this tutorial, we demonstrate the TDD 16x1 Massive MIMO channel sounding procedure using 1 Massive MIMO rack (8 USRP-X310s) and 1 USRP-B210 in the ORBIT grid and the RENEW Sounder software

  • The instructions of the RENEW Platform Sounder software can be found here under RENEW license.
  • The COSMOS team contributes to adding the UHD support for the Sounder software under the UHD license.

Author: Zhenzhou (Tom) Qi, Duke University (zhenzhou.qi [at] duke [dot] edu)

Last updated: Jul. 07, 2022

Prerequisites

In order to access grid, create a reservation in grid 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

  • 1 Massive MIMO Rack (node23-1 to node23-8)
  • 1 USRP-B210 (node8-7)
  • 1 Server (node21-1)

Tutorial Setup

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

  1. If you don't have one already, sign up for a ORBIT account
  2. Create a resource reservation on ORBIT grid
  3. Login into grid console (grid.orbit-lab.org) with two SSH sessions.
  4. Make sure all the nodes and devices used in the experiment are turned off
    omf tell -a offh -t node21-1,node8-7
    
    omf tell -a offh -t [23,1..8]
    
  5. Use the ubuntu2004-uhd4.1-gr3.9.ndz node image with Ubuntu 20.04, UHD 4.10, and gnuradio 3.9. Load ubuntu2004-uhd4.1-gr3.9.ndz on both the server and (node8-7).
    omf load -i ubuntu2004-uhd4.1-gr3.9.ndz -t node21-1
    
    omf load -i ubuntu2004-uhd4.1-gr3.9.ndz -t node8-7
    
  6. Turn all the required resources on and check the status
    omf tell -a on -t node21-1,node8-7
    
    omf tell -a on -t [23,1..8]
    
    omf stat -t all
    
  7. ssh to the server and (node8-7) from two terminals, use option -Y for using GUI.
    [Terminal 1] ssh -Y root@node21-1,
    [Terminal 2] ssh -Y root@node8-7
    

Experiment Execution

Find and prepare USRPs and the Sounder software

  • The IP addresses for Ethernet Port 1(10G) on node23-1 to node23-8 were hard-coded to 10.10.23.1 to 10.10.23.8 respectively. To access them from the server node21-1, no configure of the network interface is needed, however, for better performance, we suggest the following operations:
    root@node21-1:~# ifconfig CTRL mtu 9000 up
    root@node21-1:~# sudo sysctl -w net.core.wmem_max=24862979
    net.core.wmem_max = 24862979
    root@node21-1:~# sudo sysctl -w net.core.rmem_max=24862979
    net.core.rmem_max = 24862979
    root@srv2-lg1:~# ifconfig 
    root@node21-1:~# ifconfig CTRL
    CTRL: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
            inet 10.10.21.1  netmask 255.255.0.0  broadcast 10.10.255.255
            inet6 fe80::9a03:9bff:fe3b:81e3  prefixlen 64  scopeid 0x20<link>
            ether 98:03:9b:3b:81:e3  txqueuelen 1000  (Ethernet)
            RX packets 28985875  bytes 107820952173 (107.8 GB)
            RX errors 121  dropped 0  overruns 0  frame 121
            TX packets 12711747  bytes 14132140459 (14.1 GB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
  • Similarly in node23-8, USRP-B210 is connected via a USB-3 port, and no further configuration of the network interface is needed.
  • Run uhd_find_device to make sure that the USRP-X310s and USRP-B210s can be reached respectively by node21-1 and node8-7:
    root@node21-1:~# uhd_find_devices --args="addr0=10.10.23.1"
    [INFO] [UHD] linux; GNU C++ version 9.3.0; Boost_107100; UHD_4.1.0.4-release
    --------------------------------------------------
    -- UHD Device 0
    --------------------------------------------------
    Device Address:
        serial: 30A3570
        addr: 10.10.23.1
        fpga: XG
        name: Mercury
        product: X310
        type: x300
    
    
    root@node8-7:~# uhd_find_devices --args="serial=30AD2E0"
    [INFO] [UHD] linux; GNU C++ version 9.3.0; Boost_107100; UHD_4.1.0.4-release
    --------------------------------------------------
    -- UHD Device 0
    --------------------------------------------------
    Device Address:
        serial: 30AD2E0
        name: MyB210
        product: B210
        type: b200
    
  • Download and build the RENEW Sounder software on the develop branch at here and follow the instructions to build it. Note that the master branch does not have UHD support.
  • Include in files/usrp-bs-serials.txt the IP address 10.118.2.2, i.e., use sdr2-s1-lg1 as the base station (BS). In files/usrp-bs-only.json, set "channel" : "AB", to enable dual-channel on sdr2-s1-lg1.
  • Similarly, in files/usrp-client-only.json, set "sdr_id" : [ "10.118.3.2" ] (i.e., use sdr2-md1 as the user) and "channel" : "AB", to enable dual-channel on sdr2-md1.

Attachments (6)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.