Skip to content

Commit

Permalink
Merge pull request #558 from jprochazka/phoenix
Browse files Browse the repository at this point in the history
v2.8.0 (Phoenix)
  • Loading branch information
jprochazka authored Jun 24, 2024
2 parents 099766c + 4bede69 commit 4616206
Show file tree
Hide file tree
Showing 36 changed files with 954 additions and 4,969 deletions.
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,33 @@

The following is a history of the changes made to this project.

## v2.8.0 *(June 24th, 2024)*

### Installers

* The dump1090-fa and piaware_builder install process has been updated to support the latest versions.
* The dump978 script has been rewritten in order to use FlightAwares version of dump978.
* The Beast Splitter script has been updated to work with the current version of Beast Splitter.
* The Flightradar24 script has been updated to work with the current install script.
* The Plane Finder script has been updated to work with current client releases.
* The ADS-B Exchange script has been updated to work with the current install script.
* The ADSB Exchange script has been updated to work with the current install script.
* The OpenSky Feeder script has been updated to work with the current install script.
* Version check for dump1090-fa has been fixed.
* Fix bug where PiAware was installed every run even if already installed.
* Removed the unattended install option for the time being.
* Removed the option to install dump1090-mutability.
* Removed the option to install dump1090 HPTOA.
* Removed the option to install AboveTustin.
* Removed the option to install ADSBHub support due to the fact it was incomplete.
* Removed incomplete RTL-SDR OGN setup scripting.

### Portal

* The portal install scripts have been updated to work on current operation systems.
* All portal related Python scripts have been updated to work with Python 3.
* TinyMCE has been replace by CKeditor in the portal.

## v2.7.2 *(prerelease)*

* Updated current PiAware and dump1090-fa versions to 3.9.3.
Expand Down
4 changes: 1 addition & 3 deletions CREDITS.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,12 @@ is being used to develop the portal portion of this project. https://www.jetbrai
I would also like to thank the developers and contributors to the following projects. Without their
hard work and dedication this project would not have been possible.

* Dump1090 (mutability): https://github.com/mutability/dump1090
* Dump1090 (fa): https://github.com/flightaware/dump1090
* Dump978: https://github.com/mutability/dump978
* Dump978 (fa): https://github.com/flightaware/dump978
* FlightAware's PiAware: http://flightaware.com
* Plane Finder ADS-B Client: https://planefinder.net
* Flightradar24 Client: https://www.flightradar24.com
* Dump1090-Tools: https://github.com/mutability/dump1090-tools
* AboveTustin https://github.com/kevinbrandon/abovetustin
* Beast-Splitter https://github.com/flightaware/beast-splitter
* bootpag http://botmonster.com/jquery-bootpag
* Bootstrap: http://getbootstrap.com/
Expand Down
40 changes: 13 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
<img src="http://assets.jacobwall.netdna-cdn.com/adsb-receiver_logo.png" width="465" height="135" />

# The ADS-B Receiver Project :airplane:

This repository contains a set of scripts and files which can be used to setup an ADS-B receiver on a clean installation of a Debian derived operating system. The scripts are executed in order by the main install script depending on the installation options chosen by the user.
Expand All @@ -16,23 +14,10 @@ This repository contains a set of scripts and files which can be used to setup a
* Informs visitors when specific flights are being tracked by dump1090.
* Easily customize the look of your portal using the template system.

**Web Portal Screenshots**

![dump1090 GIF](http://assets-jacobwall.netdna-ssl.com/adsbreceiver_readme.gif)

<img src="http://assets.jacobwall.netdna-cdn.com/adsb-receiver_live_dump1090.png" width="600" height="308" />

<img src="http://assets.jacobwall.netdna-cdn.com/adsb-receiver_performance_graphs.png" width="600" height="535" />

**Please note:** As of February 2016, the scripts do not work when run on an SD card where the current PiAware image was installed. The scripts require a clean installation of a Debian derived operating system.

The ADS-B Receiver Project website is located at https://www.adsbreceiver.net.

### Obtaining And Using This Software

Download the latest ADS-B Receiver Raspbian Stretch Lite image for Raspberry Pi devices.
https://github.com/jprochazka/adsb-receiver/releases/latest

When setting up the portal you will have to choose between a lite or advanced installation. Advanced features adds flight logging and plotting and should only be chosen on devices running a more sturdy data storage solution.

*It is recommended that anyone using a SD card as they storage medium not attempt to use the advanced features.*
Expand Down Expand Up @@ -67,33 +52,34 @@ The following software can be installed using these scripts.

**Decoders**

* Dump1090 (mutability): https://github.com/mutability/dump1090
* Dump1090 (FlightAware): https://github.com/flightaware/dump1090
* Dump978: https://github.com/mutability/dump978
* Dump978 (FlightAware): https://github.com/mutability/dump978

**Site Feeders**

* FlightAware's PiAware: http://flightaware.com
* Flightradar24 Feeder Client: http://flightradar24.com
* ADS-B Exchange: https://adsbexchange.com
* FlightAware's PiAware: https://flightaware.com
* Flightradar24 Feeder Client: https://flightradar24.com
* OpenSky Feeder: https://opensky-network.org
* Plane Finder ADS-B Client: https://planefinder.net
* ADS-B Exchange: http://adsbexchange.com

**Extras**

* ADS-B Receiver Project Portal: https://www.adsbreceiver.net
* AboveTustin: https://github.com/kevinabrandon/AboveTustin
* Beast-Splitter: https://github.com/flightaware/beast-splitter
* DuckDNS.org Support: http://www.duckdns.org/
* DuckDNS.org Support: https://www.duckdns.org/

### Supported Operating Systems

The scripts and packages have been tested on most Debian Jessie and Stretch based operating systems.
The project currently supports the following Linux distributions.

The scripts are NOT supported on existing PiAware *image based* installations. The PiAware image is still based on Raspbian Wheezey version which is missing some required libraries for dump1090-mutability installation.
* Debian Bookworm
* Debian Bullseye
* Rasbperry PI OS (Bookworm)
* Rasbperry PI OS Legacy (Bullseye)

### Useful Links

- Website - https://www.adsbreceiver.net/
- Forum - https://adsb.discourse.group/
- Wiki - https://github.com/jprochazka/adsb-receiver/wiki
- GitHub Repository - https://github.com/jprochazka/adsb-receiver
- GitHub Wiki - https://github.com/jprochazka/adsb-receiver/wiki
- Changelog - https://github.com/jprochazka/adsb-receiver/blob/master/CHANGELOG.md
125 changes: 52 additions & 73 deletions bash/decoders/dump1090-fa.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# Copyright (c) 2015-2016 Joseph A. Prochazka #
# Copyright (c) 2015-2024 Joseph A. Prochazka #
# #
# Permission is hereby granted, free of charge, to any person obtaining a copy #
# of this software and associated documentation files (the "Software"), to deal #
Expand All @@ -31,66 +31,49 @@
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

### VARIABLES

RECEIVER_ROOT_DIRECTORY="${PWD}"
RECEIVER_BASH_DIRECTORY="${RECEIVER_ROOT_DIRECTORY}/bash"
RECEIVER_BUILD_DIRECTORY="${RECEIVER_ROOT_DIRECTORY}/build"

### INCLUDE EXTERNAL SCRIPTS

source ${RECEIVER_BASH_DIRECTORY}/variables.sh
source ${RECEIVER_BASH_DIRECTORY}/functions.sh

## SET INSTALLATION VARIABLES

# Source the automated install configuration file if this is an automated installation.
if [[ "${RECEIVER_AUTOMATED_INSTALL}" = "true" ]] && [[ -s "${RECEIVER_CONFIGURATION_FILE}" ]] ; then
source ${RECEIVER_CONFIGURATION_FILE}
else
DUMP1090_BING_MAPS_KEY=`GetConfig "BingMapsAPIKey" "/usr/share/dump1090-mutability/html/config.js"`
fi

### BEGIN SETUP

if [[ "${RECEIVER_AUTOMATED_INSTALL}" = "false" ]] ; then
clear
echo -e "\n\e[91m ${RECEIVER_PROJECT_TITLE}"
fi
clear
echo -e "\n\e[91m ${RECEIVER_PROJECT_TITLE}"
echo ""
echo -e "\e[92m Setting up dump1090-fa..."
echo ""
echo -e "\e[93m ------------------------------------------------------------------------------\e[96m"
echo ""
if [[ "${RECEIVER_AUTOMATED_INSTALL}" = "false" ]] ; then
whiptail --backtitle "${RECEIVER_PROJECT_TITLE}" --title "Dump1090-fa Setup" --yesno "Dump 1090 is a Mode-S decoder specifically designed for RTL-SDR devices. Dump1090-fa is a fork of the dump1090-mutability version of dump1090 that is specifically designed for FlightAware's PiAware software.\n\nIn order to use this version of dump1090 FlightAware's PiAware software must be installed as well.\n\n https://github.com/flightaware/dump1090\n\nContinue setup by installing dump1090-fa?" 14 78
if [[ $? -eq 1 ]] ; then
# Setup has been halted by the user.
echo -e "\e[91m \e[5mINSTALLATION HALTED!\e[25m"
echo -e " Setup has been halted at the request of the user."
echo ""
echo -e "\e[93m ------------------------------------------------------------------------------"
echo -e "\e[92m Dump1090-fa setup halted.\e[39m"
echo ""
read -p "Press enter to continue..." CONTINUE
exit 1
fi
whiptail --backtitle "${RECEIVER_PROJECT_TITLE}" --title "Dump1090-fa Setup" --yesno "Dump 1090 is a Mode-S decoder specifically designed for RTL-SDR devices. Dump1090-fa is a fork of the dump1090-mutability version of dump1090 that is specifically designed for FlightAware's PiAware software.\n\nIn order to use this version of dump1090 FlightAware's PiAware software must be installed as well.\n\n https://github.com/flightaware/dump1090\n\nContinue setup by installing dump1090-fa?" 14 78
if [[ $? -eq 1 ]] ; then
# Setup has been halted by the user.
echo -e "\e[91m \e[5mINSTALLATION HALTED!\e[25m"
echo -e " Setup has been halted at the request of the user."
echo ""
echo -e "\e[93m ------------------------------------------------------------------------------"
echo -e "\e[92m Dump1090-fa setup halted.\e[39m"
echo ""
read -p "Press enter to continue..." CONTINUE
exit 1
fi

## CHECK FOR PREREQUISITE PACKAGES

echo -e "\e[95m Installing packages needed to build and fulfill dependencies...\e[97m"
echo ""
CheckPackage build-essential
CheckPackage fakeroot
CheckPackage debhelper
CheckPackage librtlsdr-dev
CheckPackage libusb-1.0-0-dev
CheckPackage pkg-config
CheckPackage dh-systemd
CheckPackage libncurses5-dev
CheckPackage libbladerf1
CheckPackage libncurses-dev
CheckPackage libbladerf-dev
CheckPackage adduser
CheckPackage libhackrf-dev
CheckPackage liblimesuite-dev
CheckPackage libsoapysdr-dev
CheckPackage lighttpd
echo ""

## DOWNLOAD OR UPDATE THE DUMP1090-FA SOURCE

Expand Down Expand Up @@ -121,10 +104,8 @@ fi
echo ""
echo -e "\e[95m Building and installing the dump1090-fa package...\e[97m"
echo ""
if [[ ! "${PWD}" = "${RECEIVER_BUILD_DIRECTORY}/dump1090-fa/dump1090" ]] ; then
echo -e "\e[94m Entering the dump1090-fa git repository directory...\e[97m"
cd ${RECEIVER_BUILD_DIRECTORY}/dump1090-fa/dump1090 2>&1
fi
echo -e "\e[94m Entering the dump1090-fa git repository directory...\e[97m"
cd ${RECEIVER_BUILD_DIRECTORY}/dump1090-fa/dump1090 2>&1
echo -e "\e[94m Building the dump1090-fa package...\e[97m"
echo ""
dpkg-buildpackage -b
Expand All @@ -133,6 +114,7 @@ echo -e "\e[94m Entering the dump1090-fa build directory...\e[97m"
cd ${RECEIVER_BUILD_DIRECTORY}/dump1090-fa 2>&1
echo -e "\e[94m Installing the dump1090-fa package...\e[97m"
echo ""
echo "dump1090-fa_${DUMP1090_FA_VERSION}_*.deb"
sudo dpkg -i dump1090-fa_${DUMP1090_FA_VERSION}_*.deb

# Check that the package was installed.
Expand Down Expand Up @@ -166,66 +148,63 @@ fi
echo -e "\e[94m Moving the dump1090-mutability binary package into the archive directory...\e[97m"
echo ""
cp -vf ${RECEIVER_BUILD_DIRECTORY}/dump1090-fa/*.deb ${RECEIVER_BUILD_DIRECTORY}/package-archive/ 2>&1

echo ""

## DUMP1090-FA POST INSTALLATION CONFIGURATION

# Ask for a Bing Maps API key.
if [[ "${RECEIVER_AUTOMATED_INSTALL}" = "false" ]] ; then
DUMP1090_BING_MAPS_KEY=$(whiptail --backtitle "${RECEIVER_PROJECT_TITLE}" --title "Bing Maps API Key" --nocancel --inputbox "\nProvide a Bing Maps API key here to enable the Bing imagery layer.\nYou can obtain a free key at https://www.bingmapsportal.com/\n\nProviding a Bing Maps API key is not required to continue." 11 78 "${DUMP1090_BING_MAPS_KEY}" 3>&1 1>&2 2>&3)
fi
DUMP1090_BING_MAPS_KEY=$(whiptail --backtitle "${RECEIVER_PROJECT_TITLE}" --title "Bing Maps API Key" --nocancel --inputbox "\nProvide a Bing Maps API key here to enable the Bing imagery layer.\nYou can obtain a free key at https://www.bingmapsportal.com/\n\nProviding a Bing Maps API key is not required to continue." 11 78 "${DUMP1090_BING_MAPS_KEY}" 3>&1 1>&2 2>&3)
if [[ -n "${DUMP1090_BING_MAPS_KEY}" ]] ; then
echo -e "\e[94m Setting the Bing Maps API Key to ${DUMP1090_BING_MAPS_KEY}...\e[97m"
ChangeConfig "BingMapsAPIKey" "${DUMP1090_BING_MAPS_KEY}" "/usr/share/dump1090-fa/html/config.js"
fi

# Download Heywhatsthat.com maximum range rings.
if [[ ! -f "/usr/share/dump1090-fa/html/upintheair.json" ]] ; then
if [[ "${RECEIVER_AUTOMATED_INSTALL}" = "false" ]] ; then
if (whiptail --backtitle "${RECEIVER_PROJECT_TITLE}" --title "Heywhaststhat.com Maximum Range Rings" --yesno "Maximum range rings can be added to dump1090-fa usings data obtained from Heywhatsthat.com. In order to add these rings to your dump1090-fa map you will first need to visit http://www.heywhatsthat.com and generate a new panorama centered on the location of your receiver. Once your panorama has been generated a link to the panorama will be displayed in the top left hand portion of the page. You will need the view id which is the series of letters and/or numbers after \"?view=\" in this URL.\n\nWould you like to add heywhatsthat.com maximum range rings to your map?" 16 78); then
# Set the DUMP1090_HEYWHATSTHAT_INSTALL variable to true.
DUMP1090_HEYWHATSTHAT_INSTALL="true"
# Ask the user for the Heywhatsthat.com panorama ID.
DUMP1090_HEYWHATSTHAT_ID_TITLE="Heywhatsthat.com Panorama ID"
while [[ -z "${DUMP1090_HEYWHATSTHAT_ID}" ]] ; do
DUMP1090_HEYWHATSTHAT_ID=$(whiptail --backtitle "${RECEIVER_PROJECT_TITLE}" --title "${DUMP1090_HEYWHATSTHAT_ID_TITLE}" --nocancel --inputbox "\nEnter your Heywhatsthat.com panorama ID." 8 78 3>&1 1>&2 2>&3)
DUMP1090_HEYWHATSTHAT_ID_TITLE="Heywhatsthat.com Panorama ID (REQUIRED)"
done
# Ask the user what altitude in meters to set the first range ring.
DUMP1090_HEYWHATSTHAT_RING_ONE_TITLE="Heywhatsthat.com First Ring Altitude"
while [[ -z "${DUMP1090_HEYWHATSTHAT_RING_ONE}" ]] ; do
DUMP1090_HEYWHATSTHAT_RING_ONE=$(whiptail --backtitle "${RECEIVER_PROJECT_TITLE}" --title "${DUMP1090_HEYWHATSTHAT_RING_ONE_TITLE}" --nocancel --inputbox "\nEnter the first ring's altitude in meters.\n(default 3048 meters or 10000 feet)" 8 78 "3048" 3>&1 1>&2 2>&3)
DUMP1090_HEYWHATSTHAT_RING_ONE_TITLE="Heywhatsthat.com First Ring Altitude (REQUIRED)"
done
# Ask the user what altitude in meters to set the second range ring.
DUMP1090_HEYWHATSTHAT_RING_TWO_TITLE="Heywhatsthat.com Second Ring Altitude"
while [[ -z "${DUMP1090_HEYWHATSTHAT_RING_TWO}" ]] ; do
DUMP1090_HEYWHATSTHAT_RING_TWO=$(whiptail --backtitle "${RECEIVER_PROJECT_TITLE}" --title "${DUMP1090_HEYWHATSTHAT_RING_TWO_TITLE}" --nocancel --inputbox "\nEnter the second ring's altitude in meters.\n(default 12192 meters or 40000 feet)" 8 78 "12192" 3>&1 1>&2 2>&3)
DUMP1090_HEYWHATSTHAT_RING_TWO_TITLE="Heywhatsthat.com Second Ring Altitude (REQUIRED)"
done
fi
if (whiptail --backtitle "${RECEIVER_PROJECT_TITLE}" --title "Heywhaststhat.com Maximum Range Rings" --yesno "Maximum range rings can be added to dump1090-fa usings data obtained from Heywhatsthat.com. In order to add these rings to your dump1090-fa map you will first need to visit http://www.heywhatsthat.com and generate a new panorama centered on the location of your receiver. Once your panorama has been generated a link to the panorama will be displayed in the top left hand portion of the page. You will need the view id which is the series of letters and/or numbers after \"?view=\" in this URL.\n\nWould you like to add heywhatsthat.com maximum range rings to your map?" 16 78); then
# Set the DUMP1090_HEYWHATSTHAT_INSTALL variable to true.
DUMP1090_HEYWHATSTHAT_INSTALL="true"

# Ask the user for the Heywhatsthat.com panorama ID.
DUMP1090_HEYWHATSTHAT_ID_TITLE="Heywhatsthat.com Panorama ID"
while [[ -z "${DUMP1090_HEYWHATSTHAT_ID}" ]] ; do
DUMP1090_HEYWHATSTHAT_ID=$(whiptail --backtitle "${RECEIVER_PROJECT_TITLE}" --title "${DUMP1090_HEYWHATSTHAT_ID_TITLE}" --nocancel --inputbox "\nEnter your Heywhatsthat.com panorama ID." 8 78 3>&1 1>&2 2>&3)
DUMP1090_HEYWHATSTHAT_ID_TITLE="Heywhatsthat.com Panorama ID (REQUIRED)"
done

# Ask the user what altitude in meters to set the first range ring.
DUMP1090_HEYWHATSTHAT_RING_ONE_TITLE="Heywhatsthat.com First Ring Altitude"
while [[ -z "${DUMP1090_HEYWHATSTHAT_RING_ONE}" ]] ; do
DUMP1090_HEYWHATSTHAT_RING_ONE=$(whiptail --backtitle "${RECEIVER_PROJECT_TITLE}" --title "${DUMP1090_HEYWHATSTHAT_RING_ONE_TITLE}" --nocancel --inputbox "\nEnter the first ring's altitude in meters.\n(default 3048 meters or 10000 feet)" 8 78 "3048" 3>&1 1>&2 2>&3)
DUMP1090_HEYWHATSTHAT_RING_ONE_TITLE="Heywhatsthat.com First Ring Altitude (REQUIRED)"
done

# Ask the user what altitude in meters to set the second range ring.
DUMP1090_HEYWHATSTHAT_RING_TWO_TITLE="Heywhatsthat.com Second Ring Altitude"
while [[ -z "${DUMP1090_HEYWHATSTHAT_RING_TWO}" ]] ; do
DUMP1090_HEYWHATSTHAT_RING_TWO=$(whiptail --backtitle "${RECEIVER_PROJECT_TITLE}" --title "${DUMP1090_HEYWHATSTHAT_RING_TWO_TITLE}" --nocancel --inputbox "\nEnter the second ring's altitude in meters.\n(default 12192 meters or 40000 feet)" 8 78 "12192" 3>&1 1>&2 2>&3)
DUMP1090_HEYWHATSTHAT_RING_TWO_TITLE="Heywhatsthat.com Second Ring Altitude (REQUIRED)"
done
fi
# If the Heywhatsthat.com maximum range rings are to be added download them now.
if [[ "${DUMP1090_HEYWHATSTHAT_INSTALL}" = "true" ]] ; then
echo -e "\e[94m Downloading JSON data pertaining to the supplied panorama ID...\e[97m"
echo ""
sudo wget -O /usr/share/dump1090-fa/html/upintheair.json "http://www.heywhatsthat.com/api/upintheair.json?id=${DUMP1090_HEYWHATSTHAT_ID}&refraction=0.25&alts=${DUMP1090_HEYWHATSTHAT_RING_ONE},${DUMP1090_HEYWHATSTHAT_RING_TWO}"
echo ""
fi
fi

### SETUP COMPLETE

# Return to the project root directory.
echo ""
echo -e "\e[94m Entering the ADS-B Receiver Project root directory...\e[97m"
cd ${RECEIVER_ROOT_DIRECTORY} 2>&1

echo ""
echo -e "\e[93m ------------------------------------------------------------------------------"
echo -e "\e[92m Dump1090-fa setup is complete.\e[39m"
echo ""
if [[ "${RECEIVER_AUTOMATED_INSTALL}" = "false" ]] ; then
read -p "Press enter to continue..." CONTINUE
fi
read -p "Press enter to continue..." CONTINUE

exit 0
Loading

0 comments on commit 4616206

Please sign in to comment.