So I have been trying to pipe UAT data into Virtual Radar Server (VRS) and found it doesn’t like UAT data and only likes ADS-B, Mode-S or MLAT data. When connecting to dump978-fa’s Basestation port of 30978, it would get messages, but not decode any messages from it. If it told to to connect to JSON output at 30979, i would get nothing but a connection.
I saw the mutability fork of dump978 had a program called uat2esnt bundled with it, which dump978-fa seems to not include. It has a simple operation on how to pipe dump978’s output into it, and use nc to pipe it to your local dump1090 instance, but not in PiAware’s SD Card image. So I dug and figure out how to get this working.
1. Build Dump978 (You will only be using uat2esnt from it so it wont mess up your current install. It clones github repo and builds the program. It also gives permission to execute the newly build uat2esnt program).
cd ~
mkdir builds
git clone GitHub - mutability/dump978: Experimental demodulator/decoder for UAT on 978MHz
cd dump978
make
chmod +x uat2esnt
2. Modify Dump978 Setup Script (This was the hard part, finding how dump978 is started. We are making a backup copy first just in case) (THIS CAN BE DONE A LOT EASIER SKIP TO END TO SEE)
sudo cp /usr/share/dump978-fa/start-dump978-fa /usr/share/dump978-fa/start-dump978-fa.bac
sudo nano /usr/share/dump978-fa/start-dump978-fa
Change From:
To:
exec /usr/bin/dump978-fa
$RECEIVER_OPTIONS $DECODER_OPTIONS $NET_OPTIONS |
./home/pi/builds/dump978/uat2esnt |
nc -l -k -p 30977
“$@”
CTRL-O to write the file, then CTRL-X to exit Nano.
sudo systemctl restart dump978-fa.service
This restarts the service, or just reboot the system with:
sudo reboot
That’s it!!
Note, you can change the options for nc. I have it outputting the AVR / BEAST output to port 30977. You can change this to any port you want. There’s other fancier stuff you can do with nc like push the data to your server, but for most software you want to just serve it from your Pi.
I haven’t 100% tested this yet but it should do it. There’s a local flight school nearby that usually has a lot of UAT (10-30 flights a day) traffic, but with the holiday (Mothers Day) and a lot of rain, I have not received any UAT data to verify this.
EDIT
After Step 1, it is MUCH MUCH easier to simply just ran this one-liner rather than modify PiAware’s settings. Do this instead of step 2.
nc -q -1 127.0.0.1 30978 | exec /home/pi/builds/dump978/uat2esnt | nc -l -k -p 30977
This listens to your Pi’s 30978 port output, feeds it to uat2esnt, then outputs AVR format on port 30977. I will try and make a more elegant solution with some loops and whiles incase of disconnects but down and dirty it does the simple trick.