== Full-Duplex Wireless using USRP N210 == === Description === In this tutorial, we'll use node11-10 in the main grid (equipped with a USRP N210) to transmit and receive a single frequency 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. A picture of [[Image()]] For more information, please read T. Chen, J. Zhou, N. Grimwood, R. Fogel, J. Marasevic, H. Krishnaswamy, and G. Zussman, “Demo: Full-duplex Wireless based on a Small-Form-Factor Analog Self-Interference Canceller,” in Proc. ACM MobiHoc'16, 2016. [http://wimnet.ee.columbia.edu/wp-content/uploads/2016/06/full_duplex_demo_mobihoc16.pdf PDF] Please email Tingjun Chen (tc2668 [at] columbia.edu) if you are using or plan to use the full-duplex node, or if you have any questions. We also thank Mahmood Baraani Dasterjerdi and Steven Alfano for their contributions. === Hardware / Software Resources Utilized === 1. USRP N210 with node11-10 in the ORBIT main grid 2. SUB-20: The SUB-20 is a multi-interface USB adapter for providing popular interfaces 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 [http://www.xdimax.com/sub20/doc/sub20-man.pdf here]. 3. UHD 4. The Eigen C++ Library: The Eigen C++ library is used for basic algebra 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 Eigen website]. We used the latest stable release Eigen 3.3.4 through our testings and experiments. All the source code is publicly available at [https://github.com/Wimnet/flexicon_orbit here]. === Set Up === Before you can access the testbed, you need to [https://www.orbit-lab.org/schedule make a reservation] and get it approved by the [wiki:Documentation/Scheduler reservation service]. After receiving the reservation's confirmation (approval) email: * Login into reserved domain: {{{ ssh username@conslole.grid.orbit-lab.org }}} * Make sure that the full-duplex node is powered down for loading the desired image: {{{ omf tell -a offh -t node11-10 }}} * Load an image on the node (this process can take about a few minutes so please be patient): {{{ omf load -i orbit-flexicon.ndz -t node11-10 }}} * Turn on the node: {{{ omf tell -a on -t node11-10 }}} * Login into the node: {{{ ssh root@node11-10 }}} After login into the node, there is a {{{flexicon_orbit}}} folder under the home directory of {{{node11-10}}} which contains the source code of this example. You can always retrieve the most recently updated code from [https://github.com/Wimnet/flexicon_orbit here]. === Run the Experiments === You will need to login into node11-10 in two (2) separate terminal windows lo for running the experiments: one for the main full-duplex transceiver program and one for controlling the RF canceller