KerberosSDR Interface to Gnu Radio Companion (GRC)

Discuss KerberosSDR - 4x Coherent RTL-SDR
rtlsdrblog
Site Admin
Posts: 2706
Joined: Mon Nov 19, 2012 11:54 pm

Re: KerberosSDR Interface to Gnu Radio Companion (GRC)

Post by rtlsdrblog » Sun Jun 07, 2020 9:40 am

breadontoast wrote:
Fri Jun 05, 2020 7:15 am
Thats clear so far, but how do I control the noise source andetc via gnuradio? Is there even need for that or does kerberos sdr start of coherent right away?
Kerberos is not coherent by itself, the sample and phase sync comes from the software. So in GNU Radio you'd have to build a flowchart to do the coherency for you - not that simple or maybe not even possible, which is why we do it in the C code.

For the noise source, if you can control the GPIO from GNU Radio, then it's just a matter of turning GPIO 0 on to enable the noise.

awdmesh
Posts: 31
Joined: Tue Oct 22, 2019 4:23 pm

Re: KerberosSDR Interface to Gnu Radio Companion (GRC)

Post by awdmesh » Sun Jul 12, 2020 10:15 am

Multiple things you can do with the radios inside the KerberosSDr besides the two functions mentioned above. Here’s some examples,

https://www.youtube.com/playlist?list=P ... fhQvxXYMHl

Stromeko
Posts: 33
Joined: Wed May 01, 2019 6:32 pm

Re: KerberosSDR Interface to Gnu Radio Companion (GRC)

Post by Stromeko » Mon Jul 13, 2020 4:30 pm

rtlsdrblog wrote:
Sun Jun 07, 2020 9:40 am
Kerberos is not coherent by itself, the sample and phase sync comes from the software. So in GNU Radio you'd have to build a flowchart to do the coherency for you - not that simple or maybe not even possible, which is why we do it in the C code.
That doesn't sound right... :)

My current understanding is: The clocks for all four RTL-SDR are the same, so the sampling should be synchronous. The PLL has to be put in a mode where it doesn't jitter the mixer clock. The USB frames for the four RTL-SDR start at completely random samples and there's no way to synchronise these in hardware, so you need software to align the data after getting it off USB.

rtlsdrblog
Site Admin
Posts: 2706
Joined: Mon Nov 19, 2012 11:54 pm

Re: KerberosSDR Interface to Gnu Radio Companion (GRC)

Post by rtlsdrblog » Thu Jul 16, 2020 5:04 am

Stromeko wrote:
Mon Jul 13, 2020 4:30 pm
rtlsdrblog wrote:
Sun Jun 07, 2020 9:40 am
Kerberos is not coherent by itself, the sample and phase sync comes from the software. So in GNU Radio you'd have to build a flowchart to do the coherency for you - not that simple or maybe not even possible, which is why we do it in the C code.
That doesn't sound right... :)

My current understanding is: The clocks for all four RTL-SDR are the same, so the sampling should be synchronous. The PLL has to be put in a mode where it doesn't jitter the mixer clock. The USB frames for the four RTL-SDR start at completely random samples and there's no way to synchronise these in hardware, so you need software to align the data after getting it off USB.
Yes the clocks are connected together, and the PLL jitter is turned off. Then as you mentioned, first the USB frames need to be aligned which the software does.

BUT phase coherency/sync is still not achieved by that stage. The reason is that when the R820T2's start up their initial phase is completely random. We still need software to compensate for that. The clock+jitter fixes simply stop the phases from drifting further apart after startup.

If you can get the C code into a GNU Radio custom it should be possible. I guess you could do it with blocks too, but you still need to find a way to handle any sample drops etc. Not familiar enough with GNU Radio to know if that's possible without a custom block.

Stromeko
Posts: 33
Joined: Wed May 01, 2019 6:32 pm

Re: KerberosSDR Interface to Gnu Radio Companion (GRC)

Post by Stromeko » Fri Jul 17, 2020 4:34 am

rtlsdrblog wrote:
Thu Jul 16, 2020 5:04 am
BUT phase coherency/sync is still not achieved by that stage. The reason is that when the R820T2's start up their initial phase is completely random.
Hmm. From what I've read it's the mixer PLL that arrives at a slightly different tuning each time, so you end up with a drifting phase difference before correcting that. Since it's a fractional-N PLL the set of possible values can't be completely random, but the end result superficially looks quite the same as that given that you don't know when it has achieved lock.

I have not gotten around to doing that compensation myself yet. There are several web pages, thesis and presentation documents out there that explain how it works, though.
rtlsdrblog wrote:
Thu Jul 16, 2020 5:04 am
If you can get the C code into a GNU Radio custom it should be possible. I guess you could do it with blocks too, but you still need to find a way to handle any sample drops etc. Not familiar enough with GNU Radio to know if that's possible without a custom block.
From a cursory reading this guy just needed time coherence and not phase coherence, but here's an example of a custom block for GNU Radio that makes and keeps multiple RTL (time) coherent:

https://github.com/ptrkrysik/multi-rtl

I don't know if GNU Radio itself has a direct FFI interface, but you could certainly bind to libraries via FFI using one of the available language bindings.

Post Reply