978 Mhz UAT in the US

I haven’t done it myself, but I believe that’s part of what the Stratux project does.

github.com/cyoung/stratux

How far are you from the FAA ground station, BartJR? Look like my nearest one is about 50 km away so I’m guessing there’s no way. Though I do have a nice 930 MHz Yagi I could try at 978.

Looking through the source code of Stratux briefly, it appears it does have code to decode the text-based products, but it passes graphical information to another program (typically commercial software on an Android or iPad) to render on a map. The text, eg. a NOTAM, is a mostly straightforward packing into 6 bits per character (4 characters per 3 bytes) using a custom 64 character set.

110km/68mi! There are no hills or tall buildings in the way, and I am 100m above the ground station elevation, so that must help. Now that I know reception is possible, I may try to buy/build a Yagi or at least add a reflector.

And yeah I was perusing Stratux’s source too. If I ever achieve consistent reception I’ll have to try incorporating their text decoder.

Texas is actually pretty well covered, and no hills like I have to deal with. The lat/lon decoded in the packet you received matches “TX023” just north of Schulenburg, TX on the map I have. There is also a ground station at the San Marcos airport and one on a radio tower north of Round Rock. They may not all transmit FIS-B though.

Hmm, both of those are less than half the distance from my house as Schulenberg is. I may be able to get San Marcos though the line of sight is not as clear. The view north to RR/Georgetown is obstructed with several taller hills in the way. I wonder if all ground stations broadcast at the same power?

For those looking for a detailed map of station locations, I found this handy kml on eaaforums.org: dl.dropboxusercontent.com/u/589 … points.kml

Try www.heywhatsthat.com to see if you are likely to have line of sight.
It is better for up in the air stuff but may give you an idea.

I’ve had my setup running for a few weeks now.

I have a relatively new dongle (TCXO/shielded), I had started with the Cantenna and then tried a DPD antenna.

I have observed a few unexpected behaviors and was wondering if others observed the same…

. Aircraft data comes in bursts. I see 10 to 20 aircraft spread around the area with position updates every few seconds for 10 minutes. Then nothing for a half hour or more. Then 5 aircraft around the area with position updates every few seconds for a few minutes. Then nothing. I’ll see this cycle through most of the day. If the tracking data was coming directly from the aircraft I’d expect to see the number of messages/aircraft to go up and down as aircraft go in and out of range, not go from 10 aircraft to zero all at once. I added some simple instrumentation to uat2json to see the total count of uplink and downlink messages. I reliably see 3 uplink messages every second.

. I occasionally get downlink messages from jets at 35+ thousand feet from 500 to 2000 miles away.

A few questions…

. Do other see similar behavior?

. What are the propagation properties of UAT/978Mhz?

. Are downlink messages repeated? Is there a way to differentiate them from direct messages?

. Does something trigger downlink messages to be broadcast/rebroadcast?

Thanks!

– Ken

Downlink messages are periodically transmitted; there’s no retransmission as such.

“downlink” is something of a poor name for the messages. They are aircraft state messages. They can come direct from a 978-out equipped aircraft, but they can also come from a ground station that is providing TIS-B services (radar track info and rebroadcasts of messages from 1090ES-out equipped aircraft).

Uplink messages are sent only by ground stations and carry FIS-B which is METARs, weather radar, etc. If you can see uplink messages then you probably have line of sight to a ground station.

You are probably seeing TIS-B from that ground station; it comes and it goes because TIS-B is only sent on demand for the area around a 978-in-out equipped aircraft. You can probably distinguish TIS-B from direct messages by looking at the address qualifier in the messages.

@obj scanning the log you are spot on. The aircraft state messages addresses are a mix of : (ICAO address via TIS-B) and (TIS-B track file address).

Thanks.

– Ken

There is also ads-r.

This is where UAT978 traffic is re-broadcast to 1090ES and vice versa.
There may also be some hockey puck limitations, however, they may plan on removing this so that non-broadcasting aircraft can use it.

faa.gov/nextgen/programs/adsb/faq/#30
aopa.org/News-and-Video/All- … ble-to-all
avidyne.com/landing/ads-bee/ … b.asp#adsr

I wonder if there is a simple way to “tag” uat978 traffic so we can differentiate it.
I see stuff in my log but have no idea if it even gets to FA.

I can confirm. Out of all the transponders I’ve installed in the last four years - Not ONE UAT. Not yet, anyway. Many Trig, BK and Garmin ADSB transponders, not one of them UAT.

Most of our customers, this far north, are afraid of losing access to Canada if they’re NOT 1090 equipped and it looks like they may be justified in believing that. Since UAT, in their eyes, means they have to have a dual-band, which is disproportionately expensive (for now).

Just a data point. Any other avionics installers care to chime in, I’d love to hear about it.

Is anyone still working on this? I am interested in 978 primarily. Any advice about the install would be appreciated.

To install dump978 by J Prochazka’s automated script:

sudo apt-get update
sudo apt-get install git
git clone https://github.com/jprochazka/adsb-receiver.git
cd ~/adsb-receiver
chmod +x install.sh
./install.sh

For details, see this post:

Yes, dump978 seems to work. Prochazka’s script works, there is also a simpler one at Adding a 978 Mhz Receiver - ADS-B Exchange

I don’t think there is a way to feed 978-only to FA or other aggregators. Once you have dump978 running as indicated by the text output provided in the article above, you start uat2esnt that translates the 978 packets into the format generated by dump1090. I am running piaware with two RTL-SDR dongles, 0 is grabbed by dump1090 and 1 is specified in the setup for dump978. That’s running on my box now, I haven’t had time to confirm that it’s actually routing 978 packets. There are only a few 978 aircraft so far, mostly piston singles.

If someone really wants a 978 UAT only system feeding Flightaware, it can be done. Install dump1090-mutability and configure it as Net Only (via “sudo dpkg-reconfigure dump1090-mutability”). Install dump978 and it up the chain to forward the data to dump1090 with a script to restart it if something fails.
rtl_sdr -d (dongle serial number here, default 0) -f 978000000 -s 2083334 -g (gain) - | dump978 | uat2esnt | /bin/nc -q1 127.0.0.1 30001
Then install and configure piaware. Disable MLAT. With that said, if you’re also feeding 1090 data, it doesn’t make sense to do this because you can send that 978 data to the existing 1090 system with no negative effects. (Change the IP above if feeding a remote system and make sure the receiving dump1090 system is configured to accept data on it’s network accessible IP address[es]).

N456TS, that’s great, thanks. We want to be able to identify which aircraft are 978 and which are 1090.

N456TS, I set an additional Pi up as a stand-alone 978 UAT a month ago using Joe’s scripts using net-only on dump1090-mutability and so far it hasn’t needed the restart script. Not quite sure why but it hasn’t missed a beat.
https://flightaware.com/adsb/stats/user/Dunnsville#stats-62404

Glad to hear it’s working!

I am using TWO dongles attached to my Pi3, one for ADS-B and the other for 978 UAT. Set up using Joe’s script.

1 Like