Changes between Version 28 and Version 29 of Tutorials/Wireless/Full Duplex
- Timestamp:
- Sep 17, 2020, 5:18:08 PM (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Tutorials/Wireless/Full Duplex
v28 v29 5 5 * Manav Kohli, Columbia University: mpk2138[at]columbia.edu 6 6 7 Last updated: August 28, 20207 Last updated: September 17, 2020 8 8 9 9 == Full-Duplex Wireless in COSMOS == 10 10 11 11 === Description === 12 In this tutorial, we will use the two integrated Gen-2 FD radios equipped with USRP N210 software defined radios (SDRs) and the Gen-2 frequency-domain equalization (FDE)based RF canceller box. The testbed may be accessed via {{{ssh}}}. The PC contains several example experiments, which showcase the capabilities of the FD transceivers.12 In this tutorial, we will use the two integrated Columbia [http://flexicon.ee.columbia.edu/ FlexICoN] Gen-2 Wideband FD radios equipped with USRP N210 software defined radios (SDRs) and the Gen-2 frequency-domain equalization (FDE)-based RF canceller box. The testbed may be accessed via {{{ssh}}}. The PC contains several example experiments, which showcase the capabilities of the FD transceivers. 13 13 14 14 ||||||Figure 1: Gen-2 FDE Canceller Boxes in COSMOS Sandbox 2 || … … 19 19 For more information about the integration of the FDE-based FD transceivers in COSMOS, please read: 20 20 21 1. ''Manav Kohli, Tingjun Chen, Mahmood Baraani Dastjerdi, Jackson Welles, Ivan Seskar, Harish Krishnaswamy, and Gil Zussman, “Open-access full-duplex wireless in the ORBIT and COSMOS testbeds,” in Proc. ACM !MobiCom’20 Workshop on Wireless Network Testbeds, Experimental evaluation & CHaracterization (WiNTECH) ( to appear) (invited), Sept. 2020'' [https://wimnet.ee.columbia.edu/wp-content/uploads/2020/08/wintech2020_orbit_cosmos_fullduplex_integration.pdf (Download)]21 1. ''Manav Kohli, Tingjun Chen, Mahmood Baraani Dastjerdi, Jackson Welles, Ivan Seskar, Harish Krishnaswamy, and Gil Zussman, “Open-access full-duplex wireless in the ORBIT and COSMOS testbeds,” in Proc. ACM !MobiCom’20 Workshop on Wireless Network Testbeds, Experimental evaluation & CHaracterization (WiNTECH) (invited), Sept. 2020'' [https://wimnet.ee.columbia.edu/wp-content/uploads/2020/08/wintech2020_orbit_cosmos_fullduplex_integration.pdf (Download)] [https://wimnet.ee.columbia.edu/wp-content/uploads/2020/08/mobicom2020_cosmos_fullduplex_demo.pdf (Demo Abstract)] 22 22 2. ''Tingjun Chen, Mahmood Baraani Dastjerdi, Jin Zhou, Harish Krishnaswamy, and Gil Zussman, “Wideband Full-Duplex Wireless via Frequency-Domain Equalization: Design and Experimentation,” in Proc. ACM !MobiCom'19, Oct. 2019'' [https://wimnet.ee.columbia.edu/wp-content/uploads/2018/12/FDE_MobiCom19.pdf (Download)] 23 23 … … 116 116 '''Details on configuring the canceller PCB''' 117 117 118 Using the experiment {{{node_level_sic_fd_gui}}}, the experimenter can configure the RF canceller PCB using the experiment GUI. There are 1 2sliders:118 Using the experiment {{{node_level_sic_fd_gui}}}, the experimenter can configure the RF canceller PCB using the experiment GUI. There are 14 sliders: 119 119 * {{{cap0, cap1, cap2}}} - these control the antenna tuner. 120 120 * {{{att0, att1}}} - The attenuator values for FDE tap 0 and tap 1. Higher values lead to greater attenuation. … … 182 182 == Full-Duplex Wireless in ORBIT == 183 183 === Description === 184 In this tutorial, we'll use node11-10 in the main grid (equipped with a USRP N210) to transmit and receive a single tone over the air to demonstrate full-duplex wireless capability using the Columbia [http://flexicon.ee.columbia.edu/ FlexICoN]'s Gen-1 Frequency-Flat Amplitude- and Phase-based RF Canceller. Pictures of the FlexICoN RF canceller and node11-10 in the main grid equipped with full-duplex capability are below:184 In this tutorial, we'll use node11-10 in the main grid (equipped with a USRP N210) to transmit and receive a single tone over the air to demonstrate full-duplex wireless capability using the Columbia [http://flexicon.ee.columbia.edu/ FlexICoN]'s Gen-1 Narrowband Frequency-Flat Amplitude- and Phase-based RF Canceller. Pictures of the FlexICoN RF canceller and node11-10 in the main grid equipped with full-duplex capability are below: 185 185 ||||||Figure 1: The ORBIT-FlexICoN Full-Duplex Node|| 186 186 || [[Image(FlexICoN-gen1-canceller.jpg, 325px)]] [[Image(FlexICoN-gen1-canceller-label.png, 350px)]] || [[Image(FlexICoN-gen1-node11-10.jpg, 400px)]] || 187 187 || (a) The FlexICoN RF Canceller Box || (b) Full-Duplex SDR at node11-10 in the ORBIT grid || 188 188 189 ==== Technical Report====189 ==== Publications ==== 190 190 For more information, please read: 191 191 192 '' Tingjun Chen, Mahmood Baraani Dastjerdi, Guy Farkash, Jin Zhou, Harish Krishnaswamy, and Gil Zussman, “Open-access full-duplex wireless in the ORBIT testbed,” arXiv preprint: 1801.03069v2 [cs.NI], May 2018.'' [https://arxiv.org/abs/1801.03069 (arXiv report)] [http://wimnet.ee.columbia.edu/wp-content/uploads/2018/03/INFOCOM18Demo_FullDuplexORBIT.pdf (INFOCOM'18Demo Abstract)]193 194 Please cite the above arXiv report if you use the hardware. Please email Tingjun Chen (tingjun [at] ee.columbia.edu) if you use (or plan to use) the full-duplex node or if you have any questions.192 ''Manav Kohli, Tingjun Chen, Mahmood Baraani Dastjerdi, Jackson Welles, Ivan Seskar, Harish Krishnaswamy, and Gil Zussman, “Open-access full-duplex wireless in the ORBIT and COSMOS testbeds,” in Proc. ACM !MobiCom’20 Workshop on Wireless Network Testbeds, Experimental evaluation & CHaracterization (WiNTECH) (invited), Sept. 2020'' [https://wimnet.ee.columbia.edu/wp-content/uploads/2020/08/wintech2020_orbit_cosmos_fullduplex_integration.pdf (Download)] [https://wimnet.ee.columbia.edu/wp-content/uploads/2020/08/mobicom2020_cosmos_fullduplex_demo.pdf (Demo Abstract)] 193 194 Please cite the above arXiv report if you use the hardware. Please email Tingjun Chen (tingjun [at] ee.columbia.edu) or Manav Kohli (mpk2138 [at] columbia.edu) if you use (or plan to use) the full-duplex node or if you have any questions. 195 195 196 196 ==== Updates ==== 197 * [09/17/2020]: New full-duplex SDR image {{{flexicon-orbit-v4.ndz}}} released. The real-time OFDM-based full-duplex flowgraph and GNU OOT modules have been updated. Obsolete experiments have been removed. 197 198 * [04/30/2019]: New full-duplex SDR image {{{flexicon-orbit-v3.ndz}}} released. Main new feature includes the implementation of a real-time OFDM-based full-duplex node. 198 199 * [01/31/2019]: Developed real-time digital SIC as a GNU Radio OOT module. … … 202 203 203 204 === Hardware / Software Resources Utilized === 204 1. The Columbia FlexICoN Gen-1 RF Canceller, which is a frequency-flat amplitude- and phase-based RF canceller implemented using discrete components on a PCB. The Gen-1 RF canceller is optimized to have a center operating frequency at 900MHz.205 2. The source code for the full-duplex transceiver examples, which can be found at [https://github.com/Wimnet/flexicon_orbit this GitHub page]. We have also built an ORBIT node image {{{flexicon-orbit-v 2.ndz}}} with all the required software installed to facilitate the experiments.205 1. The Columbia FlexICoN Gen-1 RF Canceller, which is a frequency-flat ''narrowband'' amplitude- and phase-based RF canceller implemented using discrete components on a PCB. The Gen-1 RF canceller is optimized to have a center operating frequency at 900MHz. 206 2. The source code for the full-duplex transceiver examples, which can be found at [https://github.com/Wimnet/flexicon_orbit this GitHub page]. We have also built an ORBIT node image {{{flexicon-orbit-v4.ndz}}} with all the required software installed to facilitate the experiments. 206 207 3. USRP N210 with {{{node11-10}}} in the ORBIT main grid. 207 208 4. [http://www.xdimax.com/sub20/sub20.html SUB-20] is a multi-interface USB adapter for providing popular interfaces between PC (USB host) and different hardware devices. Specifically, we use the SUB-20 SPI module to control and configure the Gen-1 RF canceller (see Fig. 1(a)). The user manual can be found [http://www.xdimax.com/sub20/doc/sub20-man.pdf here]. We also built a GNU Radio Out-Of-Tree (OOT) module to allow controlling the canceller from within the GNU Radio GUI. … … 209 210 6. The {{{Eigen C++}}} Library is used for basic algebra used in channel estimation and digital self-interference cancellation. The Eigen releases can be found on the [http://eigen.tuxfamily.org/index.php?title=Main_Page this website]. We used the latest stable release Eigen 3.3.4 through our testings and experiments. 210 211 211 === Set Up === 212 === Tutorial === 213 ==== Set Up ==== 212 214 Before you can access the testbed, you need to [https://www.orbit-lab.org/schedule make a reservation] and get it approved. After receiving the reservation's confirmation (approval) email: 213 215 214 216 * Login into reserved domain: {{{ssh -X username@conslole.grid.orbit-lab.org}}} (the {{{-X}}} option is for enabling the X11 tunneing) 215 217 * Make sure that the full-duplex node is powered down for loading the desired image: {{{omf tell -a offh -t node11-10}}} 216 * Load the most updated full-duplex node image (currently full-duplex SDR image {{{flexicon-orbit-v3.ndz}}} released) on the node (this process can take about a few minutes so please be patient): {{{omf load -i flexicon-orbit-v3.ndz -t node11-10}}}218 * Load the most updated full-duplex node image (currently {{{flexicon-orbit-v4.ndz}}}) on the node (this process can take about a few minutes so please be patient): {{{omf load -i flexicon-orbit-v4.ndz -t node11-10}}} 217 219 * Turn on the node: {{{omf tell -a on -t node11-10}}} 218 220 * Login into the node: {{{ssh -X root@node11-10}}}. After login into the node, a {{{flexicon_orbit}}} folder should exist under the home directory of {{{node11-10:~/}}} which contains the source code of this example. You can also retrieve the most recently updated code from [https://github.com/Wimnet/flexicon_orbit the GitHub repository]. … … 220 222 * Run {{{sudo sysctl -w net.core.rmem_max=50000000}}} and {{{sudo sysctl -w net.core.wmem_max=50000000}}} 221 223 * Check the conection and serial number of the USRP N210: {{{uhd_find_devices}}}. The serial number should be {{{F331D4}}}. 222 223 === Run the Experiments === 224 You will need to login into the full-duplex node (by {{{ssh root@node11-10}}}) in two separate terminal windows lo for running the experiment: one for the main full-duplex transceiver UHD program and one for controlling the RF canceller. 225 226 === Example Experiment 1: A Real-Time Full-Duplex Radio with OFDM PHY (GNU Radio + UHD) === 227 * Within the FD node (i.e., {{{ssh -X root@node11-10}}}, open the GNU Radio flowgraph {{{~/flexicon_orbit/fd_transceiver_ofdm/grc/ofdm_node_fd.grc}}} in {{{gnuradio-companion}}}, as shown below. 228 229 || [[Image(flexicon_orbit_grc_ofdm_node.png, 1000px)]] || 230 || GNU Radio flowgraph of the OFDM-based FD radio example experiment. || 231 232 * Run the experiments, three plots will show up: Time-domain Rx signal after RF SIC and digital SIC (@tab0), frequency-domain Rx signal after RF SIC and digital SIC (@tab1), and the estimated coefficients of the digital SI canceller taps (@tab2). 233 234 || [[Image(flexicon_orbit_grc_ofdm_node_tab0.png, 333px)]] || [[Image(flexicon_orbit_grc_ofdm_node_tab1.png, 333px)]] || [[Image(flexicon_orbit_grc_ofdm_node_tab2.png, 333px)]] || 235 ||||||Time-domain and frequency-domain Rx signal after RF and digital SIC, and estimated digital SI canceller coefficients on the packet-level. || 236 237 === Example Experiment 2: A Simple Full-Duplex Radio Experiment (Terminal + UHD) === 238 239 ==== In Terminal 1 ==== 224 * Set an initial configuration for the Gen-1 canceller PCB: 225 {{{#!shell-session 226 root@node11-10:~ cd flexicon_orbit/fd_transceiver_simple/sub20 227 root@node11-10:~/flexicon_orbit/fd_transceiver_simple/sub20# ./rf_canc_gen1_config 0 127 16 6 6 228 Started... 229 Sub20 device found... Serial Number is 48AB 230 Device Opened! 231 ...Finished programming DAC with value 0! 232 ...Finished programming ATT with value 127! 233 ...Finished programming CAP1 with value 16! 234 ...Finished programming CAP2 with value 6! 235 ...Finished programming CAP3 with value 6! 236 }}} 237 238 ==== Running experiments ==== 239 We provide two sets of experiments. One set is for GNU Radio, which are identical to the experiments described above in COSMOS and located at {{{~/flexicon_orbit/experiments/grc/}}}. To run these experiments, open them from GNU radio after running the {{{gnuradio-companion}}} command. Please note that due to there only being one FD radio present in ORBIT, the two link experiments in GNU Radio are not supported. The flowgraphs are kept present for reference. 240 241 The other set which are based on UHD, and are legacy experiments - they implement simpler full-duplex transceivers with no available GUI and are also kept for reference. 242 243 '''Details on configuring the canceller PCB''' 244 245 Using the experiment {{{node_level_sic_fd_gui}}}, the experimenter can configure the RF canceller PCB using the experiment GUI. There are 2 sliders: 246 * {{{att_0}}} - The attenuator value for the canceller. Higher values lead to greater attenuation. 247 * {{{dac0}}} - The phase shifter values for the canceller. 248 249 === Available Experiments === 250 ==== node_level_sic_fd_gui (GNU Radio) ==== 251 The primary use of this experiment is to visualize the performance of the FD radio. As the Gen-1 canceller operates in a narrow band, the cancellation bandwidth will be noticeably less than the Gen-2 FD radios available in COSMOS. 252 253 In this experiment, several performance metrics are visualized: 254 * The received self-interference (SI) after RF SI cancellation (SIC) and after digital SIC. 255 * The received power spectra after RF SIC and after digital SIC. 256 * The complex-valued digital SIC filter taps. 257 * The estimated SI channel. 258 259 '''Tunable variables''' 260 * {{{freq}}} - the carrier frequency used. The Gen-1 hardware can support roughly 900-1000MHz. 261 * {{{samp_rate}}} - the bandwidth used. As the canceller is narrowband, we recommend using no more than a 5 MHz bandwidth. 262 263 ==== fd_transciever_simple (Terminal + UHD) ==== 264 This experiment can be used to show the amount of achieved SIC in the RF and digital domains using a command-line interface. It is included here as reference and an example of a full-duplex transceiver implemented in UHD. 265 266 We recommend using two terminals here, so one terminal can be used to run the experiment in the foreground while the second is used to control the FD radio. 267 268 '''In Terminal 1''' 240 269 * Prepare the Eigen library (you can skip this step since the image already contains the Eigen library): 241 270 {{{#!shell … … 294 323 In this example, since the TX power level is at 0dBm, a total amount of around 90dB self-interference cancellation is achieved, of which 45dB is obtained by the Gen-1 RF canceller, and 50dB is obtained by the digital cancellation. 295 324 296 ===== In Terminal 2 (SUB-20) ===== 325 '''In Terminal 2 (SUB-20)''' 297 326 * Build the RF canceller configuration code (this is already done in the loaded image): 298 327 {{{#!shell … … 307 336 }}} 308 337 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. 309 * An example te mrinal output is below:338 * An example terminal output is below: 310 339 {{{#!shell-session 311 340 root@node11-10:~/flexicon_orbit/fd_transceiver_simple/sub20# ./rf_canc_gen1_config 110 30 16 6 6 … … 320 349 }}} 321 350 322 ==== A Secondary Transmitter Using Node13-8 ==== 351 '''A Secondary Transmitter Using Node13-8''' 352 323 353 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). 324 354 * Load image, power on, and login into node13-8: … … 336 366 Now by analyzing the RX baseband data at node11-10, you will observe the received tone at 200kHz while the self-interence tone at 100kHz is cancelled to the USRP noise floor, which is around -90dBm. 337 367 338 ==== Acknowledgements ==== 368 The secondary transmitter can also be used while running the GNU radio flowgraph {{{node_level_sic_fd_gui}}} which will visualize the received signal from {{{node13-8}}}. 369 370 === Acknowledgements === 339 371 This work was supported in part by NSF grant ECCS-1547406, DARPA RF-FPGA program, DARPA SPAR program, a Qualcomm Innovation Fellowship, a National Instruments Academic Research Grant, Texas Instruments, and Intel. We thank Steven Alfano, Jelena Diakonikolas, Aishwarya Rajen, Jinhui Song, Mingyan Yu for their contributions to various aspects of the project. We thank Ivan Seskar, Jakub Kolodziejski, and Prasanthi Maddala from WINLAB, Rutgers University, for their help on the integration with the ORBIT testbed. We also thank Kira Theuer and Kendall Ruiz from NI and the NI technical support team for their help.