Tag Archives: sdr

While I’m at it, what TV channels are detectable here?

A couple posts ago I ran a scan of radio spectrum observed from a discone atop the house. There were a bunch of TV stations observed.

This FCC site comes in handy to check these.

Channel Callsign Start Freq
Stop Freq
XMTR location Distance (km)
8 KAET 180 186 South Mtn, PHX 31
10 KSAZ 192 198 South Mtn, PHX 31
12 KPNX 204 210 South Mtn, PHX 31
15 KNXV 476 482 South Mtn, PHX 31
17 KPHO 488 494 South Mtn, PHX 31
20 KPAZ 506 512 South Mtn, PHX 31
22 KNAZ 518 524 Mormon Mountain 158
24 KTVK 530 536 South Mtn, PHX 31
26 KUTP 542 548 South Mtn, PHX 31
30 KUAT 566 572 Mt Bigelow 174
31 KSAZ 572 578 South Mtn, PHX 31
33 KTVW 584 590 South Mtn, PHX 31
35 KFPH 596 602 South Mtn, PHX 31
36 KAZT 602 608 South Mtn, PHX 31
38 K38IZ-D 614 620 South Mtn, PHX 31
39 KTAZ 620 626 South Mtn, PHX 31
40 KEJR-LD 626 632 South Mtn, PHX 31
41 KPDF-CA 632 638 South Mtn, PHX 31
42 KVPA-LD 638 644 South Mtn, PHX 31
44 K44CN-D 650 656 Mingus Mtn 122
45 K45MW-D 656 662 Sentinel, AZ 143
46 KDPH-LD 662 668 South Mtn, PHX 31
47 KDFQ-LP 668 674 Mingus Mtn 122
48 K48NH-D 674 680 Globe 104
49 KASW 680 686 South Mtn, PHX 31
50 KFPB-LD 686 692 South Mtn, PHX 31
51 KPPX-TV 692 698 South Mtn, PHX 31

Some of these are a little hard to believe, like the low-power transmitters at Sentinel and Globe. Mingus, Bigelow and Mormon are somewhat more likely…

Measuring the NooElec R820T2 dongle

Triggered by correspondence with a few local hams, I thought I’d try to learn a bit more about the RF characteristics of the NooElec R820T2 SDR dongle. I believe this is the second generation of their SDR dongle, the main difference being the use of the R820T2 instead of the R820 part.


I’d been monitoring the local AZ Department of Public Safety (DPS) channels for some time, but only slowly starting to play with gain settings. As well, I’m using the SDR# software and hadn’t spent much time with it, either, only getting to the point where I’d been able to integrate the auxvfo plugin and be able to listen to multiple radio channels simultaneously. Pretty cool especially when listening to the highway patrol, since they don’t talk much, so there’s not too much overlap when listening to 4 channels in parallel.

So I set the SDR gain to manual by turning off RTL and tuner AGC, and moved the slider to 49.6 dB gain. I then used a signal generator to step through the entire dynamic range of the receiver from the minimum level (actually the minimum level of the signal generator, -135.9 dBm) to beyond the -1 dB compression point. In all, this is a very impressive little radio for the $17.


The plot shows that the receiver is quite linear all the way from -136 dBm input to the -1 dB saturation point at about -65 dBm. The frequency accuracy of this particular dongle requires a +86 ppm oscillator shift, but once the dongle has warmed up, it stays very constant (within 1 ppm).

Something interesting for which I don’t have an explanation right now is the rise in noise floor at about -100 dBm. It’s not a big jump, but it holds constant at about -61 dBFS below -100, and then steps up gradually from there to the top of the range. I eyeballed the noise floor readings only to 1 dB precision, that’s why there’s the apparent step functions – that’s an artifact of the meter!

I was running SDR# at an FFT setting of 65k, Blackman Harris 4, and using a 12.5 kHz receiver bandwidth, order 500.

What was intriguing was that even at the minimum input signal, the SDR was still over 10 dB SNR. In fact, at -135.9 dBm, the leakage into the SDR from the cables was enough that I was seeing the NWS carrier about 290 Hz below the siggen. Not sure which is closer to correct, but in either case, that’s only 1.8 ppm difference.

Did notice that the NWS carrier appears to pull low with increasing audio modulation level – I think that this is a real thing and not something in the SDR. The pull is only 20 Hz or so.


Nice filter for 1090 MHz ADS-B site

Over a year ago I decided that I needed some good filters for ADS-B reception on mountaintops. Not that I had an immediate need, I didn’t have anything on a mountaintop, but I suppose I had a little extra cash and felt excited to be able to imagine a good ADS-B receive site atop an Arizona mountaintop (or hilltop) location. So, I drafted up what I thought would be a reasonable spec and went into Alibaba to find a filter manufacturer to build one. I ended up with 5 filters, all exactly to my spec, and for a bargain price (well, relatively speaking).


Above is the finished ADS-B receiver assembly, complete with Raspberry Pi, RTL-SDR 1ppm TCXO SDR dongle, a eBay-purchased LNA, an eBay-purchased 12 vdc to 5 vdc DC-DC converter, and some coaxial cabling (also from eBay). The black square in the center of the image is the 1090 MHz filter, and it’s a quite good one.


It’s a straightforward cavity filter, a little aluminum brick with fine performance.


Solid out of band rejection, and I suspect around -100 dB ultimate rejection. The SA just doesn’t have the range to see it.


While the signal of interest is only a MHz wide, I wanted a filter that was wider so that temperature and mechanical variation would never haunt me, and I wanted a low bandpass loss (the above shows less than 1 dB loss) across the band.

Behind the filter is a run-of-the-mill eBay wideband LNA with a 1 dB NF, and somewhere around +30 dBm IP3. The RPi is running the most current version of FlightAware’s PiAware, rev 3.0.4, and supports just about any off-the-shelf USB SDR dongle.

After setting it up, it looked like I needed to reduce the overall gain a bit, so I discovered how to go into dump1090 and change the gain from “automatic” (really not, I think it’s just max) to 42 dB. That gave me best range and most received a/c.

The antenna for the site is a FlightAware fiberglass stick, about 12′ above the ground, mounted on the side of the tower.

HeyWhatsThat_30aug16Coverage seems to be pretty close to the model generated by HeyWhatsThat.com (above). The blue line is the 40,000′ contour, while the orange line is the FL300 contour.

24 hours or so of actual flight logs produces the following plot, which is more or less pretty similar to the HeyWhatsThat plot.


The primary notch in the pattern, in the SE, is the higher part of the ridge on which the radio site sits. It ends up blocking any coverage of flights in and out of Tucson, over 110 miles away, until said flights get to FL300 or so.

It will be interesting to see how the coverage shapes out over the next few weeks – I hope that it will get up near the top of all the local receive sites in performance.

Update on acarsdec reception

A few posts ago, I mentioned I’d set up acarsdec on a Raspberry Pi and a USB RTL-SDR dongle. Written by Thierry Leconte F4DWV, it’s a very nice lightweight ACARS decoder that puts a relatively small load on the RPi. A detailed writeup on installing and using acarsdec states that it can handle up to 4 receive channels and with a maximum frequency spread of 1 MHz.

I found that handling 5 channels doesn’t push the CPU load too high. Tonight I found that going beyond the 1 MHz separation barrier, at least a little bit, doesn’t cause any obvious issues either. I’ve even pushed it to 8 channels, that seems to be the absolute limit, while still getting under 80% CPU usage on my RPi 2 model B. However, the error rate becomes extremely high with many messages being lost.

There are a lot of frequencies assigned for ACARS use. While there are many sites that seem to show a number of frequencies, I’ve found that a combination of acarsd.org and radioreference.com make for what seems to be the most comprehensive list.

Freq (MHz) acarsd RR

While this is a big list, it seems that what traffic there is is scattered over just a few channels. Here in Phoenix, I hear the vast majority of all ACARS messages on either 130.025 or 136.850 MHz.  There’s some occasional stuff on 131.550, which is supposed to be the primary worldwide frequency, but it pales in comparison to the aforementioned pair. Some of the above channels are claimed to be airline-company specific, but to date I haven’t observed any evidence of that, even with over 2000 flights a day passing through my reception range.

Those two channels are way too far apart for acarsdec to decode them both in one instance. However, with two dongles I can listen to several frequencies in the low part of the band and also in the high part. I haven’t tried that yet, and I suspect it won’t work due to the CPU load with the current RPi.

There are other things that I can do first, which includes resurrecting my homebrew VHF turnstile antenna and putting an LNA/airband filter combo up on the roof right behind the antenna. That alone should help improve my reception since I’ve got about 20 m of coaxial cable between the antenna and the RTL-SDR dongle. As well, the dongle doesn’t have the greatest front end or sensitivity, so an LNA/filter can help with that as well as negating the cable loss.