Dysfunctional Clock-Wired Duel rtl-sdr V3's For Relative Phase Measurement

As described in the rtl-sdr user projects forum, I need to measure the relative phase of two Rx plasma antennas for a test of special relativity.

However, when I install the krakensdr suite, including the GNU Radio block, I get basically noise as the phase difference through time even when the plasma is turned off and the only signals are coming in conventionally (ie: metal traces in the PCB):

Before installing the gr_krakensdr code’s GNU Radio KrakenSDR radio source block, I had succeeded in getting Kraken_DOA’s GUI to report that the sources were in sync. Moreover, they were generating the DOA graph with moderate consistency. I say “moderate” because over time there were such dramatic changes in the DOA graph that it was useless for discriminating even qualitative changes in phase. All I need is to detect qualitative changes in phase since when the plasma antennas are turned on, the theory predicts a rather large phase difference will appear between the plasma antennas. But since I couldn’t get Kraken DOA to stabilize its DOA graph, I couldn’t trust it as a detector of such phase change.

That’s why I resorted to gr_krakensdr: To simplify the system to basically get just Heimdall DAQ data but, presumably, with the advantage of Kraken DOA’s calibration.

Did you adjust the heimdall config file to specify only 2 receivers? I see a lot of “Failed to get IQ Samples” in your error log which means something is not quite right here.

Also I’m not quite clear on how are you getting heimdall to sync during the calibration phase? Do you have a noise source equally distributed to each of your RTL-SDRs for the calibration? And are you manually turning it on during calibration?

I do not have a noise source equally distributed to the RTL-SDRs. I have only a shared clock.

If this is necessary to maintain them in a constant relative phase relationship as a baseline phase difference against which to compare the experimental condition – not even with the clock of one driving the clock of the other – then I’m not going to be able to use this hardware configuration.

PS: Heimdall config file is set for 2 dongles. It did appear to “work” with Kraken DOA’s web gui since it did report not only a sync’ed system but it provided what it thought was a DOA graph:


I’m suprised heimdall synced without a noise source. Basically when you start up two RTL-SDRs their USB samples will be totally out of sync, even if the clocks are connected together.

So you need a noise source running in order for heimdall to be able correlate, and align the samples of the two RTL-SDRs through adjustments of the hardware resampler on the RTL-SDR.

Then once samples are aligned, you can now align the phase of the tuners, which is random upon each start. Again a noise source can be used to correlate, then you can calculate the phase differences, and multiply the IQ data of the second tuner to align the phases.

Heimdall does all this automatically, but it does need that noise source to properly correlate. The noise source has to be almost perfectly evenly distributed to each of the tuners.

I bought a KrakenSDR, modified the rtl_daq.c to turn on the noise source according to the directions for kraken_correlator_test.grc, which I then reduced to just two channels:

I then gathered phase difference information overnight with the following result:

Asided from the rather large change in relative phase over time; at the frequency I selected (103.1MHz) and the 2.5in distance between the antennas, the maximum possible phase difference should have been only 1.25degrees.