usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

Error on using split stream and FFT rfnoc block.

NP
Nidhi Panda
Wed, Oct 23, 2024 10:44 AM

Hello,

I am having USRP X300 device with following tool versions:

Vivado 2021.1 - AR76780n,
GNU radio version - v3.11.0.0git-820-g2adbd4ea
UHD version - UHD_4.7.0.0-84-gbdada1ed

I have added FFT and Spliter RFNoC blocks in my bit file. The
"uhd_usrp_probe" command shows correct connection in the blocks.

| | RFNoC blocks on this device:
| |
| | * 0/DDC#0
| | * 0/FFT#0
| | * 0/Radio#0
| | * 0/Replay#0
| | * 0/SplitStream#0
| _____________________________________________________
| /
| | Static connections on this device:

| | * 0/Radio#0:0==>0/DDC#0:0
| | * 0/Radio#0:1==>0/DDC#0:1
| | * 0/DDC#0:1==>0/SEP#0:0
| | * 0/DDC#0:0==>0/SplitStream#0:0
| | * 0/SplitStream#0:1==>0/FFT#0:0
| | * 0/SplitStream#0:0==>0/SEP#2:0
| | * 0/FFT#0:0==>0/SEP#1:0
| | * 0/SEP#3:0==>0/Replay#0:0
| | * 0/Replay#0:0==>0/SEP#3:0
| | * 0/SEP#4:0==>0/Replay#0:1
| | * 0/Replay#0:1==>0/SEP#4:0

However, on running example code available on GNURADIO
"rfnoc_split_stream.grc". I get following error:

1. When FFT size = 1024 (as in the example given in gnu radio)

--------------------------------------------------------------------------------------------------------------------------

[ERROR] [RxStreamer#0] Cannot resolve spp! Must be a multiple of 1024 but
max value is 364Traceback (most recent call last):  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
347, in <module>    main()  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
326, in main    tb.start()  File
"/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line
116, in start    top_block_start_unlocked(self._impl,
max_noutput_items)RuntimeError: ValueError: Samples per packet is
incompatible with atomic item size!

--------------------------------------------------------------------------------------------------------------------------
How to know what is atomic size and how can I set it. On searching for this
error I came across following link:

https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74
https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74

This says rx stream is having a bug and AIS is in unit bytes, and spp in
unit items. It was a response of two years back with the uhd version
v4.3.0.0-rc1
https://github.com/EttusResearch/uhd/releases/tag/v4.3.0.0-rc1. Does this
explanation still hold? What is the max FFT size I can use? I want to use
2048, what changes need to be done for it.

1. When FFT size = 256

--------------------------------------------------------------------------------------------------------------------------

[ERROR] [RFNOC::GRAPH::DETAIL] The following properties could not be
resolved:[ERROR] [RFNOC::GRAPH::DETAIL] Dirty: RxStreamer#1[INPUT_EDGE:0
atomic_item_size]Traceback (most recent call last):  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
347, in <module>    main()  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
326, in main    tb.start()  File
"/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line
116, in start    top_block_start_unlocked(self._impl,
max_noutput_items)RuntimeError: RfnocError: ResolveError: Could not resolve
properties.

--------------------------------------------------------------------------------------------------------------------------

Am I doing anything wrong in the yml script because the connection seems
correct in the uhd_usrp_probe command. On further searching I found that
SPP i.e. sample per packet must be the same for all the blocks. Tried doing
it in gnu radio by assigning the args option with f"spp={fft_size}". Is
this correct? It gives no change in error howver I get additional warning
as

[WARNING] [0/FFT#0] set_properties() cannot set property spp': No such property. [WARNING] [0/DDC#0] set_properties() cannot set property spp': No such
property.

Please help me to solve these errors.

--
Regards,
Nidhi Panda

Cyronics Innovation Labs Pvt Ltd
#11, Electronics Co-op Estate
Satara Road, Pune - 411009

Hello, I am having USRP X300 device with following tool versions: Vivado 2021.1 - AR76780n, GNU radio version - v3.11.0.0git-820-g2adbd4ea UHD version - UHD_4.7.0.0-84-gbdada1ed I have added FFT and Spliter RFNoC blocks in my bit file. The "uhd_usrp_probe" command shows correct connection in the blocks. | | RFNoC blocks on this device: | | | | * 0/DDC#0 | | * 0/FFT#0 | | * 0/Radio#0 | | * 0/Replay#0 | | * 0/SplitStream#0 | _____________________________________________________ | / | | Static connections on this device: | | * 0/Radio#0:0==>0/DDC#0:0 | | * 0/Radio#0:1==>0/DDC#0:1 | | * 0/DDC#0:1==>0/SEP#0:0 | | * 0/DDC#0:0==>0/SplitStream#0:0 | | * 0/SplitStream#0:1==>0/FFT#0:0 | | * 0/SplitStream#0:0==>0/SEP#2:0 | | * 0/FFT#0:0==>0/SEP#1:0 | | * 0/SEP#3:0==>0/Replay#0:0 | | * 0/Replay#0:0==>0/SEP#3:0 | | * 0/SEP#4:0==>0/Replay#0:1 | | * 0/Replay#0:1==>0/SEP#4:0 However, on running example code available on GNURADIO *"rfnoc_split_stream.grc"*. I get following error: *1. When FFT size = 1024 (as in the example given in gnu radio)* *--------------------------------------------------------------------------------------------------------------------------* *[ERROR] [RxStreamer#0] Cannot resolve spp! Must be a multiple of 1024 but max value is 364Traceback (most recent call last): File "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line 347, in <module> main() File "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line 326, in main tb.start() File "/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line 116, in start top_block_start_unlocked(self._impl, max_noutput_items)RuntimeError: ValueError: Samples per packet is incompatible with atomic item size!* *--------------------------------------------------------------------------------------------------------------------------* How to know what is atomic size and how can I set it. On searching for this error I came across following link: *https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74 <https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74>* This says rx stream is having a bug and AIS is in unit bytes, and spp in unit items. It was a response of two years back with the uhd version v4.3.0.0-rc1 <https://github.com/EttusResearch/uhd/releases/tag/v4.3.0.0-rc1>. Does this explanation still hold? What is the max FFT size I can use? I want to use *2048*, what changes need to be done for it. *1. When FFT size = 256* *--------------------------------------------------------------------------------------------------------------------------* *[ERROR] [RFNOC::GRAPH::DETAIL] The following properties could not be resolved:[ERROR] [RFNOC::GRAPH::DETAIL] Dirty: RxStreamer#1[INPUT_EDGE:0 atomic_item_size]Traceback (most recent call last): File "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line 347, in <module> main() File "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line 326, in main tb.start() File "/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line 116, in start top_block_start_unlocked(self._impl, max_noutput_items)RuntimeError: RfnocError: ResolveError: Could not resolve properties.* *--------------------------------------------------------------------------------------------------------------------------* Am I doing anything wrong in the yml script because the connection seems correct in the uhd_usrp_probe command. On further searching I found that SPP i.e. sample per packet must be the same for all the blocks. Tried doing it in gnu radio by assigning the args option with f"spp={fft_size}". Is this correct? It gives no change in error howver I get additional warning as [WARNING] [0/FFT#0] set_properties() cannot set property `spp': No such property. [WARNING] [0/DDC#0] set_properties() cannot set property `spp': No such property. Please help me to solve these errors. -- Regards, *Nidhi Panda* *Cyronics Innovation Labs Pvt Ltd* #11, Electronics Co-op Estate Satara Road, Pune - 411009
WF
Wade Fife
Wed, Oct 23, 2024 1:29 PM

With this FFT block, you need to set the SPP to match the FFT size for it
to work correctly. I'm not very familiar with GNU Radio but I think there
is an SPP parameter on the RX radio. I don't know how to set it for TX.

Wade

On Wed, Oct 23, 2024 at 5:45 AM Nidhi Panda nidhi.panda@cyronics.com
wrote:

Hello,

I am having USRP X300 device with following tool versions:

Vivado 2021.1 - AR76780n,
GNU radio version - v3.11.0.0git-820-g2adbd4ea
UHD version - UHD_4.7.0.0-84-gbdada1ed

I have added FFT and Spliter RFNoC blocks in my bit file. The
"uhd_usrp_probe" command shows correct connection in the blocks.

| | RFNoC blocks on this device:
| |
| | * 0/DDC#0
| | * 0/FFT#0
| | * 0/Radio#0
| | * 0/Replay#0
| | * 0/SplitStream#0
| _____________________________________________________
| /
| | Static connections on this device:

| | * 0/Radio#0:0==>0/DDC#0:0
| | * 0/Radio#0:1==>0/DDC#0:1
| | * 0/DDC#0:1==>0/SEP#0:0
| | * 0/DDC#0:0==>0/SplitStream#0:0
| | * 0/SplitStream#0:1==>0/FFT#0:0
| | * 0/SplitStream#0:0==>0/SEP#2:0
| | * 0/FFT#0:0==>0/SEP#1:0
| | * 0/SEP#3:0==>0/Replay#0:0
| | * 0/Replay#0:0==>0/SEP#3:0
| | * 0/SEP#4:0==>0/Replay#0:1
| | * 0/Replay#0:1==>0/SEP#4:0

However, on running example code available on GNURADIO
"rfnoc_split_stream.grc". I get following error:

1. When FFT size = 1024 (as in the example given in gnu radio)

--------------------------------------------------------------------------------------------------------------------------

[ERROR] [RxStreamer#0] Cannot resolve spp! Must be a multiple of 1024 but
max value is 364Traceback (most recent call last):  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
347, in <module>    main()  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
326, in main    tb.start()  File
"/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line
116, in start    top_block_start_unlocked(self._impl,
max_noutput_items)RuntimeError: ValueError: Samples per packet is
incompatible with atomic item size!

--------------------------------------------------------------------------------------------------------------------------
How to know what is atomic size and how can I set it. On searching for
this error I came across following link:

https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74
https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74

This says rx stream is having a bug and AIS is in unit bytes, and spp in
unit items. It was a response of two years back with the uhd version
v4.3.0.0-rc1
https://github.com/EttusResearch/uhd/releases/tag/v4.3.0.0-rc1. Does
this explanation still hold? What is the max FFT size I can use? I want to
use 2048, what changes need to be done for it.

1. When FFT size = 256

--------------------------------------------------------------------------------------------------------------------------

[ERROR] [RFNOC::GRAPH::DETAIL] The following properties could not be
resolved:[ERROR] [RFNOC::GRAPH::DETAIL] Dirty: RxStreamer#1[INPUT_EDGE:0
atomic_item_size]Traceback (most recent call last):  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
347, in <module>    main()  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
326, in main    tb.start()  File
"/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line
116, in start    top_block_start_unlocked(self._impl,
max_noutput_items)RuntimeError: RfnocError: ResolveError: Could not resolve
properties.

--------------------------------------------------------------------------------------------------------------------------

Am I doing anything wrong in the yml script because the connection seems
correct in the uhd_usrp_probe command. On further searching I found that
SPP i.e. sample per packet must be the same for all the blocks. Tried doing
it in gnu radio by assigning the args option with f"spp={fft_size}". Is
this correct? It gives no change in error howver I get additional warning
as

[WARNING] [0/FFT#0] set_properties() cannot set property spp': No such property. [WARNING] [0/DDC#0] set_properties() cannot set property spp': No such
property.

Please help me to solve these errors.

--
Regards,
Nidhi Panda

Cyronics Innovation Labs Pvt Ltd
#11, Electronics Co-op Estate
Satara Road, Pune - 411009


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

With this FFT block, you need to set the SPP to match the FFT size for it to work correctly. I'm not very familiar with GNU Radio but I think there is an SPP parameter on the RX radio. I don't know how to set it for TX. Wade On Wed, Oct 23, 2024 at 5:45 AM Nidhi Panda <nidhi.panda@cyronics.com> wrote: > Hello, > > I am having USRP X300 device with following tool versions: > > Vivado 2021.1 - AR76780n, > GNU radio version - v3.11.0.0git-820-g2adbd4ea > UHD version - UHD_4.7.0.0-84-gbdada1ed > > I have added FFT and Spliter RFNoC blocks in my bit file. The > "uhd_usrp_probe" command shows correct connection in the blocks. > > | | RFNoC blocks on this device: > | | > | | * 0/DDC#0 > | | * 0/FFT#0 > | | * 0/Radio#0 > | | * 0/Replay#0 > | | * 0/SplitStream#0 > | _____________________________________________________ > | / > | | Static connections on this device: > > | | * 0/Radio#0:0==>0/DDC#0:0 > | | * 0/Radio#0:1==>0/DDC#0:1 > | | * 0/DDC#0:1==>0/SEP#0:0 > | | * 0/DDC#0:0==>0/SplitStream#0:0 > | | * 0/SplitStream#0:1==>0/FFT#0:0 > | | * 0/SplitStream#0:0==>0/SEP#2:0 > | | * 0/FFT#0:0==>0/SEP#1:0 > | | * 0/SEP#3:0==>0/Replay#0:0 > | | * 0/Replay#0:0==>0/SEP#3:0 > | | * 0/SEP#4:0==>0/Replay#0:1 > | | * 0/Replay#0:1==>0/SEP#4:0 > > However, on running example code available on GNURADIO > *"rfnoc_split_stream.grc"*. I get following error: > > *1. When FFT size = 1024 (as in the example given in gnu radio)* > > > > *--------------------------------------------------------------------------------------------------------------------------* > > > > > > > > > > *[ERROR] [RxStreamer#0] Cannot resolve spp! Must be a multiple of 1024 but > max value is 364Traceback (most recent call last): File > "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line > 347, in <module> main() File > "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line > 326, in main tb.start() File > "/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line > 116, in start top_block_start_unlocked(self._impl, > max_noutput_items)RuntimeError: ValueError: Samples per packet is > incompatible with atomic item size!* > > > *--------------------------------------------------------------------------------------------------------------------------* > How to know what is atomic size and how can I set it. On searching for > this error I came across following link: > > *https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74 > <https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74>* > > This says rx stream is having a bug and AIS is in unit bytes, and spp in > unit items. It was a response of two years back with the uhd version > v4.3.0.0-rc1 > <https://github.com/EttusResearch/uhd/releases/tag/v4.3.0.0-rc1>. Does > this explanation still hold? What is the max FFT size I can use? I want to > use *2048*, what changes need to be done for it. > > *1. When FFT size = 256* > > > *--------------------------------------------------------------------------------------------------------------------------* > > > > > > > > > > *[ERROR] [RFNOC::GRAPH::DETAIL] The following properties could not be > resolved:[ERROR] [RFNOC::GRAPH::DETAIL] Dirty: RxStreamer#1[INPUT_EDGE:0 > atomic_item_size]Traceback (most recent call last): File > "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line > 347, in <module> main() File > "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line > 326, in main tb.start() File > "/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line > 116, in start top_block_start_unlocked(self._impl, > max_noutput_items)RuntimeError: RfnocError: ResolveError: Could not resolve > properties.* > > > *--------------------------------------------------------------------------------------------------------------------------* > > Am I doing anything wrong in the yml script because the connection seems > correct in the uhd_usrp_probe command. On further searching I found that > SPP i.e. sample per packet must be the same for all the blocks. Tried doing > it in gnu radio by assigning the args option with f"spp={fft_size}". Is > this correct? It gives no change in error howver I get additional warning > as > > [WARNING] [0/FFT#0] set_properties() cannot set property `spp': No such > property. > [WARNING] [0/DDC#0] set_properties() cannot set property `spp': No such > property. > > > Please help me to solve these errors. > > -- > Regards, > *Nidhi Panda* > > *Cyronics Innovation Labs Pvt Ltd* > #11, Electronics Co-op Estate > Satara Road, Pune - 411009 > > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to usrp-users-leave@lists.ettus.com >
NP
Nidhi Panda
Mon, Nov 4, 2024 7:11 AM

Thank you for your response, but as I have mentioned I  already tried to
set SPP to match FFT_size for Rx_radio. I also tried to set spp with py
script.  It shows the same error as GNu radio which is:

[ERROR] [RxStreamer#0] Cannot resolve spp! Must be a multiple of 512 but
max value is 256Traceback (most recent call last):  File "FFT_test.py",
line 47, in <module>    fft.set_length(fft_length)RuntimeError: ValueError:
Samples per packet is incompatible with atomic item size!

I have attached my py script for your reference.* Is there any reference
code (GNU radio or python or CPP) which works with FFT size = 1024/2048? *Is
it even possible to get this FFT length (1024 and 2048 ) with USRP x300?
Also, I have only twin RX in my design so no TX.

Another thing I noticed is if I set fft|_length before committing the
graph, the max spp value is *364 *whereas after commit if I set fft_length
the max SPP size is 256. Can anyone please explain what is the reason for
this.

On Wed, Oct 23, 2024 at 6:59 PM Wade Fife wade.fife@ettus.com wrote:

With this FFT block, you need to set the SPP to match the FFT size for it
to work correctly. I'm not very familiar with GNU Radio but I think there
is an SPP parameter on the RX radio. I don't know how to set it for TX.

Wade

On Wed, Oct 23, 2024 at 5:45 AM Nidhi Panda nidhi.panda@cyronics.com
wrote:

Hello,

I am having USRP X300 device with following tool versions:

Vivado 2021.1 - AR76780n,
GNU radio version - v3.11.0.0git-820-g2adbd4ea
UHD version - UHD_4.7.0.0-84-gbdada1ed

I have added FFT and Spliter RFNoC blocks in my bit file. The
"uhd_usrp_probe" command shows correct connection in the blocks.

| | RFNoC blocks on this device:
| |
| | * 0/DDC#0
| | * 0/FFT#0
| | * 0/Radio#0
| | * 0/Replay#0
| | * 0/SplitStream#0
| _____________________________________________________
| /
| | Static connections on this device:

| | * 0/Radio#0:0==>0/DDC#0:0
| | * 0/Radio#0:1==>0/DDC#0:1
| | * 0/DDC#0:1==>0/SEP#0:0
| | * 0/DDC#0:0==>0/SplitStream#0:0
| | * 0/SplitStream#0:1==>0/FFT#0:0
| | * 0/SplitStream#0:0==>0/SEP#2:0
| | * 0/FFT#0:0==>0/SEP#1:0
| | * 0/SEP#3:0==>0/Replay#0:0
| | * 0/Replay#0:0==>0/SEP#3:0
| | * 0/SEP#4:0==>0/Replay#0:1
| | * 0/Replay#0:1==>0/SEP#4:0

However, on running example code available on GNURADIO
"rfnoc_split_stream.grc". I get following error:

1. When FFT size = 1024 (as in the example given in gnu radio)

--------------------------------------------------------------------------------------------------------------------------

[ERROR] [RxStreamer#0] Cannot resolve spp! Must be a multiple of 1024
but max value is 364Traceback (most recent call last):  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
347, in <module>    main()  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
326, in main    tb.start()  File
"/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line
116, in start    top_block_start_unlocked(self._impl,
max_noutput_items)RuntimeError: ValueError: Samples per packet is
incompatible with atomic item size!

--------------------------------------------------------------------------------------------------------------------------
How to know what is atomic size and how can I set it. On searching for
this error I came across following link:

https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74
https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74

This says rx stream is having a bug and AIS is in unit bytes, and spp in
unit items. It was a response of two years back with the uhd version
v4.3.0.0-rc1
https://github.com/EttusResearch/uhd/releases/tag/v4.3.0.0-rc1. Does
this explanation still hold? What is the max FFT size I can use? I want to
use 2048, what changes need to be done for it.

1. When FFT size = 256

--------------------------------------------------------------------------------------------------------------------------

[ERROR] [RFNOC::GRAPH::DETAIL] The following properties could not be
resolved:[ERROR] [RFNOC::GRAPH::DETAIL] Dirty: RxStreamer#1[INPUT_EDGE:0
atomic_item_size]Traceback (most recent call last):  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
347, in <module>    main()  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
326, in main    tb.start()  File
"/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line
116, in start    top_block_start_unlocked(self._impl,
max_noutput_items)RuntimeError: RfnocError: ResolveError: Could not resolve
properties.

--------------------------------------------------------------------------------------------------------------------------

Am I doing anything wrong in the yml script because the connection seems
correct in the uhd_usrp_probe command. On further searching I found that
SPP i.e. sample per packet must be the same for all the blocks. Tried doing
it in gnu radio by assigning the args option with f"spp={fft_size}". Is
this correct? It gives no change in error howver I get additional warning
as

[WARNING] [0/FFT#0] set_properties() cannot set property spp': No such property. [WARNING] [0/DDC#0] set_properties() cannot set property spp': No such
property.

Please help me to solve these errors.

--
Regards,
Nidhi Panda

Cyronics Innovation Labs Pvt Ltd
#11, Electronics Co-op Estate
Satara Road, Pune - 411009


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

--
Regards,
Nidhi Panda

Cyronics Innovation Labs Pvt Ltd
#11, Electronics Co-op Estate
Satara Road, Pune - 411009

Thank you for your response, but as I have mentioned I already tried to set SPP to match FFT_size for Rx_radio. I also tried to set spp with py script. It shows the same error as GNu radio which is: *[ERROR] [RxStreamer#0] Cannot resolve spp! Must be a multiple of 512 but max value is 256Traceback (most recent call last): File "FFT_test.py", line 47, in <module> fft.set_length(fft_length)RuntimeError: ValueError: Samples per packet is incompatible with atomic item size!* I have attached my py script for your reference.* Is there any reference code (GNU radio or python or CPP) which works with FFT size = 1024/2048? *Is it even possible to get this FFT length (1024 and 2048 ) with USRP x300? Also, I have only twin RX in my design so no TX. Another thing I noticed is if I set fft|_length before committing the graph, the max spp value is *364 *whereas after commit if I set fft_length the max SPP size is *256*. Can anyone please explain what is the reason for this. On Wed, Oct 23, 2024 at 6:59 PM Wade Fife <wade.fife@ettus.com> wrote: > With this FFT block, you need to set the SPP to match the FFT size for it > to work correctly. I'm not very familiar with GNU Radio but I think there > is an SPP parameter on the RX radio. I don't know how to set it for TX. > > Wade > > > On Wed, Oct 23, 2024 at 5:45 AM Nidhi Panda <nidhi.panda@cyronics.com> > wrote: > >> Hello, >> >> I am having USRP X300 device with following tool versions: >> >> Vivado 2021.1 - AR76780n, >> GNU radio version - v3.11.0.0git-820-g2adbd4ea >> UHD version - UHD_4.7.0.0-84-gbdada1ed >> >> I have added FFT and Spliter RFNoC blocks in my bit file. The >> "uhd_usrp_probe" command shows correct connection in the blocks. >> >> | | RFNoC blocks on this device: >> | | >> | | * 0/DDC#0 >> | | * 0/FFT#0 >> | | * 0/Radio#0 >> | | * 0/Replay#0 >> | | * 0/SplitStream#0 >> | _____________________________________________________ >> | / >> | | Static connections on this device: >> >> | | * 0/Radio#0:0==>0/DDC#0:0 >> | | * 0/Radio#0:1==>0/DDC#0:1 >> | | * 0/DDC#0:1==>0/SEP#0:0 >> | | * 0/DDC#0:0==>0/SplitStream#0:0 >> | | * 0/SplitStream#0:1==>0/FFT#0:0 >> | | * 0/SplitStream#0:0==>0/SEP#2:0 >> | | * 0/FFT#0:0==>0/SEP#1:0 >> | | * 0/SEP#3:0==>0/Replay#0:0 >> | | * 0/Replay#0:0==>0/SEP#3:0 >> | | * 0/SEP#4:0==>0/Replay#0:1 >> | | * 0/Replay#0:1==>0/SEP#4:0 >> >> However, on running example code available on GNURADIO >> *"rfnoc_split_stream.grc"*. I get following error: >> >> *1. When FFT size = 1024 (as in the example given in gnu radio)* >> >> >> >> *--------------------------------------------------------------------------------------------------------------------------* >> >> >> >> >> >> >> >> >> >> *[ERROR] [RxStreamer#0] Cannot resolve spp! Must be a multiple of 1024 >> but max value is 364Traceback (most recent call last): File >> "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line >> 347, in <module> main() File >> "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line >> 326, in main tb.start() File >> "/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line >> 116, in start top_block_start_unlocked(self._impl, >> max_noutput_items)RuntimeError: ValueError: Samples per packet is >> incompatible with atomic item size!* >> >> >> *--------------------------------------------------------------------------------------------------------------------------* >> How to know what is atomic size and how can I set it. On searching for >> this error I came across following link: >> >> *https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74 >> <https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74>* >> >> This says rx stream is having a bug and AIS is in unit bytes, and spp in >> unit items. It was a response of two years back with the uhd version >> v4.3.0.0-rc1 >> <https://github.com/EttusResearch/uhd/releases/tag/v4.3.0.0-rc1>. Does >> this explanation still hold? What is the max FFT size I can use? I want to >> use *2048*, what changes need to be done for it. >> >> *1. When FFT size = 256* >> >> >> *--------------------------------------------------------------------------------------------------------------------------* >> >> >> >> >> >> >> >> >> >> *[ERROR] [RFNOC::GRAPH::DETAIL] The following properties could not be >> resolved:[ERROR] [RFNOC::GRAPH::DETAIL] Dirty: RxStreamer#1[INPUT_EDGE:0 >> atomic_item_size]Traceback (most recent call last): File >> "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line >> 347, in <module> main() File >> "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line >> 326, in main tb.start() File >> "/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line >> 116, in start top_block_start_unlocked(self._impl, >> max_noutput_items)RuntimeError: RfnocError: ResolveError: Could not resolve >> properties.* >> >> >> *--------------------------------------------------------------------------------------------------------------------------* >> >> Am I doing anything wrong in the yml script because the connection seems >> correct in the uhd_usrp_probe command. On further searching I found that >> SPP i.e. sample per packet must be the same for all the blocks. Tried doing >> it in gnu radio by assigning the args option with f"spp={fft_size}". Is >> this correct? It gives no change in error howver I get additional warning >> as >> >> [WARNING] [0/FFT#0] set_properties() cannot set property `spp': No such >> property. >> [WARNING] [0/DDC#0] set_properties() cannot set property `spp': No such >> property. >> >> >> Please help me to solve these errors. >> >> -- >> Regards, >> *Nidhi Panda* >> >> *Cyronics Innovation Labs Pvt Ltd* >> #11, Electronics Co-op Estate >> Satara Road, Pune - 411009 >> >> _______________________________________________ >> USRP-users mailing list -- usrp-users@lists.ettus.com >> To unsubscribe send an email to usrp-users-leave@lists.ettus.com >> > -- Regards, *Nidhi Panda* *Cyronics Innovation Labs Pvt Ltd* #11, Electronics Co-op Estate Satara Road, Pune - 411009
NP
Nidhi Panda
Mon, Nov 4, 2024 9:23 AM

Just to update on my previous question. I also tried to update
"rfnoc_rx_streamer.cpp" by changing  function spp4 * in the*
"add_property_resolver function"* as follows:

  • add_property_resolver({atomic_item_size_in, mtu_in, type_in},
    {},        &ais = *atomic_item_size_in, &type = *type_in, chan, this {
    const auto UHD_UNUSED(log_chan) = chan;
    RFNOC_LOG_TRACE("Calling resolver for `atomic_item_size'@" << chan);
    if (ais.is_valid()) {                const size_t bpi          =
    convert::get_bytes_per_item(type.get());                const size_t spp
    = this->rx_streamer_impl::get_max_num_samps();                const
    size_t spp_multiple = uhd::math::lcm<size_t>(ais.get(), bpi) / bpi;
    if (spp4 < spp_multiple) {
    RFNOC_LOG_ERROR("Cannot resolve spp! Must be a multiple of "
    << spp_multiple << " but max value is " << spp);
    throw uhd::value_error(                        "Samples per
    packet is incompatible with atomic item size!");                }
    const auto misalignment = spp % spp_multiple;                if
    (misalignment > 0) {                    RFNOC_LOG_TRACE("Reducing spp by "
    << misalignment << " to align with atomic
    item size");
    this->rx_streamer_impl::set_max_num_samps(spp - misalignment);
    }            }        });

And recompiler uhd with following commands:

cd uhd/host

  • cd build*

cmake ..

make

  • make test # Optional: run tests*

  • sudo make install *

However, this also resulted in the same error.

On Mon, Nov 4, 2024 at 12:41 PM Nidhi Panda nidhi.panda@cyronics.com
wrote:

Thank you for your response, but as I have mentioned I  already tried to
set SPP to match FFT_size for Rx_radio. I also tried to set spp with py
script.  It shows the same error as GNu radio which is:

[ERROR] [RxStreamer#0] Cannot resolve spp! Must be a multiple of 512 but
max value is 256Traceback (most recent call last):  File "FFT_test.py",
line 47, in <module>    fft.set_length(fft_length)RuntimeError: ValueError:
Samples per packet is incompatible with atomic item size!

I have attached my py script for your reference.* Is there any reference
code (GNU radio or python or CPP) which works with FFT size = 1024/2048? *Is
it even possible to get this FFT length (1024 and 2048 ) with USRP x300?
Also, I have only twin RX in my design so no TX.

Another thing I noticed is if I set fft|_length before committing the
graph, the max spp value is *364 *whereas after commit if I set
fft_length the max SPP size is 256. Can anyone please explain what is
the reason for this.

On Wed, Oct 23, 2024 at 6:59 PM Wade Fife wade.fife@ettus.com wrote:

With this FFT block, you need to set the SPP to match the FFT size for it
to work correctly. I'm not very familiar with GNU Radio but I think there
is an SPP parameter on the RX radio. I don't know how to set it for TX.

Wade

On Wed, Oct 23, 2024 at 5:45 AM Nidhi Panda nidhi.panda@cyronics.com
wrote:

Hello,

I am having USRP X300 device with following tool versions:

Vivado 2021.1 - AR76780n,
GNU radio version - v3.11.0.0git-820-g2adbd4ea
UHD version - UHD_4.7.0.0-84-gbdada1ed

I have added FFT and Spliter RFNoC blocks in my bit file. The
"uhd_usrp_probe" command shows correct connection in the blocks.

| | RFNoC blocks on this device:
| |
| | * 0/DDC#0
| | * 0/FFT#0
| | * 0/Radio#0
| | * 0/Replay#0
| | * 0/SplitStream#0
| _____________________________________________________
| /
| | Static connections on this device:

| | * 0/Radio#0:0==>0/DDC#0:0
| | * 0/Radio#0:1==>0/DDC#0:1
| | * 0/DDC#0:1==>0/SEP#0:0
| | * 0/DDC#0:0==>0/SplitStream#0:0
| | * 0/SplitStream#0:1==>0/FFT#0:0
| | * 0/SplitStream#0:0==>0/SEP#2:0
| | * 0/FFT#0:0==>0/SEP#1:0
| | * 0/SEP#3:0==>0/Replay#0:0
| | * 0/Replay#0:0==>0/SEP#3:0
| | * 0/SEP#4:0==>0/Replay#0:1
| | * 0/Replay#0:1==>0/SEP#4:0

However, on running example code available on GNURADIO
"rfnoc_split_stream.grc". I get following error:

1. When FFT size = 1024 (as in the example given in gnu radio)

--------------------------------------------------------------------------------------------------------------------------

[ERROR] [RxStreamer#0] Cannot resolve spp! Must be a multiple of 1024
but max value is 364Traceback (most recent call last):  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
347, in <module>    main()  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
326, in main    tb.start()  File
"/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line
116, in start    top_block_start_unlocked(self._impl,
max_noutput_items)RuntimeError: ValueError: Samples per packet is
incompatible with atomic item size!

--------------------------------------------------------------------------------------------------------------------------
How to know what is atomic size and how can I set it. On searching for
this error I came across following link:

https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74
https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74

This says rx stream is having a bug and AIS is in unit bytes, and spp
in unit items. It was a response of two years back with the uhd version
v4.3.0.0-rc1
https://github.com/EttusResearch/uhd/releases/tag/v4.3.0.0-rc1. Does
this explanation still hold? What is the max FFT size I can use? I want to
use 2048, what changes need to be done for it.

1. When FFT size = 256

--------------------------------------------------------------------------------------------------------------------------

[ERROR] [RFNOC::GRAPH::DETAIL] The following properties could not be
resolved:[ERROR] [RFNOC::GRAPH::DETAIL] Dirty: RxStreamer#1[INPUT_EDGE:0
atomic_item_size]Traceback (most recent call last):  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
347, in <module>    main()  File
"/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line
326, in main    tb.start()  File
"/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line
116, in start    top_block_start_unlocked(self._impl,
max_noutput_items)RuntimeError: RfnocError: ResolveError: Could not resolve
properties.

--------------------------------------------------------------------------------------------------------------------------

Am I doing anything wrong in the yml script because the connection seems
correct in the uhd_usrp_probe command. On further searching I found that
SPP i.e. sample per packet must be the same for all the blocks. Tried doing
it in gnu radio by assigning the args option with f"spp={fft_size}". Is
this correct? It gives no change in error howver I get additional warning
as

[WARNING] [0/FFT#0] set_properties() cannot set property spp': No such property. [WARNING] [0/DDC#0] set_properties() cannot set property spp': No such
property.

Please help me to solve these errors.

--
Regards,
Nidhi Panda

Cyronics Innovation Labs Pvt Ltd
#11, Electronics Co-op Estate
Satara Road, Pune - 411009


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

--
Regards,
Nidhi Panda

Cyronics Innovation Labs Pvt Ltd
#11, Electronics Co-op Estate
Satara Road, Pune - 411009

--
Regards,
Nidhi Panda

Cyronics Innovation Labs Pvt Ltd
#11, Electronics Co-op Estate
Satara Road, Pune - 411009

Just to update on my previous question. I also tried to update "rfnoc_rx_streamer.cpp" by changing function *spp*4 * in the* "add_property_resolver function"* as follows: * add_property_resolver({atomic_item_size_in, mtu_in, type_in}, {}, [&ais = *atomic_item_size_in, &type = *type_in, chan, this]() { const auto UHD_UNUSED(log_chan) = chan; RFNOC_LOG_TRACE("Calling resolver for `atomic_item_size'@" << chan); if (ais.is_valid()) { const size_t bpi = convert::get_bytes_per_item(type.get()); const size_t spp = this->rx_streamer_impl::get_max_num_samps(); const size_t spp_multiple = uhd::math::lcm<size_t>(ais.get(), bpi) / bpi; if (spp*4 < spp_multiple) { RFNOC_LOG_ERROR("Cannot resolve spp! Must be a multiple of " << spp_multiple << " but max value is " << spp); throw uhd::value_error( "Samples per packet is incompatible with atomic item size!"); } const auto misalignment = spp % spp_multiple; if (misalignment > 0) { RFNOC_LOG_TRACE("Reducing spp by " << misalignment << " to align with atomic item size"); this->rx_streamer_impl::set_max_num_samps(spp - misalignment); } } });* And recompiler uhd with following commands: *cd uhd/host* * cd build* *cmake ..* *make* * make test # Optional: run tests* * sudo make install * However, this also resulted in the same error. On Mon, Nov 4, 2024 at 12:41 PM Nidhi Panda <nidhi.panda@cyronics.com> wrote: > Thank you for your response, but as I have mentioned I already tried to > set SPP to match FFT_size for Rx_radio. I also tried to set spp with py > script. It shows the same error as GNu radio which is: > > > > > > *[ERROR] [RxStreamer#0] Cannot resolve spp! Must be a multiple of 512 but > max value is 256Traceback (most recent call last): File "FFT_test.py", > line 47, in <module> fft.set_length(fft_length)RuntimeError: ValueError: > Samples per packet is incompatible with atomic item size!* > > I have attached my py script for your reference.* Is there any reference > code (GNU radio or python or CPP) which works with FFT size = 1024/2048? *Is > it even possible to get this FFT length (1024 and 2048 ) with USRP x300? > Also, I have only twin RX in my design so no TX. > > Another thing I noticed is if I set fft|_length before committing the > graph, the max spp value is *364 *whereas after commit if I set > fft_length the max SPP size is *256*. Can anyone please explain what is > the reason for this. > > > On Wed, Oct 23, 2024 at 6:59 PM Wade Fife <wade.fife@ettus.com> wrote: > >> With this FFT block, you need to set the SPP to match the FFT size for it >> to work correctly. I'm not very familiar with GNU Radio but I think there >> is an SPP parameter on the RX radio. I don't know how to set it for TX. >> >> Wade >> >> >> On Wed, Oct 23, 2024 at 5:45 AM Nidhi Panda <nidhi.panda@cyronics.com> >> wrote: >> >>> Hello, >>> >>> I am having USRP X300 device with following tool versions: >>> >>> Vivado 2021.1 - AR76780n, >>> GNU radio version - v3.11.0.0git-820-g2adbd4ea >>> UHD version - UHD_4.7.0.0-84-gbdada1ed >>> >>> I have added FFT and Spliter RFNoC blocks in my bit file. The >>> "uhd_usrp_probe" command shows correct connection in the blocks. >>> >>> | | RFNoC blocks on this device: >>> | | >>> | | * 0/DDC#0 >>> | | * 0/FFT#0 >>> | | * 0/Radio#0 >>> | | * 0/Replay#0 >>> | | * 0/SplitStream#0 >>> | _____________________________________________________ >>> | / >>> | | Static connections on this device: >>> >>> | | * 0/Radio#0:0==>0/DDC#0:0 >>> | | * 0/Radio#0:1==>0/DDC#0:1 >>> | | * 0/DDC#0:1==>0/SEP#0:0 >>> | | * 0/DDC#0:0==>0/SplitStream#0:0 >>> | | * 0/SplitStream#0:1==>0/FFT#0:0 >>> | | * 0/SplitStream#0:0==>0/SEP#2:0 >>> | | * 0/FFT#0:0==>0/SEP#1:0 >>> | | * 0/SEP#3:0==>0/Replay#0:0 >>> | | * 0/Replay#0:0==>0/SEP#3:0 >>> | | * 0/SEP#4:0==>0/Replay#0:1 >>> | | * 0/Replay#0:1==>0/SEP#4:0 >>> >>> However, on running example code available on GNURADIO >>> *"rfnoc_split_stream.grc"*. I get following error: >>> >>> *1. When FFT size = 1024 (as in the example given in gnu radio)* >>> >>> >>> >>> *--------------------------------------------------------------------------------------------------------------------------* >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> *[ERROR] [RxStreamer#0] Cannot resolve spp! Must be a multiple of 1024 >>> but max value is 364Traceback (most recent call last): File >>> "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line >>> 347, in <module> main() File >>> "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line >>> 326, in main tb.start() File >>> "/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line >>> 116, in start top_block_start_unlocked(self._impl, >>> max_noutput_items)RuntimeError: ValueError: Samples per packet is >>> incompatible with atomic item size!* >>> >>> >>> *--------------------------------------------------------------------------------------------------------------------------* >>> How to know what is atomic size and how can I set it. On searching for >>> this error I came across following link: >>> >>> *https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74 >>> <https://github.com/EttusResearch/uhd/commit/f163af41a47ab4c702ffbdb10352cf875d604d74>* >>> >>> This says rx stream is having a bug and AIS is in unit bytes, and spp >>> in unit items. It was a response of two years back with the uhd version >>> v4.3.0.0-rc1 >>> <https://github.com/EttusResearch/uhd/releases/tag/v4.3.0.0-rc1>. Does >>> this explanation still hold? What is the max FFT size I can use? I want to >>> use *2048*, what changes need to be done for it. >>> >>> *1. When FFT size = 256* >>> >>> >>> *--------------------------------------------------------------------------------------------------------------------------* >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> *[ERROR] [RFNOC::GRAPH::DETAIL] The following properties could not be >>> resolved:[ERROR] [RFNOC::GRAPH::DETAIL] Dirty: RxStreamer#1[INPUT_EDGE:0 >>> atomic_item_size]Traceback (most recent call last): File >>> "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line >>> 347, in <module> main() File >>> "/home/quasar/gnuradio/gr-uhd/examples/grc/rfnoc_split_stream.py", line >>> 326, in main tb.start() File >>> "/usr/local/lib/python3.8/dist-packages/gnuradio/gr/top_block.py", line >>> 116, in start top_block_start_unlocked(self._impl, >>> max_noutput_items)RuntimeError: RfnocError: ResolveError: Could not resolve >>> properties.* >>> >>> >>> *--------------------------------------------------------------------------------------------------------------------------* >>> >>> Am I doing anything wrong in the yml script because the connection seems >>> correct in the uhd_usrp_probe command. On further searching I found that >>> SPP i.e. sample per packet must be the same for all the blocks. Tried doing >>> it in gnu radio by assigning the args option with f"spp={fft_size}". Is >>> this correct? It gives no change in error howver I get additional warning >>> as >>> >>> [WARNING] [0/FFT#0] set_properties() cannot set property `spp': No such >>> property. >>> [WARNING] [0/DDC#0] set_properties() cannot set property `spp': No such >>> property. >>> >>> >>> Please help me to solve these errors. >>> >>> -- >>> Regards, >>> *Nidhi Panda* >>> >>> *Cyronics Innovation Labs Pvt Ltd* >>> #11, Electronics Co-op Estate >>> Satara Road, Pune - 411009 >>> >>> _______________________________________________ >>> USRP-users mailing list -- usrp-users@lists.ettus.com >>> To unsubscribe send an email to usrp-users-leave@lists.ettus.com >>> >> > > -- > Regards, > *Nidhi Panda* > > *Cyronics Innovation Labs Pvt Ltd* > #11, Electronics Co-op Estate > Satara Road, Pune - 411009 > > -- Regards, *Nidhi Panda* *Cyronics Innovation Labs Pvt Ltd* #11, Electronics Co-op Estate Satara Road, Pune - 411009