Changes between Version 15 and Version 16 of Tutorials/Wireless/Full Duplex
- Timestamp:
- May 11, 2020, 1:13:50 AM (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Tutorials/Wireless/Full Duplex
v15 v16 47 47 Before 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: 48 48 49 * Login into reserved domain: {{{ssh -X username@cons lole.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}}}. 50 50 * 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. 51 51 * Check the conection and serial number of the USRP2s: {{{uhd_find_devices}}}. The serial numbers should be {{{316}}} and {{{321}}}. … … 128 128 ==== In Terminal 1 ==== 129 129 * Prepare the Eigen library (you can skip this step since the image already contains the Eigen library): 130 {{{ 130 {{{#!shell 131 131 cd ~/flexicon_orbit/fd_transceiver_simple/ 132 132 sudo cp -r Eigen/ /usr/include/ 133 133 }}} 134 134 * Build the example (this is already done in the loaded image): 135 {{{ 135 {{{#!shell 136 136 cd ~/flexicon_orbit/fd_transceiver_simple/uhd/ 137 137 mkdir build … … 141 141 }}} 142 142 * Run the example with IQ rate {{{rate}}}, carrier frequency {{{freq}}}, TX gain {{{tx-gain}}}, and RX gain {{{rx-gain}}}: 143 {{{ 143 {{{#!shell 144 144 cd ~/flexicon_orbit/fd_transceiver_simple/uhd/build/ 145 145 ./fd_transceiver_simple --tx-args="serial=F331D4" --rx-args="serial=F331D4" --rate 1e6 --freq 900e6 --tx-gain 0 --rx-gain 10 … … 147 147 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. 148 148 * An example temrinal output is below: 149 {{{ 149 {{{#!shell-session 150 150 root@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 151 151 linux; GNU C++ version 4.8.4; Boost_105400; UHD_003.010.001.001-0-unknown … … 185 185 ===== In Terminal 2 (SUB-20) ===== 186 186 * Build the RF canceller configuration code (this is already done in the loaded image): 187 {{{ 187 {{{#!shell 188 188 cd ~/flexicon_orbit/fd_transceiver_simple/sub20/ 189 189 make … … 191 191 * Check the connection to the SUB-20 device using command {{{lbusb}}}. You should see a XDIMAX devices connected to the USB hub. 192 192 * Program and configure the RF canceller with the desired values: 193 {{{ 193 {{{#!shell 194 194 cd ~/flexicon_orbit/fd_transceiver_simple/sub20/ 195 195 ./rf_canc_gen1_config PS-CODE ATT-CODE C1-CODE C2-CODE C3-CODE … … 197 197 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. 198 198 * An example temrinal output is below: 199 {{{ 199 {{{#!shell-session 200 200 root@node11-10:~/flexicon_orbit/fd_transceiver_simple/sub20# ./rf_canc_gen1_config 110 30 16 6 6 201 201 Started... … … 212 212 Once 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). 213 213 * Load image, power on, and login into node13-8: 214 {{{ 214 {{{#!shell 215 215 omf tell -a offh -t node13-8 216 216 omf load -i baseline-sdr.ndz -t node13-8 … … 220 220 * Configure the USRP Ethernet interface: {{{ifconfig eth2 192.168.10.1 netmask 255.255.255.0 up}}} 221 221 * 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 223 223 ./tx_waveforms --args="serial=F331D4" --rate 1e6 --freq 900e6 gain 10 --wave-type SINE --wave-freq 200e3 224 224 }}}