PiAware / FlightAware + Debian VM
I just learned about PiAware and since I work literally next to a airport I thought this would be a fun project to try at work during some downtime.
First I needed the hardware, after some research I decided on these two items:
Total cost was around $30. Not bad, however I knew that the antenna range wouldn’t be too good. I might need a noise filter or a larger antenna if I really wanted to get good range. But for a small test and a cheap project this would be fine.
Other then cheap, my other requirement was running this on a Debian VM instead of a Raspberry Pi. I love the Pi (I have many of them), however I already had the infrastructure to use VMs and it would be easier (in my mind). What I found was most readily available information was only for the Pi and not necessarily a base Debian setup.
I started with the net install ISO of Debian 9, choosing only “SSH server” and “standard system utilities”. Once the VM was done and updated, I started to research what I would need to actually install. I knew that the PiAware project worked great, and since Raspbian is based on Debian it should work together but I had no idea. So I started here:
There are three options: “Getting started”, “Install PiAware now on an existing Raspberry Pi or Linux computer”, and “Upgrade PiAware Software”. I looked at the first link, but it was literally all Raspberry Pi steps. The second link does say “or Linux computer” and there was just commands so I thought that would be the winner.
The first two commands (on step 2) are to download and install the repo file for apt to use. This went fine, then I ran the ‘sudo apt-get update’ and ran into the first problem:
Skipping acquire of configured file ‘piaware/binary-amd64/Packages’ as repository ‘http://flightaware.com/adsb/piaware/files/packages stretch InRelease’ doesn’t support architecture ‘amd64’
I was using Debian and per the guide that does say (or Linux computer), however the repository I installed did not support amd64. It probably only supports arm – which is what the Raspberry Pi uses. So its clear this guide will not work, however reading on to Step 3 it shows where the program “dump1090” was also needed. Specifically the ‘dump1090-fa’ package. This will be important later.
After several searches for “FlightAware on Debian” or “PiAware Debian Install” I started to branch out. Eventually I found “The ADS-B Receiver Project” on GitHub:
This looks perfect, there are install instructions and it installs the correct packages along with a the dashboard. I should be able to just clone the git repository and execute the install script.
Running through the installer, I got to the “Choose Dump1090 Version To Install”. There are three options:
- dump1090-mutability (Mutability)
- dump1090-fa (FlightAware)
- dump1090-hptoa (OpenSky Network)
Three things went into my decision here, first it says on the page that “to run dump1090-fa PiAware will need to be installed as well”. That sounds promising, since the “-fa” version is FlightAware, and I started this adventure trying to install PiAware. Also, I had purchased FlightAware hardware so I thought I needed to choose this. The final reason was, per the PiAware instructions, the package ‘dump1090-fa’ was needed.
I chose to skip the data feeders since this was just a test and wouldn’t be a permanent install. Everything was going fine, lots of text was on the screen. The build process seemed to be working. Then it stopped with this error:
I’m not too familiar with build errors, so I start searching but quickly realize the key to this problem is at the top of the screenshot:
sdr_bladerf.c:116:76: error: passing argument 3 of ‘bladerf_get_frequency’ from incompatible pointer type [-Werror=incompatible-pointer-types]
Literally only three pages came up:
- https://discussions.flightaware.com/t/cannot-install-piaware-on-orange-pi-zero-plus-allwinner-h5-arm64/37068
- https://github.com/jprochazka/adsb-receiver/issues/471
- https://github.com/srsLTE/srsLTE/issues/220
I tried the steps on the “Bug Fix” GitHub page but that didn’t work. Since I’m not really familiar with this software, or building programs from scratch, I’m just relying on my searching ability and common sense on this one.
I ran into a wall and decided to just simply try the ‘dump1090-mutability’ option instead. Worst case scenario it just wouldn’t work with my hardware right? So the installer runs, asks questions and I answer them. Finally it finishes and after a few steps I’m at the dashboard and then the map.
Overall, the process was not difficult, it was just confusing. I’m sure if I looked hard enough there would be a guide with steps that matched my scenario, but I chose to use the most popular and readily available guides and they did not work. Even now it’s still unclear why there are different versions of dump1090, and why the “mutability” one worked and the “fa” one did not.
tl;dr
Bought FlightAware hardware on Amazon and couldn’t figure the exact software needed to use it on a x86 Debian VM. Got it working with “The ADS-B Receiver Project” on GitHub using the ‘dump1090-mutability’ package.