|  | 1 | == Getting started with RFNoC X310 == | 
          
            |  | 2 |  | 
          
            |  | 3 | [[TOC(Tutorials/k0SDR*)]] | 
          
            |  | 4 |  | 
          
            |  | 5 | === Description === | 
          
            |  | 6 | This tutorial is a guide for getting started with RFNoC using an USRP X310 on ORBIT grid. | 
          
            |  | 7 | Before starting to experiment with RFNoC, here are a couple of useful presentations, write ups from Ettus Research, that one should go through. | 
          
            |  | 8 | https://github.com/EttusResearch/uhd/wiki/RFNoC:-Getting-Started | 
          
            |  | 9 |  | 
          
            |  | 10 |  | 
          
            |  | 11 |  | 
          
            |  | 12 |  | 
          
            |  | 13 |  | 
          
            |  | 14 | === Set up === | 
          
            |  | 15 | * Make a reservation on the [https://www.orbit-lab.org/schedule/ Orbit Scheduler] for using the grid. | 
          
            |  | 16 | * Load baseline-rfnoc-labtools.ndz on an ORBIT node with USRP X310. | 
          
            |  | 17 | {{{ | 
          
            |  | 18 | omf load -i baseline-rfnoc-labtools.ndz -t node18-20 | 
          
            |  | 19 | }}} | 
          
            |  | 20 | * Once imaging is done, turn the node on | 
          
            |  | 21 | {{{ | 
          
            |  | 22 | omf tell -a on -t node18-20 | 
          
            |  | 23 | }}} | 
          
            |  | 24 | * Wait for the node to turn on and log in | 
          
            |  | 25 | {{{ | 
          
            |  | 26 | ssh root@node18-20 | 
          
            |  | 27 | }}} | 
          
            |  | 28 |  | 
          
            |  | 29 | === Testing the installation === | 
          
            |  | 30 | The image that was loaded, contains UHD rfnoc-devel branch installation as mentioned in the RFNoC getting started guide. | 
          
            |  | 31 | * Run uhd_find_devices - you can see that the UHD version is shown as UHD_003.010.rfnoc-285-gb9765c42 | 
          
            |  | 32 | {{{ | 
          
            |  | 33 | root@node18-20:~# uhd_find_devices --args="addr=192.168.10.2" | 
          
            |  | 34 | linux; GNU C++ version 4.8.2; Boost_105400; UHD_003.010.rfnoc-285-gb9765c42 | 
          
            |  | 35 |  | 
          
            |  | 36 | -------------------------------------------------- | 
          
            |  | 37 | -- UHD Device 0 | 
          
            |  | 38 | -------------------------------------------------- | 
          
            |  | 39 | Device Address: | 
          
            |  | 40 | type: x300 | 
          
            |  | 41 | addr: 192.168.10.2 | 
          
            |  | 42 | fpga: HGS | 
          
            |  | 43 | name: hakuna matata | 
          
            |  | 44 | serial: F4FD2A | 
          
            |  | 45 | product: X310 | 
          
            |  | 46 | }}} | 
          
            |  | 47 | * Run uhd_usrp_probe. This might throw an error as shown below, as the X310 might contain a firmware build that is not compatible with the RFNoC UHD installation. | 
          
            |  | 48 |  | 
          
            |  | 49 | {{{ | 
          
            |  | 50 | root@node18-20:~# uhd_usrp_probe --args="addr=192.168.10.2" | 
          
            |  | 51 | linux; GNU C++ version 4.8.2; Boost_105400; UHD_003.010.rfnoc-285-gb9765c42 | 
          
            |  | 52 |  | 
          
            |  | 53 | -- X300 initialization sequence... | 
          
            |  | 54 | -- Determining maximum frame size... 8000 bytes. | 
          
            |  | 55 | -- Setup basic communication... | 
          
            |  | 56 | ========================================================= | 
          
            |  | 57 | Warning: | 
          
            |  | 58 | Expected FPGA compatibility number 1000, but got 9: | 
          
            |  | 59 | The FPGA image on your device is not compatible with this host code build. | 
          
            |  | 60 | Download the appropriate FPGA images for this version of UHD. | 
          
            |  | 61 | Please run: | 
          
            |  | 62 |  | 
          
            |  | 63 | "/usr/local/lib/uhd/utils/uhd_images_downloader.py" | 
          
            |  | 64 |  | 
          
            |  | 65 | Then burn a new image to the on-board flash storage of your | 
          
            |  | 66 | USRP X3xx device using the image loader utility. Use this command: | 
          
            |  | 67 |  | 
          
            |  | 68 | "/usr/local/bin/uhd_image_loader" --args="type=x300,addr=192.168.10.2" | 
          
            |  | 69 |  | 
          
            |  | 70 | For more information, refer to the UHD manual: | 
          
            |  | 71 |  | 
          
            |  | 72 | http://files.ettus.com/manual/page_usrp_x3x0.html#x3x0_flash========================================================= | 
          
            |  | 73 | Error: RuntimeError: Expected firmware compatibility number 4.0, but got 3.0: | 
          
            |  | 74 | The firmware build is not compatible with the host code build. | 
          
            |  | 75 | Please run: | 
          
            |  | 76 |  | 
          
            |  | 77 | "/usr/local/lib/uhd/utils/uhd_images_downloader.py" | 
          
            |  | 78 | }}} | 
          
            |  | 79 |  | 
          
            |  | 80 | * In case of the above error, you can burn the appropriate FPGA image using uhd_image_loader as shown above, or using usrp_x3xx_fpga_jtag_programmer.sh found in uhd/tools. | 
          
            |  | 81 | When the jtag programmer is used, the FPGA image is lost on power cycling. | 
          
            |  | 82 |  | 
          
            |  | 83 | {{{ | 
          
            |  | 84 | root@node18-20:~/uhd/tools# ./usrp_x3xx_fpga_jtag_programmer.sh --fpga-path="/usr/local/share/uhd/images/usrp_x310_fpga_HGS.bit" | 
          
            |  | 85 | ======================================= | 
          
            |  | 86 | Copyright 2014 Ettus Research LLC | 
          
            |  | 87 |  | 
          
            |  | 88 | JTAG Programming Tool | 
          
            |  | 89 | ======================================= | 
          
            |  | 90 |  | 
          
            |  | 91 | ==== Generating impact batch file 1eRfmtCb.impact.cmd... | 
          
            |  | 92 | ==== Running impact -- loading /usr/local/share/uhd/images/usrp_x310_fpga_HGS.bit into the FPGA... | 
          
            |  | 93 | }}} | 
          
            |  | 94 |  | 
          
            |  | 95 | * Now running uhd_usrp_probe should print out a lot of messages with this at the end : the list of RFNoC blocks in the current FPGA image. | 
          
            |  | 96 |  | 
          
            |  | 97 | {{{ | 
          
            |  | 98 | -- ========== Full list of RFNoC blocks: ============ | 
          
            |  | 99 | -- * 0/Radio_0 | 
          
            |  | 100 | -- * 0/Radio_1 | 
          
            |  | 101 | -- * 0/AddSub_0 | 
          
            |  | 102 | -- * 0/FIR_0 | 
          
            |  | 103 | -- * 0/FFT_0 | 
          
            |  | 104 | -- * 0/Window_0 | 
          
            |  | 105 | -- * 0/NullSrcSink_0 | 
          
            |  | 106 | -- * 0/LogPwr_0 | 
          
            |  | 107 | -- * 0/MovingAverage_0 | 
          
            |  | 108 | -- * 0/VectorIIR_0 | 
          
            |  | 109 | -- * 0/KeepOneInN_0 | 
          
            |  | 110 | -- * 0/fosphor_0 | 
          
            |  | 111 | -- * 0/FIFO_0 | 
          
            |  | 112 | }}} |