== 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. 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] 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: * [[CollapsibleStart(Login into reserved domain: ssh username@conslole.grid.orbit-lab.org)]][[Include(Documentation/Short/Login)]][[CollapsibleEnd]] * [[CollapsibleStart(Load an image on the node: omf load -i orbit-flexicon.ndz -t node11-10)]] [[Include(Documentation/Short/LoadImage)]][[CollapsibleEnd]] * [[CollapsibleStart(Turn on the node: omf tell -a on -t node11-10)]] [[Include(Documentation/Short/TellOn)]][[CollapsibleEnd]]