Using 2 transmit or 2 receive antennas simultaneously
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 Orbit by clicking on Status Page, then on grid, and then filtering the displayed nodes by SDR devices equipped.
- Make a reservation on Orbit to use the Grid.
- Make sure the node of interest is turned off:
email@example.com:~$ omf tell -a offh -t node18-2
- Load the multiantennatutorial.ndz image onto the node. Note that this process might take several minutes.
firstname.lastname@example.org:~$ omf load -i multiantennatutorial.ndz -t node18-2
- Turn on the node. After issuing the "on" command, wait a couple of minutes for the node to boot up.
email@example.com:~$ omf tell -a on -t node18-2
- Connect to the node using SSH:
firstname.lastname@example.org:~$ ssh -Y root@node18-2
Repeat this for 3 nodes, 1 USRP to behave as a multi-antenna transmitter and 2 USRPs to behave as multi-antenna receivers.
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 here. Use the appropriate input for the –-args argument.
Running the Experiment
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.
root@node18-2:~$ cd ./uhd/host/build/examples ls -ltr
Download the script attached at the bottom of the tutorial onto your console. Open the script and edit the file to correspond to the nodes you are working with.
To start the transmitter to constantly transmit packets:
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
Start the two receivers using the script
email@example.com:~$ omf exec multiantennareceiver.rb
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.
Observe the received signals using Octave at the receivers similar to the example here.