├── nortl.conf ├── images ├── osn.png ├── parts.jpg ├── dump1090.png ├── assembled.jpg ├── noip-hostname.png ├── parts-labeled.jpg ├── parts-labeled.odg ├── osn-new-sensor.png ├── dump1090-on-localhost.png ├── osn-new-sensor-on-map.png ├── network-configuration-port.png ├── network-configuration-device.png └── network-configuration-dynamic-dns.png ├── setup-kalibrate.sh ├── setup-dump1090.sh ├── setup-rtl-sdr.sh ├── LICENSE ├── dump1090.sh ├── calibration.md └── README.md /nortl.conf: -------------------------------------------------------------------------------- 1 | blacklist dvb_usb_rtl28xxu 2 | blacklist rtl2832 3 | blacklist rtl2830 -------------------------------------------------------------------------------- /images/osn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/highsource/raspberry-pi-adsb/HEAD/images/osn.png -------------------------------------------------------------------------------- /images/parts.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/highsource/raspberry-pi-adsb/HEAD/images/parts.jpg -------------------------------------------------------------------------------- /images/dump1090.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/highsource/raspberry-pi-adsb/HEAD/images/dump1090.png -------------------------------------------------------------------------------- /images/assembled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/highsource/raspberry-pi-adsb/HEAD/images/assembled.jpg -------------------------------------------------------------------------------- /images/noip-hostname.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/highsource/raspberry-pi-adsb/HEAD/images/noip-hostname.png -------------------------------------------------------------------------------- /images/parts-labeled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/highsource/raspberry-pi-adsb/HEAD/images/parts-labeled.jpg -------------------------------------------------------------------------------- /images/parts-labeled.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/highsource/raspberry-pi-adsb/HEAD/images/parts-labeled.odg -------------------------------------------------------------------------------- /images/osn-new-sensor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/highsource/raspberry-pi-adsb/HEAD/images/osn-new-sensor.png -------------------------------------------------------------------------------- /images/dump1090-on-localhost.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/highsource/raspberry-pi-adsb/HEAD/images/dump1090-on-localhost.png -------------------------------------------------------------------------------- /images/osn-new-sensor-on-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/highsource/raspberry-pi-adsb/HEAD/images/osn-new-sensor-on-map.png -------------------------------------------------------------------------------- /images/network-configuration-port.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/highsource/raspberry-pi-adsb/HEAD/images/network-configuration-port.png -------------------------------------------------------------------------------- /images/network-configuration-device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/highsource/raspberry-pi-adsb/HEAD/images/network-configuration-device.png -------------------------------------------------------------------------------- /images/network-configuration-dynamic-dns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/highsource/raspberry-pi-adsb/HEAD/images/network-configuration-dynamic-dns.png -------------------------------------------------------------------------------- /setup-kalibrate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd ~ 3 | sudo apt-get install libtool autoconf automake libfftw3-dev 4 | git clone https://github.com/asdil12/kalibrate-rtl.git 5 | cd kalibrate-rtl 6 | git checkout arm_memory 7 | ./bootstrap 8 | ./configure 9 | make 10 | sudo make install -------------------------------------------------------------------------------- /setup-dump1090.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sudo apt-get install pkg-config 3 | cd ~ 4 | git clone git://github.com/MalcolmRobb/dump1090.git 5 | cd dump1090 6 | make 7 | cd ~/adsb-base-station 8 | sudo cp dump1090.sh /etc/init.d/ 9 | sudo chmod +x /etc/init.d/dump1090.sh 10 | sudo update-rc.d dump1090.sh defaults 11 | read -e -p "OK to reboot the system [Y/n]?" PROCEED 12 | PROCEED="${PROCEED:-${DEFAULT}}" 13 | PROCEED="${PROCEED,,}" 14 | if [ "${PROCEED}" == "y" ] ; then 15 | echo "Rebooting." 16 | sudo reboot 17 | else 18 | echo "Reboot cancelled." 19 | fi -------------------------------------------------------------------------------- /setup-rtl-sdr.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd ~ 3 | sudo apt-get install cmake libusb-1.0-0-dev build-essential 4 | git clone git://git.osmocom.org/rtl-sdr.git 5 | cd rtl-sdr 6 | mkdir build 7 | cd build 8 | cmake ../ -DINSTALL_UDEV_RULES=ON 9 | make 10 | sudo make install 11 | sudo ldconfig 12 | sudo cp rtl-sdr.rules /etc/udev/rules.d/ 13 | cd ~/adsb-base-station 14 | sudo cp nortl.conf /etc/modprobe.d/ 15 | DEFAULT="y" 16 | read -e -p "OK to reboot the system [Y/n]?" PROCEED 17 | PROCEED="${PROCEED:-${DEFAULT}}" 18 | PROCEED="${PROCEED,,}" 19 | if [ "${PROCEED}" == "y" ] ; then 20 | echo "Rebooting." 21 | sudo reboot 22 | else 23 | echo "Reboot cancelled." 24 | fi -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Alexey Valikov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /dump1090.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ### BEGIN INIT INFO 3 | # 4 | # Provides: dump1090 5 | # Required-Start: $remote_fs 6 | # Required-Stop: $remote_fs 7 | # Default-Start: 2 3 4 5 8 | # Default-Stop: 0 1 6 9 | # Short-Description: dump1090 initscript 10 | 11 | # 12 | ### END INIT INFO 13 | ## Fill in name of program here. 14 | PROG="dump1090" 15 | PROG_PATH="/home/pi/dump1090" 16 | PROG_ARGS="--quiet --gain -10 --net --net-beast" 17 | PIDFILE="/var/run/dump1090.pid" 18 | 19 | start() { 20 | if [ -e $PIDFILE ]; then 21 | ## Program is running, exit with error. 22 | echo "Error! $PROG is currently running!" 1>&2 23 | exit 1 24 | else 25 | ## Change from /dev/null to something like /var/log/$PROG if you want to save output. 26 | cd $PROG_PATH 27 | ./$PROG $PROG_ARGS 2>&1 >/dev/null & 28 | echo "$PROG started" 29 | touch $PIDFILE 30 | fi 31 | } 32 | 33 | stop() { 34 | if [ -e $PIDFILE ]; then 35 | ## Program is running, so stop it 36 | echo "$PROG is running" 37 | killall $PROG 38 | rm -f $PIDFILE 39 | echo "$PROG stopped" 40 | else 41 | ## Program is not running, exit with error. 42 | echo "Error! $PROG not started!" 1>&2 43 | exit 1 44 | fi 45 | } 46 | 47 | ## Check to see if we are running as root first. 48 | ## Found at http://www.cyberciti.biz/tips/shell-root-user-check-script.html 49 | if [ "$(id -u)" != "0" ]; then 50 | echo "This script must be run as root" 1>&2 51 | exit 1 52 | fi 53 | 54 | case "$1" in 55 | start) 56 | start 57 | exit 0 58 | ;; 59 | stop) 60 | stop 61 | exit 0 62 | ;; 63 | reload|restart|force-reload) 64 | stop 65 | start 66 | exit 0 67 | ;; 68 | **) 69 | echo "Usage: $0 {start|stop|reload}" 1>&2 70 | exit 1 71 | ;; 72 | esac 73 | exit 0 -------------------------------------------------------------------------------- /calibration.md: -------------------------------------------------------------------------------- 1 | # (Optionally) calibrate your receiver 2 | 3 | This step is optional, from my experience, NooElec receivers don't need calibration. 4 | 5 | Calibration stepsinstructions below are taken from the [following guide](http://www.satsignal.eu/raspberry-pi/acars-decoder.html#kalibrate). 6 | 7 | ``` 8 | mkdir ~/kal 9 | cd ~/kal 10 | sudo apt-get install libtool autoconf automake libfftw3-dev 11 | git clone https://github.com/asdil12/kalibrate-rtl.git 12 | cd kalibrate-rtl 13 | git checkout arm_memory 14 | ./bootstrap 15 | ./configure 16 | make 17 | sudo make install 18 | ``` 19 | 20 | Make sure your antenna is connected to the RTL-SDR receiver and the receiver is connected to the Raspberri Pi. You should not use the band-pass filter yet. 21 | 22 | To calibrate, run: 23 | 24 | ``` 25 | kal -s GSM900 -d 0 -g 40 26 | ``` 27 | 28 | You'll see something like: 29 | 30 | ``` 31 | Found 1 device(s): 32 | 0: Generic RTL2832U OEM 33 | 34 | Using device 0: Generic RTL2832U OEM 35 | Found Rafael Micro R820T tuner 36 | Exact sample rate is: 270833.002142 Hz 37 | [R82XX] PLL not locked! 38 | Setting gain: 40.0 dB 39 | kal: Scanning for GSM-900 base stations. 40 | GSM-900: 41 | chan: 16 (938.2MHz - 303Hz) power: 764382.95 42 | chan: 29 (940.8MHz - 107Hz) power: 3099720.22 43 | chan: 37 (942.4MHz + 351Hz) power: 814043.05 44 | chan: 56 (946.2MHz - 106Hz) power: 255238.03 45 | chan: 65 (948.0MHz - 115Hz) power: 645372.85 46 | chan: 69 (948.8MHz + 115Hz) power: 4609305.74 47 | chan: 73 (949.6MHz + 239Hz) power: 642985.06 48 | chan: 102 (955.4MHz - 512Hz) power: 694681.27 49 | ``` 50 | 51 | Use the most powerful channel (69 in the example above) for calibration 52 | 53 | kal -c -d 0 -g 40 54 | 55 | You'll get something like: 56 | 57 | ``` 58 | Found 1 device(s): 59 | 0: Generic RTL2832U OEM 60 | 61 | Using device 0: Generic RTL2832U OEM 62 | Found Rafael Micro R820T tuner 63 | Exact sample rate is: 270833.002142 Hz 64 | [R82XX] PLL not locked! 65 | Setting gain: 40.0 dB 66 | kal: Calculating clock frequency offset. 67 | Using GSM-900 channel 69 (948.8MHz) 68 | average [min, max] (range, stddev) 69 | + 64Hz [39, 87] (49, 13.600428) 70 | overruns: 0 71 | not found: 0 72 | average absolute error: -0.067 ppm 73 | ``` 74 | 75 | Note the "average absolute error" number. If you have it around 0, everything's fine. 76 | If not, you may need to change the frequency when you start `dump1090`. 77 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Raspberry Pi ADS-B Base Station for OpenSky Network 2 | =================================================== 3 | 4 | # Introduction 5 | 6 | This guide explains how to assemble a simple ADS-B base station using Raspberry Pi and cheap off-the-shelf components 7 | and how to connect your station to the [OpenSky Network](https://opensky-network.org/). 8 | 9 | The proposed base station will be able to receive and decode transponder signals from planes in the radius of up to 200-300 km. 10 | 11 | ![DUMP1090 Screenshot](images/dump1090.png) 12 | 13 | You will also be able to feed your data into [OpenSky Network](https://opensky-network.org/) and other networks and use it in local applications like [PlanePlotter](http://www.coaa.co.uk/planeplotter.htm). 14 | 15 | ![OpenSky Network Screenshot](images/osn.png) 16 | 17 | Instructions below are based on the [ADS-B using dump1090 for the Raspberry Pi](http://www.satsignal.eu/raspberry-pi/dump1090.html) guide. 18 | 19 | This guide assumes installation in a home network with internet connection via router like FRITZ!Box. 20 | 21 | # Prerequisites 22 | 23 | * The most important prerequisite is place with clear view of the sky where you could place the antenna. 24 | * If you want to feed your data into [OpenSky Network](https://opensky-network.org/), you must be able to open and forward ports on your router. 25 | * [OpenSky Network](https://opensky-network.org/) needs a static host name or IP address to connect to your base station. 26 | If you don't have a static IP address (you normally don't), your router must support dynamic DNS using a provider like [No-IP.com](http://www.noip.com/). 27 | * Your router must support WiFi so that you could connect Raspberry Pi to the network wirelessly. 28 | 29 | # Shopping list 30 | 31 | ![Shopping list](images/parts-labeled.jpg) 32 | 33 | * Raspberry Pi set 34 | * (1) Raspberry Pi 2 Model B [amazon.de](https://www.amazon.de/dp/B01CPGZY3O) 35 | * (2) Memory Card 32GB MicroSDHC Class 10, SD adapter [amazon.de](https://www.amazon.de/dp/B01CPGZY3O) 36 | * (3) WLAN Adapter [amazon.de](https://www.amazon.de/gp/product/B00416Q5KI) 37 | * (4) USB extension cable [amazon.de](https://www.amazon.de/dp/B000NWS55M) 38 | * (5) Power supply, heatsinks, case [amazon.de](https://www.amazon.de/gp/product/B00UCSO9G6) 39 | * Receiver 40 | * (6) ADS-B Antenna with *N Female* Connector [ebay.de](http://www.ebay.de/itm/Antenna-ads-b-collinear-great-gain-for-usb-dongle-flightbox-/291800588117) 41 | * (7) Cable *N Male - SMA Male* [amazon.de](https://www.amazon.de/gp/product/B0152WWEUO) 42 | * (8) (Optional) Band-pass Filter *SMA Female - SMA Male* [amazon.de](https://www.amazon.de/gp/product/B010GBQXK8) 43 | * (9) (Optional) Cable *SMA Female - MCX Male* [amazon.de](https://www.amazon.de/gp/product/B00V4PS1L0) 44 | * (10) USB RTL-SDR Receiver [amazon.de](https://www.amazon.de/gp/product/B00VZ1AWQA) 45 | 46 | We'll assume that you already have a PC with microSD or SD card reader, monitor with HDMI connection and USB keyboard and mouse needed for installation and that you don't have to order the additionally. 47 | 48 | ## Notes on the shopping list 49 | 50 | * You will need a 2A power supply for Raspberry Pi. 51 | * Make sure memory card package includes the SD adapter so that you could use this card in a normal PC (which usually has a SD card reader but not the microSD. 52 | * MicroSDHC Class 10 (high speed class) is highly recommended. 53 | * If you connect the receiver to one of the USB port on Raspberry Pi directly, it will cover other ports. You can avoid this using the USB extension cable. 54 | * You'll need a coaxial cable to connect your antenna to your USB RTL-SDR receiver. The shopping list above assumes an antenna with the N Female connector. The recommended [NooElec NESDR Mini 2+](https://www.amazon.de/gp/product/B00VZ1AWQA) receiver has an MCX Female socket, so you basically need to connect MCX Female to N Female. Such cables (*MCX Male - N Male*) are quite rare, a much better option is a *N Male - SMA Male* plus *SMA Female - MCX Male* combination. 55 | * The *N Male - SMA Male* plus *SMA Female - MCX Male* combination also using the [FlightAware band-pass filter](https://www.amazon.de/gp/product/B010GBQXK8) which reduces the noise and increases the number of the processed ADS-B messages. This filter has the *SMA Female* input and *SMA Male* output so it can be inserted between to cables (from antenna and to to receiver). If you want to spare the filter, just connect two cables directly. 56 | * The [band-pass filter](https://www.amazon.de/gp/product/B010GBQXK8) is optional, but it is highly recommended. It drastically increases the number of messages. 57 | * The [NooElec NESDR Mini 2+](https://www.amazon.de/gp/product/B00VZ1AWQA) includes a small *SMA Female - MCX Male* adapter, so you don't necessarily need the *SMA Female - MCX Male* cable. However, if you use the [FlightAware band-pass filter](https://www.amazon.de/gp/product/B010GBQXK8), it is highly recommended to get *SMA Female - MCX Male* cable as well to add flexible connection between the filter and the receiver. Otherwise the filter is connected rigidly into the small MCX socket and as a potential to break it. 58 | 59 | # Overview of the installation steps 60 | 61 | * Assemble the Raspberry Pi 62 | * Connect the components 63 | * Setup the Raspberry Pi 64 | * Prepare the SD card with the Raspbian operating system 65 | * Perform the Raspbian installation 66 | * Build and install drivers for the RTL-SDR receiver 67 | * Build and install the `dump1090` decoder 68 | * Connect your base station to the OpenSky Network 69 | * Set up dynamic DNS for your Raspberry Pi 70 | * Make the port `30005` port accessible from the internet 71 | * Create an OpenSky Network account 72 | * Configure a new sensor in OpenSky Network 73 | 74 | # Assemble the Raspberry Pi 75 | 76 | * Attach heatsinks to chips 77 | * Fix the Raspberry Pi to the case using screws, close the case 78 | 79 | # Connect the components 80 | 81 | ![Assembled components](images/assembled.jpg) 82 | 83 | Antenna: 84 | 85 | * Antenna *N Female* 86 | * Cable *N Male - SMA Male* 87 | * (Optional) Band-pass filter *SMA Female - SMA Male* 88 | * (Optional) Cable *SMA Female - MCX Male*, alternatively use the *SMA Female - MCX Male* adapter 89 | * USB RTL-SDR Receiver 90 | * USB extension cable 91 | * ... to Raspberry Pi 92 | 93 | WLAN Adapter: 94 | 95 | * WLAN Adaper 96 | * USB extension cable 97 | * ... to Raspberry Pi 98 | 99 | Also connect keyboard and mouse. 100 | 101 | # Set up the Raspberry Pi 102 | 103 | ## Prepare the SD card with Raspbian operating system for Raspberry Pi 104 | 105 | Follow the [NOOBS Setup](https://www.raspberrypi.org/help/videos/) instructions. In short: 106 | * [Download](https://www.sdcard.org/downloads/formatter_4/index.html) and install the SDFormatter (a software to format your microSDHC card). 107 | * Insert your microSDHC memory card into your PC (using the SD adapter). 108 | * Format the microSDHC card using SDFormatter. Make sure you've selected the correct drive letter. Use the options `FORMAT TYPE` `FULL (Erase)` and `FORMAT SIZE ADJUSTMENT` `OFF`. 109 | * [Download](https://www.raspberrypi.org/downloads/noobs/) and unzip NOOBS ("New Out Of the Box Software", an easy operating system installer for Raspberry Pi). 110 | * Copy the uzipped NOOBS files to the freshly formatted microSDHC card. 111 | * Safely eject the memory card. 112 | 113 | ## Install Raspbian 114 | 115 | * Insert the card into Raspberry Pi. 116 | * Connect the power. 117 | * Perform the Raspbian installation. 118 | * Configure the system after installation (you'd typically want to set region and locale and change the default password (`pi`/`raspberry`). 119 | * Set up the WLAN/internet connection. 120 | * Update and upgrade the system: 121 | ``` 122 | sudo apt-get update 123 | sudo apt-get upgrade 124 | ``` 125 | * Install `git-core` and `git`: 126 | ``` 127 | sudo apt-get install git-core git 128 | ``` 129 | 130 | Now your Raspberry Pi is ready to be used. 131 | 132 | ## Set up RTL-SDR drivers and `dump1090` 133 | 134 | ### Check out the `raspberry-pi-adsb` project 135 | 136 | ``` 137 | cd ~ 138 | git clone https://github.com/highsource/raspberry-pi-adsb.git 139 | chmod +x ~/raspberry-pi-adsb/*.sh 140 | ``` 141 | 142 | ### Set up RTL-SDR drivers 143 | 144 | Check out, build and install drivers for the RTL-SDR receiver: 145 | 146 | ``` 147 | cd ~/raspberry-pi-adsb 148 | ./setup-rtl-sdr.sh 149 | ``` 150 | 151 | You will be prompted to reboot after the set up. 152 | 153 | After the system rebooted, you can check the RTL-SDR connection by running: 154 | 155 | ``` 156 | rtl_test 157 | ``` 158 | 159 | You should be seeing something like: 160 | 161 | ``` 162 | Found 1 device(s): 163 | 0: Realtek, RTL2838UHIDIR, SN: 00000001 164 | 165 | Using device 0: Generic RTL2832U OEM 166 | Found Rafael Micro R820T tuner 167 | Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6 168 | [R82XX] PLL not locked! 169 | Sampling at 2048000 S/s. 170 | 171 | Info: This tool will continuously read from the device, and report if 172 | samples get lost. If you observe no further output, everything is fine. 173 | 174 | Reading samples in async mode... 175 | ``` 176 | 177 | This means RTL-SDR drivers were compiled and installed successfully. 178 | 179 | ### Set up `dump1090` 180 | 181 | [`dump1090`](https://github.com/MalcolmRobb/dump1090) decodes signals coming from the RTL-SDR receiver. 182 | 183 | Check out, build and install `dump1090`: 184 | 185 | ``` 186 | cd ~/raspberry-pi-adsb 187 | ./setup-dump1090.sh 188 | ``` 189 | The `setup-dump1090.sh` also installs `dump1090` was as a service so that `dump1090` starts automatically after system restart. 190 | 191 | You will be once again prompted to reboot after the set up. 192 | 193 | After the system rebooted, you might want to check if `dump1090` is running correctly. Just go to `http://127.0.0.1:8080` in the browser on Raspberry Pi, you should see a map with planes. 194 | 195 | ![Screenshot of dump1090 on localhost](images/dump1090-on-localhost.png) 196 | 197 | Alternatively, you can start `dump1090` in the interactive mode from the command line. To do this, first stop the running `dump1090` service: 198 | 199 | ``` 200 | sudo /etc/init.d/dump1090.sh stop 201 | ``` 202 | 203 | Now start the `dump1090` in the interactive mode: 204 | 205 | ``` 206 | ~/dump1090/dump1090 --interactive --gain -10 --net --net-beast 207 | ``` 208 | 209 | You should be getting output like: 210 | 211 | ``` 212 | Hex Mode Sqwk Flight Alt Spd Hdg Lat Long Sig Msgs Ti| 213 | ------------------------------------------------------------------------------- 214 | 3C4B4C S 34000 470 344 5 39 1 215 | 44D076 S 25000 4 5 1 216 | 3C66B3 S 2037 DLH8YA 19475 339 121 48.916 11.190 4 27 5 217 | 040032 S 2540 ETH707 5875 273 119 49.905 8.698 8 113 0 218 | 3C6DCD S 7610 31000 465 108 4 12 1 219 | 44A8A2 S 1000 JAF83X 34625 454 292 5 130 2 220 | 710105 S 2702 SVA116 33000 510 125 49.382 7.167 4 156 1 221 | ... 222 | ``` 223 | 224 | Finally, start the `dump1090` service again: 225 | 226 | ``` 227 | sudo /etc/init.d/dump1090.sh start 228 | ``` 229 | 230 | # Connecting your base station to the OpenSky Network 231 | 232 | To connect your base station to the OpenSky Network you must make the port `30005` on your Raspberry Pi available from the internet via static host or IP address. 233 | 234 | The guide below illustrates configuration on the home network behind the FRITZ!Box 7490 router. I am sorry that the screenshots are in German, I can't easily switch interface language of my router. 235 | 236 | ## Configure the Raspberry Pi device on your Network 237 | 238 | * Give Raspberry Pi a name (I'll use `argon` for example) 239 | * Select "Always use the same IP address" 240 | 241 | ![Configuring the Raspberry Pi device](images/network-configuration-device.png) 242 | 243 | Now you should be able to reach the `dump1090` instance running on the Raspberry Pi via `http://argon:8080`. 244 | 245 | You should also be able to connect to the port `30005` (for instance via Putty) and see some binary data coming from the Raspberry Pi. 246 | 247 | ## Configure dynamic DNS 248 | 249 | Condiguring dynamic DNS via provider like [No-IP.com](http://www.noip.com/) will give you a static host name even for dynamically assigned IP addresses. 250 | 251 | * Create a [No-IP.com](http://www.noip.com/) account - I'll use `argon-adsb` username for example 252 | * Create a new hostname - I'll use `argon-adsb.ddns.net` for example 253 | ![Creating argon-adsb.ddns.net hostname](images/noip-hostname.png) 254 | * Configure dynamic DNS in your router 255 | ![Configuring dynamic DNS in your router](images/network-configuration-dynamic-dns.png) 256 | 257 | ## Configure port forwarding 258 | 259 | You will need to make the port `30005` on your Raspberry Pi avaliable from the internet. For this, configure the forwaring of the `30005` to the `argon` host (Raspberry Pi). 260 | 261 | ![Forwarding port 30005 to argon](images/network-configuration-port.png) 262 | 263 | Now you should be able to connect to `argon-adsb.ddns.net:30005` via Putty and see a binary stream coming from `dump1090` on the Raspberry Pi. 264 | 265 | Additionally, you can also forward the port `8080` to `argon:8080` so that you could access the web-interface of `dump1090` via `http://argon-adsb.ddns.net:8080`. 266 | 267 | ## OpenSky Network configuration 268 | 269 | * Create an OpenSky Network account 270 | * Add a new sensor: `My OpenSky` > `My Sensors` > `Add Sensor` 271 | * Receiver Type: `dump1090` 272 | * Hostname: `argon-adsb.ddns.net` 273 | * Port: `30005` 274 | * Enter or pick your location 275 | * Submit 276 | 277 | ![Creating new sensor on OpenSky Network](images/osn-new-sensor.png) 278 | 279 | Now you should see your sensor on the map. If everything's fine, the sensor should go online in a couple of minutes. 280 | 281 | ![New OpenSky Network sensor on the map](images/osn-new-sensor-on-map.png) --------------------------------------------------------------------------------