Taking baby steps

Alright, this my first SDR and really my first radio other than a little Grundig.

I am slowly working my way toward using Gnuradio. Right now I am using Gqrx (thanks @csete and others like @joshblum)

I am trying to capture FM which is working fine since I have line-of-sight to a powerful FM station. But I get no RDS. But is it safe to presume that if I can rx FM that I can rx RDS?

Input rate: 1e6
Decimation: 8
Bandwidth: 60MHz

Filter width: Wide
Filter shape: Normal
Mode: WFM(stereo)
AGC: Fast
Squelch: -145.0 dBFS

The RDS decoder in gqrx requires strong signal.

Your input rate is 1 MHz, then you decimate by 8 and end up with 125 kHz. I think that is too narrow for proper WFM reception. Try with no decimation.

I would also recommend lowering the bandwidth to better fit the input rate in order to avoid aliasing. For VHF and above you can set it to 0 for auto. Only for HF is is it necessary to set the bandwidth to 60 MHz.

I have tried to follow your advice. But I am unable to set the bandwidth to 0. I get an error and then the program terminates. I am running Gqrx git master.

[ERROR] setBandwidth(Rx, 0, 0.75 MHz) Failed - RxLPF frequency out of range, available range from 1.4e+06 to 1.3e+08 MHz
terminate called after throwing an instance of 'std::runtime_error'
  what():  RxLPF frequency out of range, available range from 1.4e+06 to 1.3e+08 MHz

Ok this may be good old fashioned pilot error. Other stations I checked are broadcasting RDS. This one is the strongest so I just stuck with it to keep the number of variables low as I try to learn.

Not sure if RDS (a.k.a. RBDS) is standardized but the other stations RDS data does not look consistent. But that’s okay as it might be my rudimentary (crudimentary?) antenna.

The “Station Name” data seems to be garbled but again maybe that’s due to the antenna.

It doesn’t really matter which version of gqrx you are using because the BW parameter is sent to the backend (soapysdr). 0 should work but I may remember it wrong.

Okay, I am also running soapysdr git master. I changed bandwidth to 2MHz and that’s working. It looks like the RDS is fine but just needs different formatting in how it’s output to Gqrx. A very minor thing. My main quest was just to understand the setup I have at the moment. I am taking small steps so as not to introduce too many variables. Gqrx lets me do that so thanks again.

I added a different antenna. I got an old Radioshack antenna which has an enclosed UHF loop and rabbit ears. More FM stations and more RDS data.

Gqrx has really helped a lot because knowing so little I feel blind otherwise. It gives me a good starting point to move on to the next phase of my learning. Thanks to all those many contributors to Gqrx (and there are many).

I have Gnuradio working with all the moving parts and now I will try to see if I can get ADS-B working. FWIW ADS-B is broadcast from aircraft constantly at 1Hz over 1090Mhz. So I need to set up a flowgraph and see what happens. I think first I will try to capture raw data, either in Gqrx or Gnuradio.

I made an antenna like this one:

Got ADS-B working in Gnuradio and just capturing data to csv files for now. I was concerned that my shoddy antenna would not work but it works fine.

Now I am onto UAT@978MHz and will use the same antenna for now. But the format on 978 is different than the one on 1090.

There’s nothing for capturing this UAT in Gnuradio so I will have to learn some more about I and Q and the complex float pairs and UAT format.

So I need to make sure my understanding is correct on the data from the LimeSDR.
I think the data comes from the USB to Gnuradio as 12-bit integers and then converted to two 32-bit floats, the I and the Q for 64-bits per sample. And that is what is called Raw I/Q.