graph-prototype icon indicating copy to clipboard operation
graph-prototype copied to clipboard

EPIC: List of GR 3.10 blocks & Others to be ported to GR 4.0

Open drslebedev opened this issue 2 years ago • 10 comments

This issue contains lists of blocks which can be of interest to implement in Gnuradio 4.0. The issue is aimed to be a tracker for the block-porting. It consists of all blocks from the current version of GNURadio 3.10. Additionally, it includes some FAIR-specific blocks from the gr-digitizers project, RxCpp project, and Resilience4j project.

The issue is rather big and thus uses collapsed sections for better navigation.

Please share your thoughts, insights, or any additional blocks you believe should be considered in the comments.

GNU Radio 3.10 'Core' blocks

577 blocks in 42 categories.

Hide all blocks

gr-digitizer project

Specification

Hide all blocks

Reactive Streams

image

Hide all blocks

Netflix 'Resilience4j' project

Unity Visual Scripting

image

Node types and their usage can be found here

Show all blocks
  • [ ] to be populated ...

drslebedev avatar Sep 13 '23 10:09 drslebedev

Hey, i just wanted to know, some of the high priority blocks,which needed to be migrated ?

Harishankar14 avatar Mar 15 '25 08:03 Harishankar14

@Harishankar14, great and thanks for your interest and willingness to contribute. 👍

The choice is yours and depends on your preference and expertise. Let's start with something simple (e.g. the boolean or byte operators) to get acquainted with the new block API and then move on to something more complex.

If you are into HAM then the AM or FM blocks might also be a good start. We deliberately left them unimplemented so that others -- like perhaps you -- could grow into the block lib concepts.

If you have some more C++ experience and thorough understanding of DFT and FFT algorithms, there are also some other std::simd-related project aspects that would greatly help.

As always, feel free to ask questions on the GR channels (https://matrix.to/#/#gnuradio:gnuradio.org and https://matrix.to/#/#development:gnuradio.org). For GR4 specifically: https://matrix.to/#/#architecture:gnuradio.org That's often a good and perhaps better place to start. :smile:

to note: 'porting' and 'migrating' implies functionality, not just copying code, and may require some implementing from scratch. We are trying to keep the core LGPLv3, so beware that your ideas/resources are compatible (most are, except GPLv3) .

RalphSteinhagen avatar Mar 15 '25 10:03 RalphSteinhagen

yeah, sure, I will look into it and provide the help that the community wants ! Btw, I am there in the GNU channels too.

Harishankar14 avatar Mar 15 '25 10:03 Harishankar14

Would these be OOT modules based on the tutorial on the GNURadio website for GNU Radio 3.x?

I took a look at #395 and the structure looks to be different from the OOT modules on tutorial.

jameshu15869 avatar Mar 19 '25 18:03 jameshu15869

@jameshu15869 great and thanks for your interest in contributing.

For the basic ones (i.e. those that are functionally already in GR3 and have no specific HW or external library dependency and are LGPLv3 compatible) these would be in the GR4 block-lib, i.e. go into the sources ./block/<module> directory. There are also some OOT usage examples for blocks that cannot be shared with the core (due to licenses, IP, ...).

However, creating blocks in GR4 is different/easier than in GR3 and does not require a 'modtool' or similar. The code is the single source of truth and some build file entries.

The main things you need to do are:

  1. write a `.hpp' (here is also where you can add documentation, infos for the registry, and other optional infos),
  2. add this .hpp' file to the ./block//CMakeLists.txt file (so that it gets exported/installed),
  3. and include the .hpp in your project, e.q. your new unit test which goe into ./block/<module>/test/`

For now, in addition to the tutorials, the examples in the 'basic' or 'testing' modules are a good start for reading and showing the breadth of what is possible and getting an idea of the flavour of how blocks are written, tested and used.

I will try to update/write the new block-lib dev documentation.

N.B. documentation, tutorials, people sharing their experience and helping others to get started is something where we need help ... if you are interested. Check out the GR channels mentioned above.

RalphSteinhagen avatar Mar 20 '25 06:03 RalphSteinhagen

@RalphSteinhagen how did u build the gnuradio4 locally.. and set it up, can u explain?

codblack789 avatar Mar 27 '25 20:03 codblack789

@RalphSteinhagen how did u build the gnuradio4 locally.. and set it up, can u explain?

You already asked the question here and got an answer. This issue is meant for tracking blocks that remain to be re-implemented/ported to GR4. Since there are a lot of blocks, the discussion should be about who is tackling what.

Please do not cross-post, and if there are bugs or questions, please use the GNU Radio channels for generic IDE setup/non-GR-related questions first.

Thanks for your understanding.

RalphSteinhagen avatar Mar 28 '25 06:03 RalphSteinhagen

Seeing #536, will this project be used for GSoC? I was curious about contributing a couple blocks in my spare time but don't want to step on someone's feet

@alexhojinpark

jameshu15869 avatar Apr 01 '25 20:04 jameshu15869

@jameshu15869 you are most welcome to join and contribute. Everybody is welcome.

We setup this as a tracker to coordinate that things are not getting implemented twice... nothing else.

Let us (@mormj, @jsallay, et all.) know what your interest, level-of-expertise, and block category[y, ies] is/are (😁) that you'd like to tackle. I'd suggest to start with an easier one to get familiar with the basic API build-system and then move to a more complex example.

RalphSteinhagen avatar Apr 02 '25 05:04 RalphSteinhagen

hello, I found out about your project through GSoC, Can I work on GNU Radio even if I did not send a formal proposal? I am looking for a beginner-level bug/feature as this is my first time contributing to open source.

mohamed-walid-fathy avatar Apr 10 '25 07:04 mohamed-walid-fathy