Combining the Bandwidth of two HackRF’s 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 :- 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
Notify of

Inline Feedbacks
View all comments
Syed Ghazanfar Ali Shah Bukhari

Thanks Dear. Unfortunately new versions of Linux and Python have forced the GNURadio developers to modify their codes as well to maintain compatibility. As a result new version of GNURadio is not backward compatible with its older versions and thus many previous modules cannot be imported in the new version. e.g gr-baz, AudioFMCW.grc etc So what I did is I have two .ova images of Instant GNURadio. One is v3.7 already compiled using Pybombs and the second one v3.8 compiled binaries through source code. That is the only way to run both images in Virtual Box side by side or one at a time depending upon your requirement. The developer of Instant GNURadio has now removed the download link for .ova image of the previous release i.e v3.7 from the github which may be requested from him.


Well done, just a shame that GNUradio companion is such a pain to get to play along in win10.
sadly trow in the towel after I had installed so much third-party that i almost needed a fresh win10 install.
and also tried this massive pack
gnuradio_3.9.0.0beta_win64\GNURadio-3.9 that is like 1.3GB extracted but could not see any info how to proceed numerous exe file inside but none that looked like a startpoint.for the overall GNU radio.
but overall Im very impressed with my HackRF+portapack
very potent little RF fellow and it performs way above the rated 6Ghz..


Very true. GNURadio is not for noobs. I learned to configure it and make it work in after a great struggle. I ‘ll suggest you can try vmware and install DragonOS preconfigured image of GNUradio with gr-GSM.


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


Oops, I meant 1.0e7 instead of 2.0e7 …
Great job anyway. Tempted to purchase a 2nd RTL-SDR 😉

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.

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.


i am happy to see, that my flowgraph is used! 🙂

no show

Does it work with ordinary SDR Dongle to?
The are cheaper than HackRF.


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).

c5e3 / oliver

the flowgraph is basically the same as my original one. only difference is that 2 hackrfs are used as source and the offsets are changed


Yes indeed it is and I have mentioned your kind effort to give me a way forward for further study. Thanks a lot Dear.