RFSoC4x2 as multi-channel SDR

Hello guys

I have a new RFSoC4x2 board and first of all I have to say it looks absolutely great with so many educational open-source resources, it’s really excellent and thanks for that.

I want to use the board as a multi-channel SDR, the principle is well described in the RFSoC SDR book by strath_sdr. I’ve been working with SDR for a while as user, but this Pynq ecosystem is new to me. I’d like a simple case to start with - rx and streaming IQ samples to PC. I would like to try two scenarios

  1. as in example 01_rf_dataconverter_introduction.ipynb use Python API for receiver and send via USB3 IQ samples.
  2. add a QSFP interface to the Base overlay (example of qsfp GitHub - strath-sdr/rfsoc_qsfp_offload: RFSoC QSFP Data Offload Design with GNU Radio) and stream data through it.

I would like to start with case 1 which is simple for me. But I’m a little worried how the Python API (as in example in 01_rf_dataconverter_introduction.ipynb) will handle the data stream, let’s say I’d like to transfer 100 MHz bandwidth IQ samples in real time (4 bytes per IQ). Does anyone have experience with this please?

I suppose case number 2. (via QSFP) will be more suitable and will allow much more bandwidth to be transmitted, there is also a great example of streaming to GNU radio, but adding it to BaseOverlay requires hw design, which is new to me ( or it might be enough to use the rfsoc_qsfp_offload Overlay so I can control the ADC/DAC, not sure yet)

Can I ask you for some experience and some tips on how to do it?

Many thanks
Jacob

2 Likes