Marcus, Thanks for you email. The following works: rfnoc_rx_to_file --args="type=x300" --nsamps=65536 --block-id=FFT_0 --block-args="spp=256" --rate=200e6 --freq=2400e6
It is curious that the "spp=256" is necessary given that this is the default and a call to "get_args" will return 256. But, if you don't actually set it, bad stuff happens. Rob On Tue, Nov 13, 2018 at 5:05 PM Marcus D. Leech via USRP-users < usrp-users@lists.ettus.com> wrote: > On 11/13/2018 04:35 PM, Rob Kossler via USRP-users wrote: > > Haven't heard any advice on this post. I'm wondering if anybody has a C++ > example which includes the FFT block? I can run a simple example from > GnuRadio, but I cannot duplicate it in C++. Or, alternatively, is it > possible to demonstrate successful use of the FFT block with an existing > example such as 'rfnoc_rx_to_file'? That is what I attempted below and > failed. > > Rob > > > On Mon, Nov 5, 2018 at 4:32 PM Rob Kossler <rkoss...@nd.edu> wrote: > >> Hi, >> I built an X310 FPGA image with 2 FFT blocks and I am now trying to run >> simple tests from C++. After my own code failed with numerous peek/poke >> error messages, I tried to use the example "rfnoc_rx_to_file", which allows >> the user to specify any RFNoC block to place in between the radio and the >> host for Rx streaming. I tried this example with both the DDC block and >> the FFT block >> >> - if I run with the DDC block, it works like a champ producing the >> expected data file (see below) >> - if I run with the FFT block, I get errors (see below). I noticed >> that the graph->connect() function used in this example did not specify >> the >> size of the packets so I modified the example such that the 'spp' was set >> to 256 during the connect. >> - If I run with the modified example (with 'spp' set to 256 in the >> graph->connect() operation), I still get errors (see below). I had hoped >> that setting the packet size to 256 at all stages of the streaming would >> cause it to run correctly, but that is not happening. >> >> Any suggestions? Does the rfnoc_rx_to_file example lack needed >> configuration of either the blocks or the graph? Is there any example I >> can run? >> >> Rob >> >> // ************** Trial #1 ******************** >> rfnoc_rx_to_file --freq 2400e6 --nsamps=4096 --block-id=DDC --spb=256 >> result: works great >> >> // ************** Trial #2 ******************** >> rfnoc_rx_to_file --freq 2400e6 --nsamps=4096 --block-id=FFT --spb=256 >> >> Creating the USRP device with: ... >> [INFO] [UHD] Mac OS; Clang version 5.0.2 (tags/RELEASE_502/final); >> Boost_106600; UHD_3.14.0.0-165-g1d5c186c >> [INFO] [X300] X300 initialization sequence... >> [INFO] [X300] Maximum frame size: 1472 bytes. >> [INFO] [X300] Radio 1x clock: 200 MHz >> [INFO] [0/Replay_0] Initializing block control (NOC ID: >> 0x4E91A00000000002) >> [INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000000001) >> [INFO] [0/Radio_1] Initializing block control (NOC ID: 0x12AD100000000001) >> [INFO] [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000000) >> [INFO] [0/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000000) >> [INFO] [0/DUC_0] Initializing block control (NOC ID: 0xD0C0000000000000) >> [INFO] [0/DUC_1] Initializing block control (NOC ID: 0xD0C0000000000000) >> [WARNING] [RFNOC] Can't find a block controller for key FFT, using >> default block controller! >> [INFO] [0/FFT_0] Initializing block control (NOC ID: 0xFF70000000000000) >> [WARNING] [RFNOC] Can't find a block controller for key FFT, using >> default block controller! >> [INFO] [0/FFT_1] Initializing block control (NOC ID: 0xFF70000000000000) >> Using radio 0, channel 0 >> Setting RX Rate: 1.000000 Msps... >> Actual RX Rate: 200.000000 Msps... >> >> Setting RX Freq: 2400.000000 MHz... >> [WARNING] [X300 RADIO] Requesting invalid sampling rate from device: 1 >> MHz. Actual rate is: 200 MHz. >> Actual RX Freq: 2400.000000 MHz... >> >> Connecting 0/Radio_0 ==> 0/FFT_0 >> [WARNING] [RFNOC] Assuming max packet size for 0/Radio_0 >> Samples per packet: 256 >> Using streamer args: block_id=0/FFT_0,spp=256 >> Issueing stream cmd >> Done >> [ERROR] [X300] 192.168.10.2: x300 fw communication failure #1 >> EnvironmentError: IOError: x300 fw poke32 - reply timed out >> [ERROR] [X300] 192.168.10.2: x300 fw communication failure #2 >> EnvironmentError: IOError: x300 fw poke32 - reply timed out >> Timeout while streaming >> Issueing stop stream cmd >> ^C >> >> // ************** Trial #3 ******************** >> rfnoc_rx_to_file_2 --freq 2400e6 --nsamps=4096 --block-id=FFT --spb=256 >> >> Creating the USRP device with: ... >> [INFO] [UHD] Mac OS; Clang version 5.0.2 (tags/RELEASE_502/final); >> Boost_106600; UHD_3.14.0.0-165-g1d5c186c >> [INFO] [X300] X300 initialization sequence... >> [INFO] [X300] Maximum frame size: 1472 bytes. >> [INFO] [X300] Radio 1x clock: 200 MHz >> [INFO] [GPS] No GPSDO found >> [INFO] [0/Replay_0] Initializing block control (NOC ID: >> 0x4E91A00000000002) >> [INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000000001) >> [INFO] [0/Radio_1] Initializing block control (NOC ID: 0x12AD100000000001) >> [INFO] [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000000) >> [INFO] [0/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000000) >> [INFO] [0/DUC_0] Initializing block control (NOC ID: 0xD0C0000000000000) >> [INFO] [0/DUC_1] Initializing block control (NOC ID: 0xD0C0000000000000) >> [WARNING] [RFNOC] Can't find a block controller for key FFT, using >> default block controller! >> [INFO] [0/FFT_0] Initializing block control (NOC ID: 0xFF70000000000000) >> [WARNING] [RFNOC] Can't find a block controller for key FFT, using >> default block controller! >> [INFO] [0/FFT_1] Initializing block control (NOC ID: 0xFF70000000000000) >> Using radio 0, channel 0 >> Setting RX Rate: 1.000000 Msps... >> Actual RX Rate: 200.000000 Msps... >> >> Setting RX Freq: 2400.000000 MHz... >> [WARNING] [X300 RADIO] Requesting invalid sampling rate from device: 1 >> MHz. Actual rate is: 200 MHz. >> Actual RX Freq: 2400.000000 MHz... >> >> Connecting 0/Radio_0 ==> 0/FFT_0 >> Samples per packet: 256 >> Using streamer args: block_id=0/FFT_0,spp=256 >> Issueing stream cmd >> Done >> [ERROR] [X300] 192.168.10.2: x300 fw communication failure #1 >> EnvironmentError: IOError: x300 fw poke32 - reply timed out >> [ERROR] [X300] 192.168.10.2: x300 fw communication failure #2 >> EnvironmentError: IOError: x300 fw poke32 - reply timed out >> Timeout while streaming >> >> > This possibly has to do with the default FFT size and a mis-match between > that and SPP -- the FFT output *has* to fit into a single packet, and > with SPP=256, that may cause and internal foul-up if the default FFT > size causes a larger packet than that. > > Not sure what the args are for the FFT block (like size), but they can be > passed using --block-args > > > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com