Combining the Bandwidth of two HackRF’s

RTL-SDR.com reader Syed Ghazanfar Ali Shah Bukhari from the Frequency Allocation Board in Pakistan recently emailed us to let us know a trick he's found which lets you combine the bandwidths of two HackRF software defined radios in GNU Radio. Syed's program is based on Oliver's flowgraph that we posted previously, which was used to combine the bandwidth of two RTL-SDR dongles.

Syed also sent us the GRC file to share which we've uploaded here.

He writes:

I have used grc flow graph of Oliver as mentioned in the link :-
https://www.rtl-sdr.com/combining-the-bandwidth-of-two-rtl-sdr-dongles-in-gnu-radio and modified it to be used with 2 HackRF Ones. I also shifted the two bandwidths inward by 1 MHz instead of 0.2 MHz to make a smooth continuation for a 38 MHz spectrum. Unfortunately one of my HackRF Ones has its RF Amp burnt up so I adjusted its IF and BB gain to have same noise floor as that of other HackRF One. It's really awesome. I am sending you the diagram and grc file. The attached image is showing complete GSM900 downlink spectrum (38 MHz) in my area with active 2G and 3G signals.

September 2018 Update:

An rtl-sdr user with nick JAAP had some query pertaining to calculation of center frequency of each HackRF. The values I used were a bit erroneous. If you the previous flow graph I sent you, the center frequencies for both HackRFs are same in the SDR source box. That should be different for both with a 20 MHz difference between the two. Some spectrums started repeating themselves on those values. I have improved the flowgraph using variables and equations to remove the logical bug. I have added a slider for bandwidth cropping that can be used for test pupose only to understand the concept behind the frequency shifting and cropping of spectrum of both HackRFs. I have attached the new grc file and the image. Gain values can be adjusted as per user requirement and sensitivity of your own SDRs. I am working on grc which will show a spectrum using 5 rtl-sdrs and two hackRFs thus combining BWs to give a span of 50 plus MHz.

Update GRC File available here.

Multi HackRF Spectrum
Multi HackRF Spectrum
Multi HackRF GRC flowgraph
Multi HackRF GRC flowgraph

10 comments

  1. Jaap

    Shouldn’t “freq0 = cent_freq +/- 2.0e7” instead of “freq0 = cent_freq +/- 1.0e6”? Maybe an RTL-SDR leftover? The FFT looks fine though.

    Cheers, Jaap

      • Syed Ghazanfar Ali Shah Bukhari

        You can try with 1.0e7 if it improves the cascading. I tested Oliver’s and my flowgraphs together and used a powered USB hub connecting 3 RTL-SDRs and two HackRF Ones and got a bandwidth span of 38+9= 47 MHz . But now you can get 6GHz bandwidth from one hackrf one in almost real time or with 2 sec delay using QSpectrumanalyzer software.

    • Syed Ghazanfar Ali Shah Bukhari

      No Dear,
      It should be rather +/- 1e3. If you place a strong narrow band signal as center frequency in the flowgraph and go beyond the above mentioned limits the signal will be vanished due to cropping.

      • Syed Ghazanfar Ali Shah Bukhari

        In my case as I use to monitor ELF and ULF signals with 1 to a few Hz BW I prefer to keep the value as freq0 = cent_freq for both Hackrfs. But then the Rx antenna array is a very different system to receive such low frequency signals.

  2. Syed Ghazanfar Ali Shah Bukhari

    Since the HackRF One by Michael Osman is having clock in and clock out ports so anyone can use multiple hackrf ones in cascade to give clock out of 1st to clock in of 2nd , clock out of 2nd to clock in of 3rd and so on. In this way all SDRS will be working on sane reference clock signal in my opinion. I haven’t tried it yet but it seems possible technically. The number of SDRS depends upon the processing speed and RAM of CPU running GNURADIO.

    • Bertie

      No it does not work with rtl-sdr dongles (“Syed’s program is based on Oliver’s flowgraph that we posted previously, which was used to combine the bandwidth of two RTL-SDR dongles.”).

      You would need about 18 dongles all running from the same clock to look at 38MHz of spectrum (assuming 2.4MSPS(no drops) and 0.1MHz overlap on each side). Getting 18 dongles to work on the one PC, and modifying them to share one common clock I suspect would end up as an extreme learning experience in design and moding and may require slightly more powerful PC (to process the 88.4MB/sec vs 80MB/sec with 2xhackrf).

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.