| | 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 | }}} |