[[Include(WikiToC)]] == GNURadio CFO Estimation tutorial == === Description === This tutorial illustrates the use of GNURadio flowgraphs to estimate the Carrier Frequency offset between a pair of USRPs in COSMOS, ORBIT testbeds. === 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 [wiki:GettingStarted getting started] page to get started. === Resources required === 2 USRPs in COSMOS or ORBIT testbed, 2 host nodes, and 2 mmWave devices(if using mmWave) are required. This page uses the 28GHz IBM mmWave devices in [https://wiki.cosmos-lab.org/wiki/Architecture/Domains/cosmos_sb1 sb1.cosmos-lab.org]. As shown in the [https://wiki.cosmos-lab.org/wiki/Tutorials/Wireless/mmwavePaamBasics basic tutorial for IBM 28GHz devices], the current connections in SB1 are as shown in this [https://wiki.cosmos-lab.org/wiki/Architecture/Domains/cosmos_sb1#RFPathConfigurationsformmWaveDevelopmentPlatforms diagram] * {{{sdr1-in1}}} RF2 TX/RX -- {{{rfdev4-in1}}} all ICs/TX/H, {{{sdr1-in1}}} RF2 RX2 -- {{{rfdev4-in1}}} all ICs/RX/H * {{{sdr1-in1}}} RF3 TX/RX -- {{{rfdev4-in1}}} all ICs/TX/V, {{{sdr1-in1}}} RF3 RX2 -- {{{rfdev4-in1}}} all ICs/RX/V * {{{sdr1-in2}}} RF2 TX/RX -- {{{rfdev4-in2}}} all ICs/TX/H, {{{sdr1-in2}}} RF2 RX2 -- {{{rfdev4-in2}}} all ICs/RX/H * {{{sdr1-in2}}} RF3 TX/RX -- {{{rfdev4-in2}}} all ICs/TX/V, {{{sdr1-in2}}} RF2 RX2 -- {{{rfdev4-in2}}} all ICs/RX/V Hence, the resources required to execute this tutorial are rfdev4-in1, rfdev4-in2 (IBM PAAMs), sdr1-in1, sdr1-in2 (USRP N310s), srv1-lg1, srv2-lg1 in sb1.cosmos-lab.org. === 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 [https://www.cosmos-lab.org/portal-2/ COSMOS account] 1. [wiki:/GettingStarted#MakeaReservation Create a resource reservation] on COSMOS SB1 1. [Documentation/Short/Login Login] into sandbox console ({{{console.sb1.cosmos-lab.org}}} with two SSH sessions. 1. Make sure all the nodes and devices used in the experiment are turned off. {{{#!shell omf tell -a offh -t sdr1-in1,sdr1-in2,rfdev4-in1,rfdev4-in2,srv1-lg1,srv2-lg1 }}} 1. Use the {{{gnuradio_ofdm.ndz}}} node image with Ubuntu 20.04, UHD 4.4, gnuradio 3.9, and a grc example used in this tutorial. Load {{{gnuradio_ofdm.ndz}}} on the servers. {{{#!shell omf load -i gnuradio_ofdm.ndz -t srv1-lg1,srv2-lg1 }}} 1. Turn all the required resources on and check the status of all the resources. Use the following commands . {{{#!shell omf tell -a on -t sdr1-in1,sdr1-in2,rfdev4-in1,rfdev4-in2,srv1-lg1,srv2-lg1 }}} {{{#!shell omf stat -t all }}} 1. {{{ssh}}} to the server with option -Y for using GUI with gnuradio. {{{#!shell ssh -Y root@srv1-lg1 }}}