Version 3 (modified by 12 years ago) ( diff ) | ,
---|
Working with USRP - Universal Software Radio Peripheral
Description
In this tutorial we'll use the 2 USRPs on Sandbox 3 to transmit and receive a single frequency over the air to demonstrate the use of Universal software Radio peripheral Hardware Drivers (UHD) which is used standalone to configure and enable the USRPs.
Hardware / Software Resources utilized
- Sandbox 3 - consists of two nodes (node1-1 & node1-2). Each node has a USRP2 connect via Ethernet.
- ubuntu-11-10-gnuradio.ndz: disk image loaded onto nodes. This image has all the precompiled - software required to configure the USRPs and analyze recorded data. The USRP2's interface with the node is already configured.
- omf-5.2 / omf-5.3: used to image to nodes
- octave: GNU version of MATLAB
Set up
- To get started first make a reservation on the Orbit Scheduler for using Sandbox 3
- After logging into sandbox 3 console, make sure both nodes are turned off
nilanjan@console.sb3:~$ omf-5.2 tell offh all
- Verify state of node before continuing. Make sure all nodes are in the POWEROFF state.
nilanjan@console.sb3:~$ omf-5.2 stat
- Image both nodes
nilanjan@console.sb3:~$ omf-5.3 load -i ubuntu-11-10-gnuradio.ndz -t node1-1.sb3.orbit-lab.org,node1-2.sb3.orbit-lab.org
- After nodes are imaged, verify that nodes are in POWEROFF state. Otherwise issue the following to turn them off for a reboot
nilanjan@console.sb3:~$ nilanjan@console.sb3:~$ omf-5.2 tell offh all
- Turn nodes back on and verify they are in POWERON state before proceeding
nilanjan@console.sb3:~$ nilanjan@console.sb3:~$ omf-5.2 tell on all
Usage
- Once nodes are imaged, ssh into each node. Use the USRP2 on node1-1 as the transmitter and USRP2 on node1-2 as receiver.
ssh into node1-1nilanjan@console.sb3:~$ ssh root@node1-1 root@node1-1:~# cd uhd/host/build/examples/
ssh into node1-2
nilanjan@console.sb3:~$ ssh root@node1-2 root@node1-1:~# cd uhd/host/build/examples/
- The directory content should look like the following in both nodes
root@node1-1:~/uhd/host/build/examples# ls benchmark_rate latency_test rx_samples_to_file test_pps_input tx_waveforms CMakeFiles Makefile rx_samples_to_udp tx_bursts cmake_install.cmake network_relay rx_timed_samples tx_samples_from_file CTestTestfile.cmake rx_multi_samples test_messages tx_timed_samples
- Once inside the node verify that the node can talk to the USRP
root@node1-1:~/uhd/host/build/examples# uhd_find_devices
- It should return something like the following:
root@node1-1:~/uhd/host/build/examples# uhd_find_devices linux; GNU C++ version 4.6.1; Boost_104601; UHD_003.004.003-0-unknown -------------------------------------------------- -- UHD Device 0 -------------------------------------------------- Device Address: type: usrp2 addr: 192.168.10.2 name: serial: 1232
- Probe the device
root@node1-1:~/uhd/host/build/examples# uhd_usrp_probe linux; GNU C++ version 4.6.1; Boost_104601; UHD_003.004.003-0-unknown -- Opening a USRP2/N-Series device... -- Current recv frame size: 1472 bytes -- Current send frame size: 1472 bytes _____________________________________________________ / | Device: USRP2 / N-Series Device | _____________________________________________________ | / | | Mboard: USRP2-REV4 | | hardware: 1024 | | mac-addr: 00:50:c2:85:34:d0 | | ip-addr: 192.168.10.2 | | gpsdo: none | | serial: 1232 | | | | Time sources: none, external, _external_, mimo | | Clock sources: internal, external, mimo | | Sensors: mimo_locked, ref_locked | | _____________________________________________________ | | / | | | RX DSP: 0 | | | Freq range: -50.000 to 50.000 Mhz | | _____________________________________________________ | | / | | | RX DSP: 1 | | | Freq range: -50.000 to 50.000 Mhz | | _____________________________________________________ | | / | | | RX Dboard: A | | | ID: XCVR2450 (0x0061) | | | _____________________________________________________ | | | / | | | | RX Subdev: 0 | | | | Name: XCVR2450 (0x0061) | | | | Antennas: J1, J2 | | | | Sensors: lo_locked, rssi | | | | Freq range: 2400.000 to 6000.000 Mhz | | | | Gain range LNA: 0.0 to 30.5 step 15.0 dB | | | | Gain range VGA: 0.0 to 62.0 step 2.0 dB | | | | Connection Type: IQ | | | | Uses LO offset: No | | | _____________________________________________________ | | | / | | | | RX Codec: A | | | | Name: ltc2284 | | | | Gain Elements: None | | _____________________________________________________ | | / | | | TX DSP: 0 | | | Freq range: -250.000 to 250.000 Mhz | | _____________________________________________________ | | / | | | TX Dboard: A | | | ID: XCVR2450 (0x0060) | | | _____________________________________________________ | | | / | | | | TX Subdev: 0 | | | | Name: XCVR2450 (0x0060) | | | | Antennas: J1, J2 | | | | Sensors: lo_locked | | | | Freq range: 2400.000 to 6000.000 Mhz | | | | Gain range VGA: 0.0 to 30.0 step 0.5 dB | | | | Gain range BB: 0.0 to 5.0 step 1.5 dB | | | | Connection Type: QI | | | | Uses LO offset: No | | | _____________________________________________________ | | | / | | | | TX Codec: A | | | | Name: ad9777 | | | | Gain Elements: None
If the commands uhd_find_devices & uhd_usrp_probe return No UHD Devices Found, please refer to the trouble shooting section.
- Set up node1-1 to transmit a single frequency sine wave with a frequency of 100k Hz sampled at a rate of 8 Msamples / second and modulated upto 5000MHz
./tx_waveforms --wave-freq 100e3 --wave-type SINE --freq 5000e6 --rate 8e6
Troubleshooting
- uhd_find_devices & uhd_usrp_probe return No UHD Devices Found
Attachments (2)
- SineWave1MHz.png (48.9 KB ) - added by 12 years ago.
- read_float_binary.m (1.2 KB ) - added by 11 years ago.
Download all attachments as: .zip
Note:
See TracWiki
for help on using the wiki.