Coder Social home page Coder Social logo

gr-ettus's Introduction

gr-ettus: Experimental UHD and USRP features for GNU Radio

This is an out-of-tree module with experimental and other features extending gr-uhd.

For regular multi_usrp operations, this OOT module is not required.

RFNoC

This branch (maint-3.8-uhd4.0) is required to use advanced RFNoC features from UHD 4.x together with GNU Radio 3.8. Refer to the following table to identify the correct software packages for other versions of GNU Radio and/or UHD.

GNU Radio Version UHD Version Required Branch
3.8.x 4.x maint-3.8-uhd4.0 (this branch)
3.10.x 4.x gr-ettus not required -- use gr-uhd directly!
3.8.x 3.x maint-3.8
3.7.x 3.x maint-3.7

Notes:

  • GNU Radio 3.9 is no longer supported and therefore has no RFNoC support
  • GNU Radio 3.7 does not have UHD 4 support, and there are no plans to support it.

Dependencies

This OOT requires GNU Radio version 3.8 with gr-uhd enabled. It also requires UHD 4.0 (or later) to be installed.

Support for the Qt-based Fosphor display block requires that Qt5 be installed and must be explicitly enabled in order to be built. To enable this support, set the ENABLE_QT flag to ON when running cmake.

License

All code in this repository is licensed under the GPLv3 (see file COPYING). Unless stated otherwise, copyright belongs to Ettus Research.

In some cases, copyright may already have been transferred to the FSF for blocks that are planned for inclusion in gr-uhd.

gr-ettus's People

Contributors

777arc avatar atrnati avatar bpadalino avatar darek-kawamoto avatar dkozel avatar ejk43 avatar gmeyerho avatar joergho avatar jpendlum avatar kejor avatar kieranlea avatar lorinmetzger avatar marcusmueller avatar mbr0wn avatar michaelhildner avatar michaelld avatar mungerni avatar primercuervo avatar rijulg avatar samprager avatar sleutn3r avatar smunaut avatar sugandhagupta avatar trabucayre avatar zlika avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gr-ettus's Issues

CMake doesn't check for ruamel.yaml Python Module

CMake doesn't check if the ruamel.yaml Python module is installed. UHD checks for it in the following way:

set(RUAMEL.YAML_MIN_VERSION "0.15")
PYTHON_CHECK_MODULE(
    "ruamel.yaml ${RUAMEL.YAML_MIN_VERSION} or greater"
    "ruamel.yaml" "LooseVersion(ruamel.yaml.__version__) >= LooseVersion('${RUAMEL.YAML_MIN_VERSION}')"
    HAVE_PYTHON_MODULE_YAML
)

Where PYTHON_CHECK_MODULE comes from UHDPython.cmake which isn't installed with UHD, but comes from UHD.

In some test files (python_api_test.py and uhd_test_base.py), UHD does the following:

try:
    from ruamel import yaml
except:
    import yaml

Is the ruamel.yaml Python module really required, or is it just nice to have? Can the try/except import work for this dependency? If not, should UHDPython.cmake be installed by UHD, or should the macro just come over to this repository?

cmake unable to find module "mpir"

I am having some trouble with cmake, see the log below:

cmake -DENABLE_QT=True ../
-- Build type not specified: defaulting to release.
-- Checking for module 'mpir >= 3.0'
-- No package 'mpir' found
-- Could NOT find MPIR (missing: MPIRXX_LIBRARY MPIR_LIBRARY MPIR_INCLUDE_DIR)
-- User set python executable /usr/bin/python3
-- Extracting version information from git describe...
CMake Error at /usr/local/lib/cmake/gnuradio/FindUHD.cmake:97 (message):
The found UHD version (3.15.0.HEAD-0-g4e06022c) is not compatible with the
version required (4.0).
Call Stack (most recent call first):
CMakeLists.txt:98 (find_package)

Error: rfnocmodtool always asks for src newmod directory in a Custom Prefix Installation (without pybombs) Environment

I have installed gr-ettus, gnuradio, uhd in a custom prefix
~/workspace/installs/stable/

I was trying to build a custom RFNoC module using rfnocmodtool. So when I did I am getting the following error :

ya-seen@sdr-linux-machine:~$ source workspace/installs/stable/setup.env 
ya-seen@sdr-linux-machine:~$ rfnocmodtool newmod MyFirstnoc
Could not find rfnoc-newmod source dir. 
Please run: 

	 $ rfnocmodtool newmod [NAME] --srcdir {path/to/rfnoc-newmod/}

Specifying the path where the newmod template is located.

even after supplying a --srcdir param I was getting the same error

 ya-seen@sdr-linux-machine:~$ rfnocmodtool newmod MyFirstnoc --srcdir /workspace/installs/stable/share/gr-ettus/rfnoc_modtool/rfnoc-newmod
Could not find rfnoc-newmod source dir. 
Please run: 

	 $ rfnocmodtool newmod [NAME] --srcdir {path/to/rfnoc-newmod/}

Specifying the path where the newmod template is located.

rfnoc_image_builder cannot convert gnuradio companion files

Hi,

I am not sure, if this belongs here. Feel free to close this issue if this is the wrong place for it.

the rfnoc_image_builder cannot convert gnuradio-companion graphs at the moment.

rfnoc_image_builder -r example/rfnoc_radio_ddc.grc -b /usr/share/gnuradio/grc/blocks

failes with

[INF] Converting GNU Radio Companion file to image builder format
Traceback (most recent call last):
  File "/usr/bin/rfnoc_image_builder", line 212, in <module>
    sys.exit(main())
  File "/usr/bin/rfnoc_image_builder", line 190, in main
    config, source, device, target = image_config(args)
  File "/usr/bin/rfnoc_image_builder", line 120, in image_config
    config = image_builder.convert_to_image_config(config, args.grc_blocks)
  File "/usr/lib/python3.9/site-packages/uhd/imgbuilder/image_builder.py", line 498, in convert_to_image_config
    seps = {item["name"]: item for item in grc["blocks"] if item["parameters"]["type"] == 'sep'}
  File "/usr/lib/python3.9/site-packages/uhd/imgbuilder/image_builder.py", line 498, in <dictcomp>
    seps = {item["name"]: item for item in grc["blocks"] if item["parameters"]["type"] == 'sep'}
KeyError: 'type'

Tool versions

  • uhd_config_info --version: UHD 4.0.0.0-0-unknown
  • gnuradio: GNU Radio Companion v3.8.0.0-953-g6de23f43
  • gr-ettus: Commit 1038c4c

Gr_ettus cmake error

Hi,
I'm trying to install gr_ettus on my Ubuntu 18.04, I have already completed the installation of UHD 4.0 and GNURadio 3.9.
When I tried to cmake ../ at the build folder of fr_ettus, the result as below:

_pc@pc-All-Series:~/rfnoc/src/gr-ettus/build-host$ cmake ..
-- Checking for module 'gmp'
-- No package 'gmp' found
-- Checking for module 'mpir >= 3.0'
-- No package 'mpir' found
-- Could NOT find MPIR (missing: MPIRXX_LIBRARY MPIR_INCLUDE_DIR)
-- Boost version: 1.65.1
-- Found the following Boost libraries:
-- date_time
-- program_options
-- filesystem
-- system
-- regex
-- thread
-- chrono
-- atomic
-- User set python executable /usr/bin/python3.6
-- Found PythonInterp: /usr/bin/python3.6 (found version "3.6.9")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.6m.so (found suitable exact version "3.6.9")
-- Extracting version information from git describe...
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.6m.so (found suitable version "3.6.9", minimum required is "2")
-- Using install prefix: /usr/local
-- Building for version: 3.8.0.0 / 3.8.0
-- No C++ unit tests... skipping
CMake Error at swig/CMakeLists.txt:37 (include):
include could not find load file:

GrSwig

CMake Error at swig/CMakeLists.txt:58 (GR_SWIG_MAKE):
Unknown CMake command "GR_SWIG_MAKE".

-- Configuring incomplete, errors occurred!
See also "/home/pc/rfnoc/src/gr-ettus/build-host/CMakeFiles/CMakeOutput.log".
See also "/home/pc/rfnoc/src/gr-ettus/build-host/CMakeFiles/CMakeError.log"._

Could anyone help me with my problem, thank you so much!

CMakeLists.txt generated by rfnocmodtool points to non-existent fpga-src directory

Line 250 of gr-ettus/python/rfnoc_modtool/rfnoc-newmod/CMakeLists.txt has a bug:

COMMAND source ${FPGA}/usrp3/top/e300/setupenv.sh && make -C rfnoc/testbenches/${name} ${SIM} FPGA_TOP_DIR=${FPGA}

e300 is now e3xx in the fpga repo, so this step causes make noc_block_[name_of_your_block]_tb to fail.

Also might be worth changing rfnoc/testbenches/${name} to an absolute path-- ${CMAKE_SOURCE_DIR}/rfnoc/testbenches/${name}

GRC RFNoC Digital Upconverter Block Python Code Generation

GRC does not generate valid Python code for the RFNoC Digital Upconverter Block.
GRC adds an additional argument (5 instead of 4) when instantiating the ettus.rfnoc_duc block.
The method set_freq is run before set_input_rate in the generated Python code. When this is done, Python complains that it is no longer possible to set the input_rate. The method set_freq also does not appear to change the frequency shift of the ettus.rfnoc_duc.

RuntimeError: Cannot find a block for ID: SchmidlCox

I am trying to use RFNoC:OFDM sync block, qith the fpga image usrp_x310_fpga_RFNOC_XG.bit downloaded using the python script.

I have the ettus X310.
The problem is that when I run the grc, I get the following error:
RuntimeError: Cannot find a block for ID: SchmidlCox

Are the OFDM RFNoC blocks included in the fpga image?
If so, how can I solve my problem?

Thanks

Naming restrictions of RFNoC blocks generated using rfnocmodtool

Hello,

is there a particular reason why only alphanumerical symbols are allowed in the names of NoC blocks? In particular, is there any issue having underscores or hyphens in the name? rfnocmodtool would reject such names, although "factory" NoC blocks often have underscores in their names.

    if not re.match('^([a-zA-Z]+[0-9a-zA-Z]*)$', self._info['blockname']):
        raise ModToolException('Invalid block name.')

stream args: can't assign a specific SFP port using stream args in the rx streamer block

i'm building a system with an X310 as the frontend receiver. i'd like to be able to use RFNoC blocks to split the stream from RX2 (RFA) into a high-rate(200Msps) stream and a decimated low-rate(5Msps) stream, sending high rate over SFP+ Port 0 and low-rate over SFP Port 1. Is that possible using stream args (channel=0,1 maybe?) in the rx streamer block? I can't seem to get any valid stream args to take.
I'm working on building the splitstream block into my image, so for now I have been able to get RFA-RX2 and RFB-RX2 streams into gnuradio using 2 rx streamers (flowgraph attached), but according to tcpdump/iftop the streams are muxed onto one interface?

can you help?
rfnoc_graph

i have also posted a question on the usrp-users message board, but not gotten a response yet.
https://lists.ettus.com/empathy/thread/MKEWJTRONAY7RXUMXBMYM2W2ZV3EGEIQ

USRP-X310 DDR3 1GB memory

I want to know how can I use the 1GB DDR3 memory in USRP-X310.

Should I search for the corresponding FPGA module in the fpga/x310 folder of UHD or gr_ettus folder?

I am using UHD3.15 and GNURadio3.7

Impossible to have make() parameters w/ default values before non-defaulting params

https://github.com/EttusResearch/gr-ettus/blob/radio-redo/python/rfnoc_modtool/templates.py#L388 :

…
      static sptr make(
#if $blocktype == 'rfnoc'
#if $arglist
        $arglist,
#end if
        const gr::ettus::device3::sptr &dev,
…

this should have been stripped of default arguments, too, like elsewhere in the templates. But since make is the public interface to the block, not having default arguments here does make these useless (aside from putting them in as default values in the GRC .xml).

Last added blocks (FIR filter, SigGen, Window) crash gnuradio-companion

Hello,
I have the following configuration (all compiled from sources) :

  • GnuRadio 3.8.5
  • UHD 4.2.0.0
  • gr-ettus from latest commit (533babf)

When I try to add a RFNoC block under gnuradio-companion, all blocks are working ok except the latest added blocks: FIR Filter, SigGen, Window. When I try to add one of these blocks in a flowgraph, I have the following error, and the block does not appear:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/gnuradio/grc/gui/Application.py", line 410, in _handle_action
    flow_graph_update()
  File "/usr/local/lib/python3.9/dist-packages/gnuradio/grc/gui/Application.py", line 122, in flow_graph_update
    fg.update()
  File "/usr/local/lib/python3.9/dist-packages/gnuradio/grc/gui/canvas/flowgraph.py", line 205, in update
    self.create_labels()
  File "/usr/local/lib/python3.9/dist-packages/gnuradio/grc/gui/canvas/flowgraph.py", line 508, in create_labels
    element.create_labels(cr)
  File "/usr/local/lib/python3.9/dist-packages/gnuradio/grc/gui/canvas/block.py", line 169, in create_labels
    markups = [param.format_block_surface_markup()
  File "/usr/local/lib/python3.9/dist-packages/gnuradio/grc/gui/canvas/block.py", line 169, in <listcomp>
    markups = [param.format_block_surface_markup()
  File "/usr/local/lib/python3.9/dist-packages/gnuradio/grc/gui/canvas/param.py", line 173, in format_block_surface_markup
    self.pretty_print().replace('\n', ' '))
  File "/usr/local/lib/python3.9/dist-packages/gnuradio/grc/gui/canvas/param.py", line 121, in pretty_print
    return self.truncate(value)
  File "/usr/local/lib/python3.9/dist-packages/gnuradio/grc/gui/canvas/param.py", line 99, in truncate
    if len(string) > max_len:
TypeError: object of type 'int' has no len()
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/gnuradio/grc/gui/DrawingArea.py", line 220, in draw
    self._flow_graph.draw(cr)
  File "/usr/local/lib/python3.9/dist-packages/gnuradio/grc/gui/canvas/flowgraph.py", line 535, in draw
    draw_element(cr)
  File "/usr/local/lib/python3.9/dist-packages/gnuradio/grc/gui/canvas/block.py", line 261, in draw
    port.draw(cr)
  File "/usr/local/lib/python3.9/dist-packages/gnuradio/grc/gui/canvas/port.py", line 143, in draw
    cr.rectangle(*self._area)
TypeError: Context.rectangle() takes exactly 4 arguments (0 given)
(...)

Is there a known workaround?
Thanks.

with Gnuradio 3.8.1 and UHD_4.1.0.4-0 it has errors

when I want to install gr-ettus i faced with errors...
with Gnuradio 3.8.1 and UHD_4.1.0.4-0 it has errors
Ubuntu 20.04
any offer?

[ 64%] Swig source ettus_swig.i
Deprecated command line option: -modern. This option is now always on.
/home/sp/Documents/gr-ettus-1038c4ce5135a2803b53554fc4971fe3de747d9a/swig/ettus_swig.i:140: Error: Template 'set_property' undefined.
/home/sp/Documents/gr-ettus-1038c4ce5135a2803b53554fc4971fe3de747d9a/swig/ettus_swig.i:141: Error: Template 'set_property' undefined.
/home/sp/Documents/gr-ettus-1038c4ce5135a2803b53554fc4971fe3de747d9a/swig/ettus_swig.i:142: Error: Template 'set_property' undefined.
/home/sp/Documents/gr-ettus-1038c4ce5135a2803b53554fc4971fe3de747d9a/swig/ettus_swig.i:143: Error: Template 'set_property' undefined.
/home/sp/Documents/gr-ettus-1038c4ce5135a2803b53554fc4971fe3de747d9a/swig/ettus_swig.i:145: Error: Template 'get_property' undefined.
/home/sp/Documents/gr-ettus-1038c4ce5135a2803b53554fc4971fe3de747d9a/swig/ettus_swig.i:146: Error: Template 'get_property' undefined.
/home/sp/Documents/gr-ettus-1038c4ce5135a2803b53554fc4971fe3de747d9a/swig/ettus_swig.i:147: Error: Template 'get_property' undefined.
/home/sp/Documents/gr-ettus-1038c4ce5135a2803b53554fc4971fe3de747d9a/swig/ettus_swig.i:148: Error: Template 'get_property' undefined.
/usr/local/include/uhd/types/dict.hpp:145: Warning 503: Can't wrap 'operator std::map<std::string,std::string>' unless renamed to a valid identifier.
make[2]: *** [swig/CMakeFiles/ettus_swig_swig_compilation.dir/build.make:65: swig/CMakeFiles/ettus_swig.dir/ettus_swigPYTHON.stamp] Error 8
make[2]: *** Deleting file 'swig/CMakeFiles/ettus_swig.dir/ettus_swigPYTHON.stamp'
make[1]: *** [CMakeFiles/Makefile2:421: swig/CMakeFiles/ettus_swig_swig_compilation.dir/all] Error 2
make: *** [Makefile:141: all] Error 2

‘get_system_time’ is not a member of ‘uhd::time_spec_t’

When I compile the gr-ettus. An error occurs that ‘get_system_time’ is not a member of ‘uhd::time_spec_t’. It seems that UHD removed the get_system_time function from time_spec_t within the last few months. From gnuradio/gnuradio#1706

Here is the compile result.
[ 2%] Automatic MOC for target gnuradio-ettus
[ 4%] Built target doxygen_target
[ 4%] Built target pygen_apps_9a6dd
[ 8%] Built target _ettus_swig_doc_tag
[ 12%] Built target pygen_python_51c51
[ 19%] Built target pygen_python_rfnoc_modtool_262c4
[ 19%] Built target pygen_python_utils_0a234
[ 19%] Built target gnuradio-ettus_autogen
[ 23%] Built target ettus_swig_swig_doc
[ 27%] Built target _ettus_swig_swig_tag
Scanning dependencies of target gnuradio-ettus
[ 38%] Built target ettus_swig_swig_2d0df
[ 44%] Built target pygen_swig_b475a
[ 46%] Building CXX object lib/CMakeFiles/gnuradio-ettus.dir/device3.cc.o
[ 48%] Linking CXX shared library libgnuradio-ettus.so
[ 80%] Built target gnuradio-ettus
[ 82%] Automatic MOC for target test-ettus
[ 85%] Building CXX object swig/CMakeFiles/_ettus_swig.dir/ettus_swigPYTHON_wrap.cxx.o
[ 85%] Built target test-ettus_autogen
[ 87%] Linking CXX executable test-ettus
[ 93%] Built target test-ettus
/home/wangy0k/Downloads/gr-ettus/gr-ettus/build/swig/ettus_swigPYTHON_wrap.cxx: In function ‘PyObject* _wrap_time_spec_t_get_system_time(PyObject*, PyObject*)’:
/home/wangy0k/Downloads/gr-ettus/gr-ettus/build/swig/ettus_swigPYTHON_wrap.cxx:17777:16: error: ‘get_system_time’ is not a member of ‘uhd::time_spec_t’
result = uhd::time_spec_t::get_system_time();
^
swig/CMakeFiles/_ettus_swig.dir/build.make:70: recipe for target 'swig/CMakeFiles/_ettus_swig.dir/ettus_swigPYTHON_wrap.cxx.o' failed
make[2]: *** [swig/CMakeFiles/_ettus_swig.dir/ettus_swigPYTHON_wrap.cxx.o] Error 1
CMakeFiles/Makefile2:450: recipe for target 'swig/CMakeFiles/_ettus_swig.dir/all' failed
make[1]: *** [swig/CMakeFiles/_ettus_swig.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

GUI of uhd_image_builder.py not correctly updated after "Import from GRC"

The uhd_image_builder GUI does not correctly update the Block count and the uhd_image_builder command after importing required blocks from a GRC. This is a cosmetic issue. As soon as any button is clicked, the gui is updated correctly. Also hitting the "Generate .bit file" button works correctly.

grafik

Cannot find or link against gr-ettus with Gnuradio 3.8?

I had some problems finding and linking against gr-ettus when upgrading rfnoc OOT modules to GR 3.8. I believe this is related to Gnuradio's cmake update (gnuradio/gnuradio#2429 -- which does not appear to be resolved??), but I'm really not clear what the fix should be.

I tried several approaches:

  1. Using the "legacy" find_package(ettus) command in CMakeLists -- this was the general way to handle finding gr-ettus with gnuradio 3.7

Instead I get a cmake configure error

--   No package 'ettus' found
CMake Error at /usr/local/lib/cmake/ettus/ettusConfig.cmake:41 (include):
  include could not find load file:
    /usr/local/lib/cmake/ettus/ettusTarget.cmake

I think this traces back to the ettusConfig.cmake provided by gr-ettus pointing to ettusTarget.cmake -- but this file has now changed names to gnuradio-ettusTargets.cmake. One possible answer might be the solution thanks to @yaaseen-dev here: yaaseen-dev@cb6c79f#diff-179e4ad3bfd5e35f054cf090710afd42R27

  1. I also tried: find_package(gnuradio-ettus)

This seems more promising, since GR_LIBRARY_FOO seems to install gnuradio-ettus cmake files into the lib/cmake/ettus install location. This fails in cmake configure with the following error:

CMake Error at gr-theseus/CMakeLists.txt:84 (find_package):
  By not providing "Findgnuradio-ettus.cmake" in CMAKE_MODULE_PATH this
  project has asked CMake to find a package configuration file provided by
  "gnuradio-ettus", but CMake did not find one.

  Could not find a package configuration file provided by "gnuradio-ettus"
  with any of the following names:

    gnuradio-ettusConfig.cmake
    gnuradio-ettus-config.cmake

  Add the installation prefix of "gnuradio-ettus" to CMAKE_PREFIX_PATH or set
  "gnuradio-ettus_DIR" to a directory containing one of the above files.  If
  "gnuradio-ettus" provides a separate development package or SDK, be sure it
  has been installed.

Interestingly, if I change the GR_CMAKE_DIR inside gr-ettus to point to ${CMAKE_MODULES_DIR)/gnuradio-ettus (

set(GR_CMAKE_DIR ${CMAKE_MODULES_DIR}/ettus)
), then the gnuradio-ettus cmake modules get installed to lib/cmake/gnuradio-ettus. Then, in my OOT module, calling find_package(gnuradio-ettus) finds gr-ettus, and target_link_libraries(<my-library> gnuradio-ettus) links successfully.

So: Is this right? Am I missing something obvious here?

Has anyone else ported rfnoc repos to gnuradio 3.8??

OOT of modtool make error for fpga testbench while using build folder with name other than build(like build-host or build-arm)

Hi every one
there is a bug in CMakeLists.txt of OOT created of modtool latest version.
if you use "build" as the name of your "build folder" it will pass in "make rfnoc_block_custom_tb" but other than build, it will face error:

/bin/sh: ../../../../build/cmake/Modules/run_testbench.sh: No such file or directory
beacuse it search a non existing folder rather than "your-build-folder-name"
/gr-ettus/python/rfnoc_modtool/rfnoc-newmod/CMakeLists.txt
or /your-new-mod-oot(like rfnoc-custom)/CMakeLists.txt
line 194:        add_custom_target(${_target_name}
            COMMAND ${CMAKE_SOURCE_DIR}/build/cmake/Modules/run_testbench.sh ${UHD_FPGA_DIR} e310 ${CMAKE_CURRENT_SOURCE_DIR} xsim
it should be :
        add_custom_target(${_target_name}
            COMMAND ${CMAKE_SOURCE_DIR}/"your-build-folder-name"/cmake/Modules/run_testbench.sh ${UHD_FPGA_DIR} e310 ${CMAKE_CURRENT_SOURCE_DIR} xsim
or 
        add_custom_target(${_target_name}
            COMMAND ${CMAKE_BINARY_DIR}/cmake/Modules/run_testbench.sh ${UHD_FPGA_DIR} e310 ${CMAKE_CURRENT_SOURCE_DIR} xsim
thanks.

port to GNU radio 3.8

Hi,
are there any efforts yet to port gr-ettus to GNU radio 2.8?
Would it be straightforward or are there any serious obstacles expected?

Wishing to try out the RFNoC blocks (and for some reason bound to the GIT master branch of GNU radio) I have made an attempt myself - with limited success. I was able to compile and install most of gr-ettus.
Of course the yml definitions of the blocks are missing, and automatic conversin of the xml files did not work, so I created one yml file by hand (the DmaFIFO block). The block shows up in grc and I could get rid of most error messages.
The in- and out-ports, however, are still are complaining about 'Domain key "rfnoc" is not registered' and I cannot connect anythin to this block.

Any ideas? How do I register the rfnoc Domain?

Thank you, and best regards,
Erik

Segmentation fault issue when calling rfnoc_block constructor

A segmentation fault error appears when executing part of gr-ettus code below:

rfnoc_radio_impl::rfnoc_radio_impl(
   const device3::sptr &dev,
   const ::uhd::stream_args_t &tx_stream_args,
   const ::uhd::stream_args_t &rx_stream_args,
   const int radio_select,
   const int device_select
   ) : rfnoc_block("rfnoc_radio"),     /* <----- base class constructor call causes a segmentation-fault error */
   rfnoc_block_impl(
   dev,
   rfnoc_block_impl::make_block_id("Radio", radio_select, device_select),
   tx_stream_args, rx_stream_args
   )
   {
   _radio_ctrl = get_block_ctrl_throw< ::uhd::rfnoc::radio_ctrl >();
   }

g++ version is 5.4.0 20160609.
Git Id SHA-1 is df84cb1 (2017-05-08 18:44:22).
The call to the base class constructor in the top-level class causes a segmentation-fault error. It seems that, at that time, access to the base class memory is not yet allowed. Valgrind warns for invalid memory writes.

Modifying the code as presented below fixes the crash:

rfnoc_radio_impl::rfnoc_radio_impl(
   const device3::sptr &dev,
   const ::uhd::stream_args_t &tx_stream_args,
   const ::uhd::stream_args_t &rx_stream_args,
   const int radio_select,
   const int device_select
   ) : /*rfnoc_block("rfnoc_radio"),*/   /* <---- Removed base class constructor call there */
   rfnoc_block_impl(
  "rfnoc_radio",                      /* <---- block name is given here */
   dev,
   rfnoc_block_impl::make_block_id("Radio", radio_select, device_select),
   tx_stream_args, rx_stream_args
   )
   {
   _radio_ctrl = get_block_ctrl_throw< ::uhd::rfnoc::radio_ctrl >();
   }

rfnoc_block_impl::rfnoc_block_impl(
    const std::string& name,    /* <----- Added parameter for block name */
    const device3::sptr &dev,
    const std::string &block_id,
    const ::uhd::stream_args_t &tx_stream_args,
    const ::uhd::stream_args_t &rx_stream_args
) : rfnoc_block(name),           /* <----- base class constructor called here */
    _dev(dev->get_device()),
    _tx(tx_stream_args),
    _rx(rx_stream_args),
    _start_time_set(false)
{
...
}

As a consequence, all RFNoC blocks constructors need to be modified accordingly.

version problem of GNURadio and UHD and RFNoC

I've tried several version combinations of UHD , GNURadio and RFNoC(gr_ettus).

When I am using UHD3.15+GNURadio3.8 rfnocmodtool in gr_ettus is for GNURadio 3.7 , so this conbanion is failed

When I am using GNURadio 3.8 and UHD4.0 the gr_ettus can not be cmaked.

Eventually, I successfully use rfmocmodtool with the conbanion of UHD3.15+GNURadio3.7, and program FPGA in X310. but I had to rewrite my gr_modtool OOT block for low version 3.7 of GNURadio.

The description of my failure experience may be inaccurate due to the time passed, but I hope Ettus can provide a correct gr_ettus software package for deverse combanion of UHD and GNURadio. and determine rfnocmodtool can run successfully.

I think my experience could be helpful.

By the way, I download ZIP of UHD, GNURADIO and ge_ettus form github because of my bad webwork, and I didn't use the git tool.

RFNoC4.0 endpoint buffer size

I have some issues when using RFNoC4.0. When I was using RFNoC3.0, I needed to input a series of modules make by myself when building an image using IMAGE_BUILDER.py. When I am using RFNoC4.0, I need to input the modules in the image_core.yml. The problem is that my own modules need a large amount of BRAM in FPGA. When I am using RFNoC3.0, if I use more than four my own modules, building failure will arise, which is clearly due to insufficient BRAM. But when I use RFNoC4.0, I need to determind the buffer size of ENDPOINT (ep) in image_core.yml for each module when creating an image .And the connection need to be written by myself ,too. So I don't know how the BRAM used by my module corresponds to the cache size specified by me for ep. That is, how do I set the cache size for ep so that when my own module is added between ddc and radio, and between radio and duc. Currently, I am constantly trying to set the cache size of different EPs to different sizes, which may lead to issues with OOOOO or UUUUUU. I hope developers can provide me with a detailed explanation of how to set the cache size when my own module requires a large BRAM (approximately 8000 complex floating numbers). The specific names of my two own modules are sig1 and sig2. Each module requires a cache area of 8192 complex floating-point numbers.
My module connection methods are radio-sig2-ddc-ep and ep-duc-sig2-radio, with two identical links for sending and receiving. I would greatly appreciate it if I could receive guidance.

rfnocmodtool replacement, Unable to build Custom OOT module with deprecated rfnocmodtool for UHD 4.6 and GNURadio 3.10

Issue Description

This issue concerns the transition from the deprecated rfnocmodtool to building custom OOT modules for newer versions of UHD and GNURadio. Previously (UHD v4.4 , gnuradio v3.8, grr-ettus version "maint3.8-UHD4.4"), I successfully built a custom OOT module using rfnocmodtool and integrated it with GNU Radio Companion with the help of gr-ettus. However, both tools are now deprecated with UHD 4.6 and GNURadio 3.10.

Specific Challenges

Lack of replacement for rfnocmodtool: While understanding that rfnocmodtool is no longer supported, I'm unsure of the recommended alternative to build custom OOT modules in the new workflow.
Integrating modules with GNU Radio Companion: With gr-ettus being deprecated, the process of integrating OOT modules into GNU Radio Companion remains unclear.

Desired Outcome:

Understand the proper workflow for building custom OOT modules compatible with UHD 4.6 and GNURadio 3.10.
Obtain detailed instructions or resources on integrating these modules with GNU Radio Companion, replacing the functionality previously achieved with gr-ettus

Additional Information

Platform: Ubuntu 20.04
Hardware: X410 usrp
UHD version: 4.6
GNURadio version: 3.10
Previous module development approach: Used rfnocmodtool

Request

I kindly request assistance from the community or developers in understanding the current best practices for building and integrating custom OOT modules with newer versions of UHD and GNURadio. Guidance on specific tools, resources, or steps involved would be greatly appreciated.

syntax error in ettus_rfnoc_graph.block.yml

Line 25 of ettus_rfnoc_graph.block.yml in the maint-3.8-uhd4.0 branch (and possibly others) looks like:
self.rfnoc_graph = ${id} = ettus.rfnoc_graph(uhd.device_addr("${graph_args}")))
You can see there are 2 open parentheses and 3 close parentheses. This leads to syntax errors when running a flowgraph including the RFNoC Graph block. Removing the extra close parenthesis fixes it.

Building gr-ettus for e310 (cross compiling)(gnuradio3.8 UHDv4) error in cmake generation

Hi every one
I am building gr-ettus for e310 using e3xx_e310_sdk_default-v4.0.0.0(source environment-setup-cortexa9t2hf-neon-oe-linux-gnueabi)
after initiating the environment I use cmake with these var:
cmake -DCMAKE_TOOLCHAIN_FILE=~/rfnocv4/src/gnuradio/cmake/Toolchains/oe-sdk_cross.cmake -DCMAKE_INSTALL_PREFIX=/usr ../
but it stop with error about not finding "gnuradio::runtime_swig:
sample of terminal output:
-- Checking for module SWIG
-- Found SWIG version 3.0.12.
-- Found SWIG: /usr/bin/swig3.0
-- Found PythonLibs: /home/ali/rfnocv4/oe/sysroots/cortexa9t2hf-neon-oe-linux-gnueabi/usr/lib/libpython2.7.so (found suitable version "2.7.17", minimum required is "2")
-- User set python executable /usr/bin/python2.7
-- Found PythonLibs: /home/ali/rfnocv4/oe/sysroots/cortexa9t2hf-neon-oe-linux-gnueabi/usr/lib/libpython2.7.so (found suitable exact version "2.7.17")
-- User set python executable /usr/bin/python2.7
-- Configuring done
CMake Error at /home/ali/rfnocv4/oe/sysroots/cortexa9t2hf-neon-oe-linux-gnueabi/usr/lib/cmake/gnuradio/UseSWIG.cmake:418 (add_custom_command):
Error evaluating generator expression:

$<TARGET_PROPERTY:gnuradio::runtime_swig,INTERFACE_INCLUDE_DIRECTORIES>

Target "gnuradio::runtime_swig" not found.
Call Stack (most recent call first):
/home/ali/rfnocv4/oe/sysroots/cortexa9t2hf-neon-oe-linux-gnueabi/usr/lib/cmake/gnuradio/UseSWIG.cmake:559 (SWIG_ADD_SOURCE_TO_MODULE)
/home/ali/rfnocv4/oe/sysroots/cortexa9t2hf-neon-oe-linux-gnueabi/usr/lib/cmake/gnuradio/GrSwig.cmake:137 (swig_add_library)
swig/CMakeLists.txt:58 (GR_SWIG_MAKE)

CMake Error at /home/ali/rfnocv4/oe/sysroots/cortexa9t2hf-neon-oe-linux-gnueabi/usr/lib/cmake/gnuradio/UseSWIG.cmake:418 (add_custom_command):
Error evaluating generator expression:

$<TARGET_PROPERTY:gnuradio::runtime_swig,INTERFACE_INCLUDE_DIRECTORIES>

Target "gnuradio::runtime_swig" not found.
Call Stack (most recent call first):
/home/ali/rfnocv4/oe/sysroots/cortexa9t2hf-neon-oe-linux-gnueabi/usr/lib/cmake/gnuradio/UseSWIG.cmake:559 (SWIG_ADD_SOURCE_TO_MODULE)
/home/ali/rfnocv4/oe/sysroots/cortexa9t2hf-neon-oe-linux-gnueabi/usr/lib/cmake/gnuradio/GrSwig.cmake:137 (swig_add_library)
swig/CMakeLists.txt:58 (GR_SWIG_MAKE)
.....

CMake Error at /home/ali/rfnocv4/oe/sysroots/cortexa9t2hf-neon-oe-linux-gnueabi/usr/lib/cmake/gnuradio/GrSwig.cmake:144 (target_include_directories):
Error evaluating generator expression:

$<TARGET_PROPERTY:gnuradio::runtime_swig,INTERFACE_INCLUDE_DIRECTORIES>

Target "gnuradio::runtime_swig" not found.
Call Stack (most recent call first):
swig/CMakeLists.txt:58 (GR_SWIG_MAKE)

-- Generating done
CMake Generate step failed. Build files cannot be regenerated correctly.
terminaloutput.txt

thanks.

Error in compiling gr-ettus No rule to make target

Error in compiling........How can solve it......

make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/liborc-0.4.so', needed by 'lib/libgnuradio-ettus.so.v3.8-compat-xxx-xunknown'. Stop.
make[1]: *** [CMakeFiles/Makefile2:289: lib/CMakeFiles/gnuradio-ettus.dir/all] Error 2
make: *** [Makefile:141: all] Error 2

Rfnoc tutorial issue

Hello, I'm doing this tutorial and I used the YouTube video of it..
I'm really at the end of this tutorial.. But after I finished everything and I run my application on gnuradio i have these errors 👍

file "/rfnoc-tutorial/examples/rfnoc_mygain. Py" , line 325,in main()
file "
/rfnoc-tutorial/examples/rfnoc_mygain. Py" , line 313,in main tb=top_block_cls()
file "~/rfnoc-tutorial/examples/rfnoc_mygain. Py" , line 129,in init attributeError:'module' object has no attribute 'gain'

what have i done wrong? I did exactly as this guide..
Thank you so much
Idan

Template error: fosphor_display

Hi!

I have an error with fosphor_display:

Generating: '/home/cruiz/repositorios/sample_rfnoc.py'

Executing: /usr/bin/python -u /home/cruiz/repositorios/sample_rfnoc.py

  File "/home/cruiz/repositorios/sample_rfnoc.py", line 147
    self.uhd_rfnoc_fosphor_display = Template error: #set $win = 'self._%s_win'%$id
                                                  ^
SyntaxError: invalid syntax

>>> Done (return code 1)

My UHD version:

[INFO] [UHD] linux; GNU C++ version 7.3.0; Boost_106501; UHD_4.0.0.rfnoc-devel-788-g1f8463cc

Thank you.

No file

When I was installing, the error came 'uhd/rfnoc/window_block_ctrl.hpp: No such file or directory
compilation terminated' and 'uhd/rfnoc/fir_block_ctrl.hpp: No such file or directory
compilation terminated.' It seems that in the uhd repository, you did not upload the window_block_ctrl.hpp and fir_block_ctrl.hpp. I could not find these two files anywhere.

ettus_rfnoc_graph.block.yml does not configure time and clock sources

The "RFNoC graph block" described by ettus_rfnoc_graph.block.yml allows the user to configure the time source and the clock source for each Mboard. However, these configuration items are not used in the "templates" section. The "templates" section should call the set_time_source() and set_clock_source() methods to configure the rfnoc graph block as requested by the user.

Installing gr-ettus (rfnoc) using PYBOMBS has error in gnuradio install

Trying to install a clean RFNOC system on Ubuntu 18.4

I believe that the PYBOMBS script is pulling the gnuradio 3.8 branch down, which fails in the install phase with the following error.

(This is the SAME error that one gets when installing gnuradio 3.8 from Pybombs, which I have posted to the pybombs issue list)

I believe that RFNOC currently requires gnuradio 3.7.

Is the version forked on this site the correct repository to install gnuradio from, or should the gnuradio maint-3.7 repository be pulled.

I believe that the fix is to update the pybombs scripts to retrieve the correct version of gnuradio maint-3.7.

-- Python checking for numpy - not found
-- Configuring gnuradio-companion support...
-- Dependency ENABLE_GNURADIO_RUNTIME = ON
-- Dependency ENABLE_PYTHON = ON
-- Dependency PYTHON_MIN_VER_FOUND = TRUE
-- Dependency PYYAML_FOUND = TRUE
-- Dependency MAKO_FOUND = TRUE
-- Dependency PYGI_FOUND = TRUE
-- Dependency GTK_GI_FOUND = TRUE
-- Dependency CAIRO_GI_FOUND = TRUE
-- Dependency PANGOCAIRO_GI_FOUND = TRUE
-- Dependency NUMPY_FOUND = FALSE
CMake Error at cmake/Modules/GrComponent.cmake:75 (message):
user force-enabled gnuradio-companion but configuration checked failed
Call Stack (most recent call first):
grc/CMakeLists.txt:95 (GR_REGISTER_COMPONENT)

gr-ettus installation fatal error

Hi, I am installing rfnoc with gnuradio 3.7 with pybombs

gr-ettus:
gitbranch: master
forcebuild: true

I have the following error.

[ 2%] Automatic MOC for target gnuradio-ettus
[ 2%] Built target gnuradio-ettus_autogen
[ 4%] Building CXX object lib/CMakeFiles/gnuradio-ettus.dir/device3.cc.o
In file included from /home/ivan/rfnoc/src/gr-ettus/lib/device3.cc:27:0:
/home/ivan/rfnoc/src/gr-ettus/include/ettus/device3.h:30:10: fatal error: uhd/device3.hpp: No such file or directory
#include <uhd/device3.hpp>
^~~~~~~~~~~~~~~~~
compilation terminated.
lib/CMakeFiles/gnuradio-ettus.dir/build.make:72: recipe for target 'lib/CMakeFiles/gnuradio-ettus.dir/device3.cc.o' failed
make[2]: *** [lib/CMakeFiles/gnuradio-ettus.dir/device3.cc.o] Error 1
CMakeFiles/Makefile2:139: recipe for target 'lib/CMakeFiles/gnuradio-ettus.dir/all' failed
make[1]: *** [lib/CMakeFiles/gnuradio-ettus.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
[ERROR] Build failed. See output above for error messages.
[ERROR] Problem occurred while building package gr-ettus:
Build failed.
[ERROR] Error installing package gr-ettus. Aborting.

Regards

RFNoC: make.py path is inconvenient to access

In the current RFNoC getting started guide, when building images the user is required to specify the full or relative path to 'make.py', which is clunky and involves a lot of typing.

For example,

$  {INSTALL_PREFIX}/src/uhd-fpga/usrp3_rfnoc/tools/scripts/make.py null_source_sink siggen

A more convenient approach to calling make.py is desirable.

rfnocmodtool can't import ettus

$ rfnocmodtool help
Traceback (most recent call last):
File "/usr/local/bin/rfnocmodtool", line 7, in
from ettus.rfnoc_modtool import *
ModuleNotFoundError: No module named 'ettus'

Installed gnuradio 3.8 through ppa
Intalled master branch of uhd

Burst mode support in gr-ettus radios

I would like to ask whether the gr-ettus radio block supports burst mode or not? I compare the code of the radio block in gr-ettus with the usrp_sink in GNURadio repo. It seems that rfnoc_block_impl.cc does not read the stream-tags in the samples.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.