Changes between Version 15 and Version 16 of Tutorials/Wireless/Full Duplex


Ignore:
Timestamp:
May 11, 2020, 1:13:50 AM (5 years ago)
Author:
msherman
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Tutorials/Wireless/Full Duplex

    v15 v16  
    4747Before you can access the testbed, you need to [https://www.cosmos-lab.org/schedule make a reservation] and get it approved. After receiving the reservation's confirmation (approval) email:
    4848
    49  * Login into reserved domain: {{{ssh -X username@conslole.sb2.cosmos-lab.org}}} (the {{{-X}}} option is for enabling the X11 tunneling). Note: if connecting from macOS, the {{{-Y}}} flag may be needed instead of {{{-X}}}.
     49 * Login into reserved domain: {{{ssh -X username@console.sb2.cosmos-lab.org}}} (the {{{-X}}} option is for enabling the X11 tunneling). Note: if connecting from macOS, the {{{-Y}}} flag may be needed instead of {{{-X}}}.
    5050 * Login into the node: {{{ssh -X sb2@10.116.0.201}}}. The password is {{{cosmossandbox2}}}. After login into the node, a {{{FD_Examples}}} folder should exist under the home directory which contains some example experiments. Again, see above for using the {{{-Y}}} flag on macOS.
    5151 * Check the conection and serial number of the USRP2s: {{{uhd_find_devices}}}. The serial numbers should be {{{316}}} and {{{321}}}.
     
    128128==== In Terminal 1 ====
    129129 * Prepare the Eigen library (you can skip this step since the image already contains the Eigen library):
    130 {{{
     130{{{#!shell
    131131cd ~/flexicon_orbit/fd_transceiver_simple/
    132132sudo cp -r Eigen/ /usr/include/
    133133}}}
    134134 * Build the example (this is already done in the loaded image):
    135 {{{
     135{{{#!shell
    136136cd ~/flexicon_orbit/fd_transceiver_simple/uhd/
    137137mkdir build
     
    141141}}}
    142142 * Run the example with IQ rate {{{rate}}}, carrier frequency {{{freq}}}, TX gain {{{tx-gain}}}, and RX gain {{{rx-gain}}}:
    143 {{{
     143{{{#!shell
    144144cd ~/flexicon_orbit/fd_transceiver_simple/uhd/build/
    145145./fd_transceiver_simple --tx-args="serial=F331D4" --rx-args="serial=F331D4" --rate 1e6 --freq 900e6 --tx-gain 0 --rx-gain 10
     
    147147 The default sine wave has an amplitude {{{ampl=0.3}}} and wave frequency of 100kHz {{{wave-freq=100e3}}}, which corresponds to a 0dBm TX power level. This terminal window will show the power level at RX baseband, after RF cancellation (before digital) and after digital cancellation, respetively. The UHD program is calibrated with {{{--rx-gain=10}}}, other RX gain values may results in inaccurate power level computation.
    148148 * An example temrinal output is below:
    149 {{{
     149{{{#!shell-session
    150150root@node11-10:~/flexicon_orbit/fd_transceiver_simple/uhd/build# ./fd_transceiver_simple --tx-args="serial=F331D4" --rx-args="serial=F331D4" --rate 1e6 --freq 900e6 --tx-gain 0 --rx-gain 10
    151151linux; GNU C++ version 4.8.4; Boost_105400; UHD_003.010.001.001-0-unknown
     
    185185===== In Terminal 2 (SUB-20) =====
    186186 * Build the RF canceller configuration code (this is already done in the loaded image):
    187 {{{
     187{{{#!shell
    188188cd ~/flexicon_orbit/fd_transceiver_simple/sub20/
    189189make
     
    191191 * Check the connection to the SUB-20 device using command {{{lbusb}}}. You should see a XDIMAX devices connected to the USB hub.
    192192 * Program and configure the RF canceller with the desired values:
    193 {{{
     193{{{#!shell
    194194cd ~/flexicon_orbit/fd_transceiver_simple/sub20/
    195195./rf_canc_gen1_config PS-CODE ATT-CODE C1-CODE C2-CODE C3-CODE
     
    197197 In particular, the {{{PS-CODE=0,1,2,...,255}}} and {{{ATT-CODE=0,1,2,...,127}}} codes are for configuring the 8-bit phase shifter and the 7-bit attenuator of the Gen-1 RF canceller, respectively. It is recommended to use {{{C1-CODE=16, C2-CODE=6, C3-CODE=6}}}, which provides 20dB isolation from the antenna-circulator interface. You can play with the values of {{{ATT}}} and {{{PS}}} until you see good cancellation profile (e.g., low residual self-interference power level) in Terminal 1.
    198198 * An example temrinal output is below:
    199 {{{
     199{{{#!shell-session
    200200root@node11-10:~/flexicon_orbit/fd_transceiver_simple/sub20# ./rf_canc_gen1_config 110 30 16 6 6
    201201Started...
     
    212212Once the full-duplex node11-10 is up and running, you can turn on another SDR to transmit to the full-duplex node. Below, we use {{{node13-8}}} as an example in the 3rd terminal window (Terminal 3).
    213213 * Load image, power on, and login into node13-8:
    214 {{{
     214{{{#!shell
    215215omf tell -a offh -t node13-8
    216216omf load -i baseline-sdr.ndz -t node13-8
     
    220220 * Configure the USRP Ethernet interface: {{{ifconfig eth2 192.168.10.1 netmask 255.255.255.0 up}}}
    221221 * Set up a secondary transmitter sending a sine wave at a different frequency (e.g., 200 kHz) than that of the full-duplex node:
    222 {{{
     222{{{#!shell
    223223./tx_waveforms --args="serial=F331D4" --rate 1e6 --freq 900e6 gain 10 --wave-type SINE --wave-freq 200e3
    224224}}}