Skip to content

jkwelles97/flexicon_orbit

 
 

Repository files navigation

Open-Access Full-Duplex Wireless in the ORBIT testbed

This GitHub webpage contains the build instructions and source code of the ORBIT wireless testbed tutorial: Full-duplex Wireless using USRP N210.

This tutorial contains a simple full-duplex (FD) transceiver using the USRP N210 SDR and a customized RF canceller developed within the Columbia FlexICoN project.

More full-duplex source code examples are currently under development and will be released once ready.

Technical Report

Our Gen-1 RF Canceller is installed with node11-10 in the ORBIT main grid. This node is equipped with a USRP N210 SDR. For more information, please read

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. [arXiv]

Please cite the above 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.

Useful links

Software (SW)

The most updated ORBIT node image with all the configurations and examples is flexicon-orbit-v3.ndz (May 18, 2019).

A real-time full-duplex transceiver example using OFDM PHY

We build a GNU Radio OOT module in C++ for performing the digital SIC on the packet-level. The source code is under ./fd_transceiver_ofdm with the following sub-directories:

  • /grc contains the GNU Radio flowgraph for the real-time full-duplex transceiver including the sub-20 control through gnuradio-companion

A full-duplex transcevier example with PSK modulation

A full-duplex transcevier example

The source code is under ./fd_transceiver_simple with the following sub-directories:

  • /uhd contains the UHD code for the full-duplex transceiver
  • /sub20 contains the code for configuring the RF canceller using a SUB-20 controller
  • /scripts contains the MATLAB code for post-processing the experimental data

UHD

The instructions of UHD can be found on the Ettus Resesarch UHD repository at here.

The Eigen C++ Library

The Eigen C++ library is used for basic albegra in channel estimation and digital self-interference cancellation. The Eigen releases can be found on the Eigen website. We used the latest stable release Eigen 3.3.4 through our testings and experiments.

On Linux, download and unzip Eigen 3.3.4 and copy the main librararies to the desired path by running scp -r /eigen/Eigen/ /usr/include/. The Eigen C++ is already included in the provided node image flexicon-orbit-v3.ndz.

Hardware (HW)

Columbia FlexICoN's Gen-1 Frequency-Flat Amplitude- and Phase-based RF Canceller

Please refer to our technical report.

Universal Software Radio Peripheral (USRP)

Our full-duplex transceiver is based on the Ettus Research USRP. Our example has been tested successfully on USRP models N210/USRP2/B210/B205-mini.

SUB-20

The SUB-20 is a multi interface USB adapter for providing popular interaces between PC (USB host) and different hardware devices. Specifically, we use the SPI module on SUB-20 to control and configure our hardware. The user manual can be found here.

Acknowledgements

This work was supported in part by NSF grant ECCS-1547406, DARPA RF-FPGA program, DARPA SPAR program, a Qualcomm Innovation Fellowship, 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.

About

Open-Access Full-Duplex Wireless in the ORBIT Testbed

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 94.4%
  • C 2.8%
  • Python 2.6%
  • CMake 0.1%
  • Shell 0.1%
  • MATLAB 0.0%