Proposed unified architecture of SatNOGS Client on GNURadio

Hello all,

After a long planning process and consulting with various GNURadio aficionados, we are happy to present you with the new client architecture built around GNURadio. The proposed solution is an one-size-fits-all approach, trying to tackle the need for modularity (working with SDRs or Radio rigs) while keeping the same codebase.

The core concept is the following:

SatNOGS Client python code should be able to spawn gnuradio demodulators for either direct IQ input (SDRs) or audio input from a Radio transceiver (while controlling the transceiver).

You can find diagrams for both approaches below:

The Radio Transceiver option:

The SDR option:

Both options take the same approach on interfacing with existing Rotators (SatNOGS Rotator or comercial ones)

The work that needs to happen to implement the proposed architecture can be outlined as:

  • Extend rigctl part of Hamlib to include an GNURadio option.
  • Develop a rigctl GNURadio block for frequency and modulation input.
  • Develop GNURadio sketches for each supported modulation.
  • Amend current SatNOGS client to facilitate the proposed architecture (spawning of gnuradio and detection of setup).

We are looking for feedback on the proposed approach. Please provide it in this thread. Also contributors towards implementing this are always welcome!

Thanks :smile: