How to log raw IQ data from Raspberry Pi 4 over eth0 to PC?

Hi everyone,

I’m working with a KrakenSDR (5-channel RTL-SDR array) connected to a Raspberry Pi 4 running the standard firmware. I’d like to capture the raw IQ data (after FIR decimation and optional IQ calibration) and stream it over Ethernet (eth0) directly to my PC for further offline processing.

Could you help me with:

  1. The proper way to redirect IQ data (complex float32) to the Ethernet interface from the Pi?
  2. What configuration files or blocks (in daq_chain_config.ini or otherwise) I need to modify?
  3. How do I receive and log this data on the PC? (e.g., netcat, Python socket, etc.)

I saw mentions of the IQ Server block and shared memory, but not sure how to access the streamed data remotely.

Any advice, script examples, or best practices would be greatly appreciated. Thanks!

Hi, the best way would be look at how it’s done on our gr-krakensdr GNU Radio block.

Basically the steps are:

  1. Set heimdall_daq data_interface out_data_iface_type = eth;
  2. In your custom PC software, set up a TCP socket connection and receive the data into a buffer.
  3. Process the received data frames, splitting them up into the individual channels and header metadata. (As shown in the GNU Radio code)

When logging IQ data with Heimdall IQ recorder, which antenna channel(s) does the recorded data represent in the 5-antenna array?

They should correspond to the physical labels on the device.