Simple Radio Example with USRP X310 on ORBIT Sandbox 2
Description
This tutorial shows a simple radio example - transmit a sine wave using an USRP X310 on ORBIT SB2, view it on another X310.
Set Up
Make a reservation on the Orbit Scheduler for using SB2.
Prepare the nodes
- Load baseline-sdr.ndz on nodes 1-1 and 1-2.
root@console.sb2:~$ omf load -i baseline-sdr.ndz -t node1-1,node1-2
- Once imaging is done, turn the nodes on and log in
root@console.sb2:~$ omf tell -a on -t node1-1,node1-2 root@console.sb2:~$ ssh root@node1-1 root@console.sb2:~$ ssh root@node1-2
Prepare network setup for USRP access
Each X310 on SB2 is connected to its respective node through a 10G interface adapter installed in Port 1 of the USRP. In this configuration, the X310 will have a default IP address of 192.168.40.2 (see X310 User Manual). To setup network connectivity, make sure DATA2 interface on both node1-1 and node1-2 is configured with an address in the 192.168.40.0/24 subnet.
root@node1-1:~# ifconfig DATA2 192.168.40.1 netmask 255.255.255.0 mtu 9000 root@node1-1:~# ifconfig -a CTRL: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.12.1.1 netmask 255.255.0.0 broadcast 10.12.255.255 inet6 fe80::728b:cdff:febc:844a prefixlen 64 scopeid 0x20<link> ether 70:8b:cd:bc:84:4a txqueuelen 1000 (Ethernet) RX packets 1048 bytes 91762 (91.7 KB) RX errors 0 dropped 559 overruns 0 frame 0 TX packets 335 bytes 38105 (38.1 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 20 memory 0xf7d00000-f7d20000 DATA1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::728b:cdff:febc:844b prefixlen 64 scopeid 0x20<link> ether 70:8b:cd:bc:84:4b txqueuelen 1000 (Ethernet) RX packets 625 bytes 56232 (56.2 KB) RX errors 0 dropped 559 overruns 0 frame 0 TX packets 38 bytes 9320 (9.3 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 DATA2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9000 inet 192.168.40.1 netmask 255.255.0.0 broadcast 192.168.255.255 inet6 fe80::f652:14ff:fe83:b720 prefixlen 64 scopeid 0x20<link> ether f4:52:14:83:b7:20 txqueuelen 1000 (Ethernet) RX packets 75 bytes 4500 (4.5 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 43 bytes 10530 (10.5 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 210 bytes 17093 (17.0 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 210 bytes 17093 (17.0 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Resize the send and receive buffers on both the nodes to support UHD applications
root@node1-1:~# sysctl -w net.core.wmem_max=24862979 net.core.wmem_max = 24862979 root@node1-1:~# sysctl -w net.core.rmem_max=24862979 net.core.rmem_max = 24862979
With this setup, each node should be able to access the X310 connected to it. Check USRP access with uhd_find_devices and uhd_usrp_probe commands.
root@node1-1:~# uhd_find_devices [INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_3.15.0.0-release -------------------------------------------------- -- UHD Device 0 -------------------------------------------------- Device Address: serial: 31B8F3F addr: 192.168.40.2 fpga: XG name: sdr1-1 product: X310 type: x300 root@node1-1:~# uhd_usrp_probe [INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_3.15.0.0-release [INFO] [X300] X300 initialization sequence... . . . | | | RFNoC blocks on this device: | | | | | | * DmaFIFO_0 | | | * Radio_0 | | | * Radio_1 | | | * DDC_0 | | | * DDC_1 | | | * DUC_0 | | | * DUC_1
If uhd_usrp_probe reports firmware incompatibility, please run uhd_images_downloader to make sure compatible firmware images are available, and then load a new image onto the USRP. Power cycle the USRP (by power cycling the node using the omf 'offh' and 'on' commands) for the new image to take effect.
Run the experiment
Once both the USRPs are ready and accessible, run the experiment.
- Send a waveform from the TX node, node1-1
root@node1-1:~# /usr/lib/uhd/examples/tx_waveforms --freq 2e9 --rate 10e6 --wave-type SINE --wave-freq 1e6 --gain 0
- Run a spectrum analyzer application on the RX node, node1-2, to view the waveform
root@node1-2:~# /usr/lib/uhd/examples/rx_ascii_art_dft --freq 2e9 --rate 10e6 --gain 0 --ref-lvl -40
Attachments (1)
- SB2_ascii_art_sinewave.jpg (88.7 KB ) - added by 2 years ago.
Download all attachments as: .zip