ADSBx Custom Pi Image

ADSBexchange.com offers a custom Pi feeder image with stats, maps, US sectionals, and a full wifi-based configuration interface. It is configured to reduce SD card writes to almost none.

If you want a feeder that can stay active in harsh conditions and needs minimal maintenance, then the ADSBx feeder image is a good place to start.

Hardware requirements: This image works on Raspberry Pi 3, 4, or Zero 2 W. See https://adsbexchange.com/hardware for a more detailed discussion of suggested DIY hardware. Hardware is available from https://adsb.store, Amazon, Ebay, or other online electronics vendors. Minimum to get started is a Raspberry Pi, and this kit.

Latest Release – April 20, 2022:
https://www.adsbexchange.com/myip/downloads/adsbx-8.2.220420.zip

md5sums:
31addee568426d1704c748a74a8f4f8d adsbx-8.2.220420.img
e234e36190be76000361838bbad993f2 adsbx-8.2.220420.zip

Warning: Other site clients are not as polite as ADSBx and can take over your feeder if not configured properly.  We can’t provide assistance with the ADSBx image if you install other feeder software without understanding what it is doing.

Getting Started – WiFi/GUI Setup:

Step 1: After downloading the file above, write it to a MicroSD card. Recommended software for this is “Raspberry Pi Imager”. Under “Operating System”, choose “Use Custom” and pick the image file you downloaded above.

Step 2: Insert SD card into Pi, connect all hardware and allow the Pi to boot up. On first boot, filesystem is expanded to fill the entire SD card. This may take up to 5 mins depending on the size of your SD card. Do not interrupt this process. Subsequent boots should take approximately 60 seconds (based on Pi 4 performance).

Note: If you intend to use an Ethernet Cable for your Pi’s network connection, skip ahead to Step 5.

Step 3: Once Pi has booted, you will see a WiFi network called “ADSBx-config”. Join this network using your smartphone or computer. Since the Pi does not yet have an internet connection, you will likely need to tell your smartphone to “stay connected” (android), or “keep using wifi” (iOS).

The “ADSBx-config” network only exists for 15 minutes after boot (if the pi has no internet connectivity) for security reasons.  If it still has no network connection after that, it shuts down.  Power-cycling the Pi will reactivate it.

Step 4: Once connected to the wireless network named “ADSBx-config”, using a web browser, open: http://adsbexchange.local. Click on “WiFi Setup”, select your network and input your password. The device will reboot and connect to the configured wifi.

Step 5: Assuming the configuration is correct the Pi will connect to your wifi. You can now access the feeder over your LAN / wifi by going to: http://adsbexchange.local

Step 6: Visit http://adsbexchange.local. Choose “Configure receiver/Location” to configure GPS location and other feeder parameters. Click “Save and Reboot”

Note: To find your lat/lon coordinates, and mean sea level (MSL) altitude in your area, you can use the site linked on the config page, https://www.freemaptools.com/elevation-finder.htm.

One option, “Use Custom LED indications” can re-purpose the LED lights on your pi:

  • Green LED – blink frequency proportional to # of aircraft with position being received.
  • Red LED, number of blinks:
    1 blink – Zero planes with position detected
    2 blinks – Receiver location not set, or 978 UAT service enabled but not running
    3 blinks – Readsb service failed
    4 blinks – No connection to ADSBexchange servers
    5 blinks – CPU Temperature and/or power supply voltage failure

Step 7: Verify your feeder is connected and sending data to ADSBexchange by going to http://adsbexchange.com/myip (bottom link on your feeder’s menu). If everything is working as expected, you will see two green smiley faces.

Step 8: If you are using a second SDR for the 978mhz UAT frequency in the US, choose the “assign SDRs to services” option to ensure the correct SDR is used by the correct software.

You can optionally set a password for your pi using the “Authentication and System Tools” option. By default, the password for the “pi” account is “adsb123”. This account works for both web GUI and SSH access. Graphana uses “admin” and “adsb123” as it’s default.

Command Line Configuration (in case you prefer vs GUI instructions above):

*Before you start you will need your Location (Lat/Lon) to 5 decimal points and your Antenna Elevation, if you don’t know this already you can use THIS WEBSITE to get it. *Remember the website gives ground elevation so you will need to add your antenna’s height to that.

To find your latitude, longitude, and altitude for adsb-config.txt, go to https://www.mapcoordinates.net/en.

Be sure to add in the height above ground of the antenna install to the altitude.

To test your feeder is working correctly after setup go to https://www.adsbexchange.com/myip/ and look for 2 green smiles!

Links to the map and dashboard can be found by putting IP assigned to your Pi by your LAN network in a web browser.

Configuration using text files (alternative to Wifi/GUI Setup)

After burning image file, remove the sd-card and put it back into the reader and a new drive / partition should show up, find the one that has the file adsb-config.txt and a bunch of other files on it. If Windows asks you to format it, ignore that, it’s normal as Windows doesn’t recognize the 2nd partition on the card.

Sample 1090 single SDR adsb-config.txt:

 LATITUDE=34.495594
 LONGITUDE=-41.782331
 ALTITUDE=1050ft
 USER="buster_adsbx"
 DUMP1090=yes
 GAIN=49.6
AUTOGAIN=no DUMP978=no ZEROTIER=no

Edit the existing file with your information and altitude of antenna in MSL. Use notepad or basic text editor.

DO NOT USE MAGIC QUOTES.

DO NOT CHANGE FORMAT.

Be sure to change the USER to a nickname for your station.
It’s used to show the approximate location (5 mile offset for privacy) and sync status on the MLAT map

Save adsb-config.txt to the sd card.

See next section for wireless setup.

Wifi Setup

The same drive / partition that has adsb-config.txt is the where you want to save wpa_supplicant.conf, download and save the base file from here:
https://www.adsbexchange.com/myip/downloads/config/wpa_supplicant.conf
Change the my_wifi, my_password and the country, save it.

You can repeat this step if you ever want to change the wifi credentials, you’ll need to download the file again.

First Boot

Insert the sd-card into the Raspberry Pi, plug in the power and wait 2 minutes for the first boot to complete.

Find the IP address

If you don’t know how to look up the IP address of the Raspberry Pi on your routers configuration page, check this link for some advice:
https://www.raspberrypi.com/documentation/computers/remote-access.html#introduction-to-remote-access

With the IP address you can visit the local webinterface for the adsbexchange image: http://192.168.1.3
(replace the IP address with the one you have found)
Useful info on how to use SSH:
https://www.raspberrypi.com/documentation/computers/remote-access.html#secure-shell-from-windows-10
https://www.raspberrypi.com/documentation/computers/remote-access.html#secure-shell-from-linux-or-mac-os

Login Info

Local console access is possible if desired using the below user / password:
SSH access is enabled on port 22 using the below user / password:

user: pi
password: adsb123

Consider changing the password using this command:

passwd

978 for US based 2 SDR receivers

You only need to do this if you have more than one SDR on the device.

Stop services that are using the SDRs:

sudo systemctl stop readsb
sudo systemctl stop dump978-fa

Unplug the 1090 SDR and set the serial for the 978 SDR:

sudo rtl_eeprom -s 978

Unplug the 978 SDR and set the serial for the 1090 SDR:

sudo rtl_eeprom -s 1090

Unplug both SDRs, plug them back in again to make the system aware of the new serials, a reboot is not sufficient.
You can use sudo rtl_test to check if the serials are assigned correctly to the SDRs.
Then use this command to edit /boot/adsbx-env:

sudo nano /boot/adsbx-env 

and remove the # for this line:

RECEIVER_OPTIONS="--device 1090 --device-type rtlsdr --ppm 0"

and add a # for this line:

#RECEIVER_OPTIONS="--device-type rtlsdr --ppm 0"

Then save: Ctrl-O and Enter
and exit: Ctrl-X

Edit /boot/adsb-config.txt and change DUMP978 to yes:

DUMP978=yes

Display ADSBx config

cat /boot/adsb-config.txt

Change ADSBx config

sudo nano /boot/adsb-config.txt

Then save: Ctrl-O and Enter
and exit: Ctrl-X
To apply the changes, reboot:

sudo reboot

Check that you’re feeding:
https://www.adsbexchange.com/myip/

If you’re on another network or the /myip above somehow doesn’t work, use this command to show the feed map URL:

adsbexchange-showurl

Make sure to check that your MLAT sync is working:

https://map.adsbexchange.com/mlat-map/
http://adsbx.org/sync
If you have other stations in your area and can see a couple ADS-B aircraft, you should have synced peers and not be timed out.
If you’re timed out or don’t have any peers re-check your coordinates and altitude entered in the config.


Restart readsb service

sudo systemctl restart readsb

Show readsb status

sudo systemctl status readsb

Start Feeder Services

sudo systemctl start adsbexchange-mlat
sudo systemctl start adsbexchange-feed

Restart Feeder Service

sudo systemctl restart adsbexchange-feed
sudo systemctl restart adsbexchange-mlat

Show Feeder Service

sudo systemctl status adsbexchange-mlat
sudo systemctl status adsbexchange-feed

Technical Info (aka, stuff you probably don’t even need to know)

  • All MLAT participants will receive a back-feed of any aircraft where their data was used in the calculations.
  • A list of the software on the image can be seen HERE

Reporting Issues

Feel free to report any issues you encounter with this script using the forum or contact ADSBx here.

NEED HELP? Join our Discord Chat.

That’s it, your traffic should now appear on the Global Radar Page.