| 1 | == Using 2 transmit or 2 receive antennas simultaneously== |
| 2 | |
| 3 | === Description === |
| 4 | |
| 5 | This example shows how to run two concurrent streams (RX and TX) on a single USRP device using UHD example on Orbit Wireless Testbed. The example assumes usage of any USRP with 2 TX/RX and 2 RX2 antennas such as X310 and B210. Information on SDR availability on particular nodes can be found on [https://www.orbit-lab.org/cPanel/controlPanel/start Orbit] by clicking on ''Status Page'', then on ''grid'', and then filtering the displayed nodes by SDR devices equipped. |
| 6 | |
| 7 | === Set Up === |
| 8 | |
| 9 | 1. Make a reservation on [https://www.orbit-lab.org/cPanel/controlPanel/start Orbit] to use the Grid. |
| 10 | 2. Make sure the node of interest is turned off: |
| 11 | {{{username@console.grid:~$ omf tell -a offh -t node18-2}}} |
| 12 | 3. Load the ''multiantennatutorial.ndz'' image onto the node. Note that this process might take several minutes. |
| 13 | {{{username@console.grid:~$ omf load -i multiantennatutorial.ndz -t node18-2}}} |
| 14 | 4. Turn on the node. After issuing the "on" command, wait a couple of minutes for the node to boot up. |
| 15 | {{{username@console.grid:~$ omf tell -a on -t node18-2}}} |
| 16 | 5. Connect to the node using SSH: |
| 17 | {{{username@console.grid:~$ ssh -Y root@node18-2}}} |
| 18 | |
| 19 | Repeat this for 3 nodes, 1 USRP to behave as a multi-antenna transmitter and 2 USRPs to behave as multi-antenna receivers. |
| 20 | |
| 21 | To make sure that the node can communicate with the USRP use the command uhd_find_devices and probe it for specs by uhd_usrp_probe similar to the example [http://www.orbit-lab.org/wiki/Tutorials/k0SDR/Tutorial00 here]. Use the appropriate input for the –-args argument. |
| 22 | |
| 23 | === Running the Experiment === |
| 24 | Go to the UHD examples folder to list the various available applications and check for rx_multi_samples_file and tx_multi_channel_file_pps_sync APIs. |
| 25 | |
| 26 | {{{ root@node18-2:~$ cd ./uhd/host/build/examples ls -ltr}}} |
| 27 | |
| 28 | Download the script attached at the bottom of the tutorial onto your console. |
| 29 | Open the script and edit the file to correspond to the nodes you are working with. |
| 30 | |
| 31 | To start the transmitter to constantly transmit packets: |
| 32 | {{{root@node18-2:~$ ./tx_multi_samples_file_pps_sync --args="type=b200" --file1 send_nogap_1.dat --file2 send_nogap_2.dat --spb 10000 --rate 2e6 --freq1 5.4e9 --freq2 5.4e9 --gain1 80 --gain2 80 --subdev="A:A A:B" --repeat --ref external}}} |
| 33 | |
| 34 | Start the two receivers using the script |
| 35 | {{{username@console.grid:~$ omf exec multiantennareceiver.rb }}} |
| 36 | |
| 37 | There will be 2 new files on each of the receivers and can be found in the ''/uhd/host/build/examples'' folder as ''usrp_samples_1.dat'' and ''usrp_samples_2.dat''. |
| 38 | |
| 39 | Observe the received signals using Octave at the receivers similar to the example [http://www.orbit-lab.org/wiki/Tutorials/k0SDR/Tutorial00 here]. |