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

Reply via email to