wiki:Tutorials/k0SDR/Tutorial00

Version 3 (modified by nilanjan, 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

  1. Sandbox 3 - consists of two nodes (node1-1 & node1-2). Each node has a USRP2 connect via Ethernet.
  2. 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.
  3. omf-5.2 / omf-5.3: used to image to nodes
  4. octave: GNU version of MATLAB

Set up

  • 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-1
    nilanjan@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)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.