I started this with the idea of building a SkyView ADSBx feeder with ease. Unfortunately, FlightAware has purposely made it difficult to setup a feeder that doesn't feed FlightAware using PiAware. It is not hard but it does take a lot of steps. We will use nano as our editor in terminal. Frustrations expressed during this tutorial are my own views on Oliver being employed by FlightAware for some time and not the views of ADSBx. ~ James By the end. you will have a dump1090 FlightAware Skyview that feeds ADSBx. First: Getting Raspbian Running https://www.raspberrypi.org/downloads/raspbian/ This was created using Raspbian Stretch Lite. Desktop will also work. Unzip the zip file to an .img file and write it to your SD card using etcher.io. https://etcher.io/ Takes 10-15 minutes to write the disk image to the SD card. Once it is complete, you will see the written SD card on Windows. Eject it. Connect a monitor and keyboard to Pi, put the SD card in it. Power it. You'll get a bunch of text and eventually login prompt. Default username and password is: pi raspberry Then you'll get a login prompt, if you didn't mess up. [email protected]:~ $ _ [OPTIONAL: SKIP IF NO WIFI, USING ETHERNET] If you are ever going to use Wi-fi at current location, let's get it setup. You can always do this later if you are hard wired. sudo raspi-config Type what is above and hit Enter on keyboard. You will be greeted with a menu. Choose with arrow keys. Network Options Hit Enter Wi-fi Hit enter, it will ask you to select your country, SSID, and password. Wifi will be setup and you will be sent back out to the main menu. Hit Tab twice to get to Finish and hit Enter on keyboard. Phew! Back to the command prompt. Type clear and hit Enter on keyboard. Let's also enable ssh sudo touch /boot/ssh And reboot. sudo shutdown -r now From here on out having putty on Windows working or being able to ssh into the Pi will make your life much easier. You will be able to copy paste the commands and not deal with typos. Second: Installing Dump1090 I'm going to assume that you know to hit Enter after I give commands in italics. There are many options for dump1090. There is the original, Malcom, et all forks, there is mutability 1.15, and there is FlightAware SkyView. All work the same but have different user interfaces. Update Raspbian & Install drivers rtl-sdr: Make sure we are updated. sudo apt update sudo apt upgrade You may be prompted to hit Y to confirm. sudo apt install -y rtl-sdr Install Dump1090 (SkyView) This is where things start to get a little more complicated. We're going to compile dump1090 from the source code on github. -- Unfortunately FlightAware (or Oliver aka mutability) has stopped work on dump1090 that isn't FlightAware branded. Good for Oliver to get employment from FlightAware! Oliver used to release a .deb package to make install easy, but that has even stopped. Thanks FlightAware! Not! <circa 1990> Oh well. Such is life these days when a company thinks they own all the ADS-B data in the world. I suspect that in the future they will make is even more difficult to get things working without using PiAware or FlightAware code. -- https://github.com/flightaware/dump1090 Commands to make this get done. sudo apt install -y git debhelper cmake doxygen libtecla-dev libusb-1.0-0-dev libncurses5-dev help2man pandoc Then we wait .... cd /home/pi sudo apt-get install -y librtlsdr-dev git clone https://github.com/flightaware/dump1090.git cd dump1090 make BLADERF=no And then we wait as text scrolls by .... Let's create a startup script for dump1090. cd /home/pi nano start-dump1090.sh Replace <latitude> and <longitude> with your latitude and longitude. Code: #!/bin/bash LATITUDE=<latitude> LONGITUDE=<longitude> mkdir /var/run/dump1090-data while true do /home/pi/dump1090/dump1090 --quiet --gain -10 --modeac --net --lat $LATITUDE --lon $LONGITUDE --write-json /var/run/dump1090-data > /dev/null sleep 10 done CRTL+O to save/write and make it executable. chmod +x start-dump1090.sh Let's make dump1090 start on boot using the old school method of rc.local. sudo nano /etc/rc.local Code: #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi /home/pi/start-dump1090.sh & exit 0 CTRL+O to write/save with nano. Reboot and see if it worked. sudo shutdown -r now At this point you have a working ADS-B receiver outputting Beast/AVR on port 30005 and Basestation on 30003! Third: Feeding ADSBx This is the easiest part. Login to the Pi again however you are doing it, either ssh, putty, mouse and keyboard. nc localhost 30003 You should see Basestation output. Hopefully you are in a busy airspace. MSG,8,1,1,A24757,1,2018/10/17,02:45:39.606,2018/10/17,02:45:41.124,,,,,,,,,,,, MSG,7,1,1,A24757,1,2018/10/17,02:45:41.073,2018/10/17,02:45:41.124,,8825,,,,,,,,,, MSG,8,1,1,A24757,1,2018/10/17,02:45:41.835,2018/10/17,02:45:41.888,,,,,,,,,,,, MSG,8,1,1,A6515B,1,2018/10/17,02:45:42.610,2018/10/17,02:45:42.655,,,,,,,,,,,, MSG,8,1,1,A6515B,1,2018/10/17,02:45:42.641,2018/10/17,02:45:42.661,,,,,,,,,,,, MSG,7,1,1,A6515B,1,2018/10/17,02:45:43.551,2018/10/17,02:45:43.585,,2025,,,,,,,,,, MSG,8,1,1,A6515B,1,2018/10/17,02:45:43.571,2018/10/17,02:45:43.590,,,,,,,,,,,, MSG,7,1,1,A6515B,1,2018/10/17,02:45:43.873,2018/10/17,02:45:43.912,,2025,,,,,,,,,, CTRL+C to close netcat Install ADSBx git clone https://github.com/adsbxchange/adsb-exchange.git cd adsb-exchange chmod +x setup.sh sudo ./setup.sh NOTICE: LEAVE NOTHING BLANK. You must fill in each field or your feeder won't work. First screen. Yes. Hit Enter. Second screen. Type a name for feeder. Be Creative. It needs to be unique for MLAT server to accept it. Hit Enter. Third screen. Type your latitude. Hit Enter. Fourth screen. Type your longitude. Hit Enter. Fifth screen. Type your altitude. Feet or meters, doesn't matter. Close enough. Hit Enter. Sixth screen. Port. 30005 is anonymous. No other port should be used unless you picked and requested a custom port. Seventh screen. Confirm. Yes. Enter. Task bar progress and 'Setup is now complete.' screen. Hit Enter. You may get below error. Everything will still work. I am looking into what this is and why it suddenly appeared with the newest Raspbian. It appears to be from Python. Traceback (most recent call last): File "<string>", line 1, in <module> IndexError: list index out of range Reboot. sudo shutdown -r now Optional: IF YOU WANT SkyView Map served from the Pi. sudo apt install -y lighttpd sudo nano /etc/lighttpd/conf-enabled/89-dump1090.conf Code: url.redirect += ( "^/dump1090/$" => "/dump1090/index.html", "^/dump1090$" => "/dump1090/index.html" ) alias.url += ( "/dump1090/data/" => "/run/dump1090-data/", "/dump1090/" => "/home/pi/dump1090/public_html/" ) server.stat-cache-engine = "disable" sudo service lighttpd force-reload A reboot for good measure! sudo shutdown -r now Point a web browser to the IP of the Pi on your network! http://<your_pi_address>/dump1090/index.html And that's it! General Housekeeping. You should change the default login password for the user pi. passwd You can do other things with a Pi, a feeder doesn't use much CPU/RAM.
Joining the ZeroTier ADSBx Network. If you ever need remote help or want me to setup something. https://www.zerotier.com/download.shtml === Quick Setup You should never pipe direct to bash, but sometimes it works in a pinch. === curl -s 'https://pgp.mit.edu/pks/lookup?op=get&search=0x1657198823E52A61' | gpg --import && \ if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi OR curl -s https://install.zerotier.com/ | sudo bash THEN sudo zerotier-cli join c7c8172af18c605f sudo zerotier-cli status sudo zerotier-cli listnetworks Then contact me via https://adsbexchange.com/contact/