Settings for HF in Pothos & Gqrx?

Hello Everyone!

I received my LimeSDR last week and am enjoying it.

I’m getting inconsistent results with different SDR tools and need some advice on the settings I should be using.

My applications include the HF/VHF/UHF ham radio spectrum as well as higher frequency applications. In all, my use cases cover about 3 MHz up to 3 GHz.

I began by removing the MN26 inductor to unlock HF frequencies on RX1_W.

Using SDR-Console, I verified that my LimeSDR can receive HF. I was able to clearly see and hear the 14.1 MHz beacon as well as JT65 signals as far down as 3.576 MHz (80m band).

However, I haven’t been able to tune in HF frequencies using either Pothos or Gqrx. When I tune to 88.5 MHz, I clearly see and hear our local FM station at that frequency in both programs. However, when I tune to the HF frequencies that work fine in SDR-Console (such as 14.1 MHz mentioned above), all I see is low-level noise across the band.

It seems likely that I have some of the settings wrong in Pothos and Gqrx. As far as I can tell, neither program is able to set the LimeSDR carrier below 50 MHz. To tune in HF frequencies as low as 3.5 MHz, the bandwidth has to be set to 100 MHz, so that the lower half of the band covers the HF frequencies of interest. Is that correct?

That allows me to tune to HF frequencies, but as I said, they look dead except for low-level noise.

I have my sample rate set to 10,000,000 samples / second as recommended in other threads in this forum. I can’t go higher on this particular PC because it only supports USB 2.0. Could that be the problem? Do I need a higher sample rate to capture 100 MHz of bandwidth? When I zoom in on the low-level noise, it looks heavily quantized, both in frequency and amplitude. Is that a symptom of a low sample rate?

I’ve played with the gain settings (LNA, TIA and PGA), but all they do is shift the noise up and down. I have also verified that disconnecting the antenna or switching antenna inputs drops the noise level as expected, so I don’t think the antenna setting is the problem.

Can anyone who has HF working in Gqrx or Pothos share your settings and/or a working project file with me?

Any and all help would be appreciated.


—Gary, W6ARY

After reading my own post, it seems obvious to me that I would need a higher sample rate to capture 100 MHz of bandwidth.

I assume that each sample is an I/Q pair. If the carrier is at 50 MHz, then an RF signal at 14 MHz would produce an I/Q signal with a frequency of 36 MHz. To capture that frequency, I would need an I/Q sample rate of at least 72,000,000 samples / second.

I have SDR-Console set to a bandwidth of 10 MHz. Is SDR-Console able to tune the LimeSDR’s carrier below 50 MHz even though Pothos and Gqrx cannot?

Or… is it possible to use the LimeSDR to sample at 100 MHz bandwidth with a carrier of 50 MHz on the LimeSDR board itself and then somehow decimate that down to a 10 MHz sample rate to transfer over USB 2.0?

(If these questions add confusion, please see my first post in this thread. All I really need are settings to get Pothos and Gqrx to work on HF frequencies.)

—Gary, W6ARY

Hi Gary,

I don’t fully understand what you mean by “… tune the Lime’s carrier below 50MHz”. But if you’re simply asking “can SDRC tune the Lime to receive signals below 50MHz” … then the answer is ABSOLUTELY. SDRC will tune the Lime to practically DC.

I use SDRC as my main SDR GUI, and also use 10MHz bandwidth (for that matter, I’m able to go as high as 40MHz since I have USB3. Any higher and I start experiences sample dropout).

Also, I’m guessing you’ve read by now that Lime is pretty deaf below 100MHz or so, right? The ‘clipped-coil’ mod helps, but from what others in this forum have reported, you should expect somewhere around 50dBm attenuation of signal at around 30MHz, and at 100kHz, Lime is about 80dBm down.

Hope this helps? See also the thread on this forum entitled “LimeSDR under SDR-Console”.

73s, Dave W7BOT


Thanks for your reply.

I know SDR-Console can receive frequencies below 50 MHz. It’s working great with my LimeSDR!

The problem is that I haven’t been able to get Pothos or Gqrx to receive frequencies in the HF range (e.g., 3.5 MHz, 7 MHz or 14 MHz bands) – even though I can receive these same frequencies just fine with SDR-Console.

Let me explain what I meant by “carrier”. The way LimeSDR and most direct sampling SDRs work is that you provide them with a center frequency and they sample a portion of the spectrum centered on that frequency by mixing the RF signal with two separate sinusoidal waveforms at the center frequency, but 90 degrees out of phase with each other. The result is a pair of signals called I/Q, which are centered on that frequency. This center frequency is what I was referring to when I said “carrier” in my previous posts. It was a confusing use of the word and I apologize for that.

My theory is that neither Pothos nor Gqrx can set the center frequency of the LimeSDR below 50 MHz. Supporting that theory, I saw source code for the implementation of the Pothos LimeSDR source node’s setFrequency() that clamped the frequencies below 50 MHz to 50 MHz.

To get lower frequencies, I assume I need to set the center frequency to 50 MHz and then set the bandwidth wide enough so that the lower end of the sampled spectrum will cover the frequency of interest. If I want to receive a 10 MHz signal, the bandwidth needs to be 80 MHz to cover the range 10 MHz to 90 MHz, centered on the center frequency of 50 MHz.

I’ll be happy if I’m wrong about the 50 MHz lower limit of the center frequency, but everything I’ve tried so far supports that theory.

—Gary, W6ARY


Quick correction. The source code I saw was here:

In “setFrequency()”, it actually clamps the center frequency to 30 MHz, not 50 MHz. However, the basic analysis and concern is the same.

The LMS chip has a PLL that can tune down to 30 MHz, but it also has an NCO that can take it further down to DC or so. But this is handled by the hardware and the driver and applications need not concern themselves about it.

The only thing to remember is that when the NCO is used to tune on HF, we must have the bandwidth opened up, hence the need to set 60 MHz bandwidth in gqrx.

There are many posts on this forum with screenshots showing gqrx working on HF.

Got it. I should have known you weren’t asking the simple question :slight_smile: Ok, we’ll have to wait for someone else to chime in here. That’s the extent of my knowledge, so can’t help I’m afraid. I do however plan to play with Gqrx and Pythos a bit in coming days, so I’ll ping you if I make any discoveries that prove <50MHz is possible.

73s, Dave

@csete Thanks!

Any theories on why I’m only seeing low-level noise and no usable signals in Gqrx in the 3-15 MHz range when I set the bandwidth to 60+ MHz and then tune to that range? For example, I can see and hear the California amateur radio beacon clearly on 14.1 MHz using SDR-Console but I can’t see or hear it at all in Gqrx. This only seems to be affecting HF. I can receive FM broadcast fine in both programs.

Are any of the videos of Gqrx working on HF running on Windows? All of the videos I’ve seen appear to be Linux.

Also, do you know why the Soapy setFrequency() code I linked to earlier in the thread clamps the frequency to 30 MHz? Doesn’t that mean that the application does need to handle frequencies below 30 MHz differently?

Again, I’m sure it’s possible to tune in HF using Gqrx and my modified LimeSDR is clearly capable of it. I’m just trying to debug why it’s not working. :slight_smile:

—Gary, W6ARY

It clamps the “RF” frequency to 30 MHz, which is what I called PLL. The NCO, which is called “BB” in the code is not clamped.

I don’t use windows, sorry. I wrote gqrx to have an SDR application on linux and mac.

I didn’t realize you were OZ9AEC, the author of gqrx! Thank you and well done!

Two more questions:

  1. Given that my USB 2.0 connection can only handle about 10M samples/second, do I need to use the decimation setting to achieve a bandwidth of 60 MHz or is decimation only used to obtain higher precision samples?

  2. When using gqrx in Windows, the USB and LSB options seem to be backwards. If I see a constant tone in the spectrum (e.g., from a sinusoidal noise source), I only hear it if it’s to the left of the USB window or to the right of the LSB window. It’s dead silent when placed inside the window. Is that expected? At first, I assumed it was a bug, but then I thought that maybe the SSB demodulation technique could be picking up a mirror image of a strong signal on the other side of the carrier and that there might be a notch filter that only works inside the window but not on the alias.

Thanks again for all your help!

—Gary, W6ARY

If you are using 10 Msps sample rate then that is the maximum real time bandwidth you can get. The input decimation in the gqrx configuration window can be used to reduce that further and is useful to reduce quatization noise (higher SNR) or CPU load.

The bandwidth parameter refers to “analog bandwidth” setting, i.e anti-aliasing filter. Normally, you would set this to be smaller than the ADC rate / sample rate to avoid aliasing; however, when using the NCO for tuning it is necessary to set it to 60 MHz to cover the +/- 30 MHz range.

That sounds very strange and is definitely not normal.

(@csete Thanks for your help.)

I tried both gqrx 2.6-64-g96fc99d @ 10M sample rate / 60 MHz bandwidth and SDR-Console running on Windows 7 with my LimeSDR (with MN26 removed on RX1_W).

SDR-Console is as good or even a bit better than my Icom IC-7600 on the same 10m/20m/40m end-fed antenna. Unfortunately, gqrx seems unable to pick up any intelligible signals at all in the HF band on Windows 7.

Based on the Linux gqrx LimeSDR HF success stories I’ve seen in screenshots and web videos, I suspect the problem is something unique to my settings or the Lime Suite for Windows build.

Until I get more ideas or see someone else have success with gqrx on Windows, I’ll switch back to Pothos and see if I can get it to work.

My new challenge is that Pothos only seems to set the RF frequency via Soapy and I’ve never seen it attempt to set the BB frequency to anything but 0. If anyone has an idea on getting Pothos to change the BB/NCO frequency of the LimeSDR, please let me know!

—Gary, W6ARY