Giter Site home page Giter Site logo

ketilmo / balena-ads-b Goto Github PK

View Code? Open in Web Editor NEW

This project forked from compujuckel/adsb-docker

140.0 14.0 34.0 2.34 MB

ADS-B Flight Tracker running on balena with support for FlightAware, Flightradar24, PlaneFinder, OpenSky Network, RadarBox, ADSB Exchange, Wingbits, and UAT.

License: MIT License

Smarty 0.86% Shell 42.09% HTML 16.89% Dockerfile 0.03% Rust 33.56% JavaScript 1.63% TypeScript 4.94%
hacktoberfest

balena-ads-b's Introduction

balena ADS-B Flight Tracker

ADS-B Flight Tracker running on balena with support for FlightAware, Flightradar24, Plane Finder, OpenSky Network, AirNav RadarBox, ADSB Exchange, and Wingbits.

Contribute to the flight tracking community! Feed your local ADS-B data from an RTL-SDR USB dongle and a supported device (see below) running balenaOS to the tracking services FlightAware, Flightradar24, Plane Finder, OpenSky Network, AirNav RadarBox, ADSB Exchange and Wingbits. In return, you will receive complimentary premium accounts (or cryptocurrency tokens) worth several hundred dollars annually!

Stay in the loop

πŸ‘‰πŸ»Β  Subscribe to our newsletterΒ πŸ‘ˆπŸ»Β  to stay updated on the latest development of balena ADS-B Flight Tracker.

Did you get stuck? Get help!

πŸ’¬Β  Ask a question in our discussion board

✏️  Create a post in our balena forum thread

🚨  Raise an issue on GitHub

πŸ“ΊΒ  Watch the videos from the balena IoT Happy Hour in March 2021 and from balena Hackathon in October 2021

πŸ“¨Β  Reach out directly

πŸ—žΒ  Read past newsletters

Supported devices

fincm3balenaFin
intel-nucIntel NUC
jetson-nano-2gb-devkitNvidia Jetson Nano 2GB Devkit SD
jetson-nanoNvidia Jetson Nano SD-CARD
orange-pi-zeroOrange Pi Zero
raspberrypi3Raspberry Pi 3 Model B+
raspberrypi3-64Raspberry Pi 3 (using 64bit OS)
raspberrypi4-64Raspberry Pi 4 (using 64bit OS)
raspberrypi400-64Raspberry Pi 400
raspberrypi5Raspberry Pi 5

Please let us know if you are successfully running balena-ads-b on a hardware platform not listed here!

Credits

The balena-ads-b project was created and maintained by Ketil Moland Olsen.

It's inspired by and has borrowed code from the following repos and forum threads:

Thanks to compujuckel, Glenn Stewart, wercsy, mikenye, abcd567a and marcelstoer for sharing!

Thanks to garethhowell for implementing the initial ADSB Exchange support and to wiedehopf for improving it.

Thanks to rmorillo24 for verifying balenaFin compatibility, to adaptive for confirming Raspberry Pi 400 compatibility, and to eagleDiego for confirming Orange Pi Zero compability.

Thanks to schubydoo and Teko012 for assistance with keeping the repository up to date.

Thanks to schubydoo, JPGMC, and alanb128 for beta testing the UAT support.

And thanks to Aaron Shaw (shawaj) for implementing Wingbits support, fixing bugs, and improving the code.

You are all stars! 🀩

Software packages downloaded, installed, and configured by the balena-ads-b script are disclosed in CREDITS.md.

Contributors

Table of Contents

Part 1 – Build the receiver

We'll build the receiver using the parts that are outlined on the Flightradar24, FlightAware, and RadarBox websites:

These sites suggest the Raspberry Pi 3 Model B+ as the preferred device. Still, this project runs on all the devices mentioned above. Suppose you are buying a new appliance specifically for this project. In that case, we suggest the Raspberry Pi 4 Model B with as much memory as possible. It's excellent value for money.

In addition to the device, you will need an RTL-SDR-compatible USB dongle. The dongles are based on a digital television tuner, and numerous types will work – both generic TV sticks and specialized ADS-B sticks (produced by FlightAware). Although both options work, the ADS-B sticks seem to perform a little better.

If you live in the US, and want to track UAT traffic in addition to ADS-B traffic, you can use two dongles in parallell. Please note that the blue FlightAware USB devices should only be used for ADS-B traffic, as they have an integrated filter optimized explicitly for the 1090 MHz frequencies. The orange FlightAware USB devices work well for tracking UAT traffic. See Part 9 – Configure UAT (Optional and US only) for more details.

Part 2 – Setup balena and configure the device

Deploy with button

or

  1. Create a free balena account. You will be asked to upload your public SSH key during the process. If you don't have a public SSH key yet, you can create one.
  2. Sign in to balena and head to the Fleets panel.
  3. Create a fleet with the name of your choice for your device type. Please take note of the fleet name. You will need it later. In the dialog that appears, pick a Default Device Type that matches your device. Specify the SSID and password if you want to use WiFi (and your device supports it). (If your device comes up without an active connection to the Internet, the wifi-connect container will create a network with a captive portal to connect to a local WiFi network. The SSID for the created hotspot is balenaWiFi, and the password isbalenaWiFi. When connected, visit http://192.168.42.1:8181/ in your web browser to set up the connection.
  4. balena will create an SD card image for you, which will start downloading automatically after a few seconds. Flash the image to an SD card using balena's dedicated tool balenaEtcher.
  5. Insert the SD card in your receiver, and connect it to your cabled network (unless you plan to use WiFi only and configured that in step 3).
  6. Power up the receiver.
  7. From the balena dashboard, navigate to the fleet you created. A new device with an automatically generated name should appear within a few minutes. Click on it to open it.
  8. Rename your device to your taste by clicking on the pencil icon next to the current device name.
  9. Next, we'll configure the receiver with its geographic location. Unless you know this by heart, you can use Google Maps to find it. The corresponding coordinates should appear when you click on your desired location on the map. We are looking for the decimal coordinates, which should look like 60.395429, 5.325127.
  10. Back in the balena console, verify that you have opened the view for your desired device. Click on the Device Variables-button. Add the following two variables: LAT (Receiver Latitude), e.g. with a value such as 60.12345 and LON (Receiver Longitude), e.g. with a value such as 4.12345.
  11. Now, you're going to enter the receiver's altitude in meters above sea level in a new variable named ALT. If you need to find the altitude, you can find it using one of several online services. Remember to add the approximate number of corresponding meters if your antenna is mounted above ground level.
  12. Almost there! Next, we will push this code to your device through the balena cloud. We'll do that using the balena CLI. Follow the official instructions to download and install the CLI for your platform of choice.
  13. Head into your terminal and log in to balena with the following command: balena login. Then follow the instructions on the screen.
  14. Next, clone the balena-ads-b repository to your local computer: git clone [email protected]:ketilmo/balena-ads-b.git. If you want to make changes to the repo, you can also fork it.
  15. Head into the folder of the newly cloned repo by typing cd balena-ads-b.
  16. Do you remember your fleet name from earlier? Good. Now, we are ready to push the applications to balena's servers by typing balena push YOUR–FLEET–NAME–HERE.
  17. Now, wait while the Docker containers build on balena's servers. If the process is successful, you will see a beautiful piece of ASCII art depicting a unicorn right in your terminal window:
			    \
			     \
			      \\
			       \\
			        >\/7
			    _.-(6'  \
			   (=___._/` \
			        )  \ |
			       /   / |
			      /    > /
			     j    < _\
			 _.-' :      ``.
			 \ r=._\        `.
			<`\\_  \         .`-.
			 \ r-7  `-. ._  ' .  `\
			  \`,      `-.`7  7)   )
			   \/         \|  \'  / `-._
			              ||    .'
			               \\  (
			                >\  >
			            ,.-' >.'
			           <.'_.''
			             <'

  1. Wait a few moments while the Docker containers are deployed and installed on your device. The groundwork is now done – good job!

Part 3 – Configure FlightAware

Alternative A: Port an existing FlightAware receiver

If you have previously set up a standalone FlightAware receiver and want to port it to balena, you only have to do the following steps:

  1. Head to your device's page in the balena dashboard and click on the Device Variables-button. Add the following variable: FLIGHTAWARE_FEEDER_ID, then paste your Unique Identifier key, e.g. 134cdg7d-7533-5gd4-d31d-r31r52g63v12. The ID can be found on the FlightAware website's My ADS-B section.
  2. From the balena dashboard, restart the piaware service under Services by clicking the "cycle" icon next to the service name.

Alternative B: Setup a new FlightAware receiver

If you have not previously set up a FlightAware receiver that you want to reuse, do the following steps:

  1. Head back to your device's Summary page. Inside the Terminal section, click Select a target, then piaware, and finally Start terminal session. This will open a terminal which lets you interact directly with your PiAware container.
  2. Once the terminal prompt appears, enter /getid.sh (including the leading slash), then press return.
  3. If everything goes according to plan, your FlightAware feeder id will soon appear. Copy it.
  4. Click on the Device Variables-button in the left-hand menu. Add a variable named FLIGHTAWARE_FEEDER_ID and paste the value from the previous step, e.g. 134cdg7d-7533-5gd4-d31d-r31r52g63v12.
  5. Go back to your device's Summary page. Restart the piaware service under Services by clicking the β€œcycle” icon next to the service name.
  6. Register a new account at FlightAware, then log in using your newly created credentials.
  7. Important: While being connected to the same network (either cabled or wireless) as your receiver is connected to, head to FlightAware's Claim Receiver page.
  8. Check if any receivers appear under the Linked PiAware Receivers heading. (If not, wait a few minutes and click the Check Again for my PiAware-button.) Hopefully, your receiver is now visible under the Linked PiAware Receivers header.
  9. In the left-hand-side menu on the top of the page, click the My ADBS-B menu item. Your device should be listed in an orange rectangle. Next, click the cogwheel icon on the right-hand side of the screen.
  10. Click the Configure Location-button, and verify that the location matches the coordinates you entered earlier. If not, correct them.
  11. Click the Configure Height-button, and specify the altitude of your receiver. The value should match the number you entered in the ALT variable in part 1.
  12. If you don't face any bandwidth constraints, enable multilateration (MLAT). Enabling MLAT lets your receiver connect to other nearby receivers to multilaterate the aircraft's positions that do not report their position through ADS-B. This option increases bandwidth usage but gives more visible aircraft positions in return.
  13. Specify the other settings in the FlightAware lightbox according to your preferences. Close the lightbox.
  14. Finally, verify that FlightAware is receiving data from your receiver. You'll find your receiver's dashboard by clicking on the My ADS-B top menu item at flightaware.com.

Part 4 – Configure Flightradar24

Alternative A: Port an existing Flightradar24 receiver

If you have previously set up a Flightradar24 receiver and want to port it to balena, you only have to do the following steps:

  1. Head back to the balena dashboard and your device's page. Click on the Device Variables-button. Add a variable named FR24_KEY and paste the value of your existing Flightradar24 key, e.g. dv4rrt2g122g7233. The key is located in the Flightradar24 config file, usually found here: /etc/fr24feed.ini. (If you cannot locate your old key, retrieve or create a new one by following the steps in alternative B.)
  2. Restart the fr24feed service under Services by clicking the "cycle" icon next to the service name.

Alternative B: Setup a new Flightradar24 receiver

If you have not previously set up a Flightradar24 receiver that you want to reuse, do the following steps:

  1. Head back to your device's page on the balena dashboard.
  2. Inside the Terminal section, click Select a target, then fr24feed, and finally Start terminal session.
  3. This will open a terminal which lets you interact directly with your Flightradar24 container.
  4. At the prompt, enter fr24feed --signup.
  5. When asked, enter your email address.
  6. You will be asked if you have a Flightradar24 sharing key. Unless you have one from the past that you would like to reuse, press return here.
  7. If you want to activate multilateration, type yes at the next prompt. If you have restricted bandwidth, consider leaving it off by typing no.
  8. Enter the receiver's latitude. This should be the same value you entered in the LAT variable in part 1.
  9. Enter the receiver's longitude. This should be the same value you entered in the LON variable in part 1.
  10. Finally, enter the receiver's altitude in feet. You can calculate this by multiplying the value you entered in the ALT variable in part 1 by 3.28.
  11. Now, a summary of your settings will be displayed. If you are happy with the result, type yes to continue.
  12. Under receiver type, choose 4 for ModeS Beast.
  13. Under connection type, choose 1 for network connection.
  14. When asked for your receiver's IP address/hostname, enter dump1090-fa.
  15. Next, enter the data port number: 30005.
  16. Type no to disable the RAW data feed on port 30334.
  17. Type no to disable the BaseStation data feed on port 30003.
  18. Enter 0 to disable log file writing.
  19. When asked for a log file path, just hit return.
  20. The configuration will now be submitted, and you will be redirected back to the terminal.
  21. At the prompt, type cat /etc/fr24feed.ini. Your Flightradar24 settings will be displayed.
  22. Find the line starting with fr24key=, and copy the string between the quotes. It will look something like this: dv4rrt2g122g7233.
  23. Click on the Device Variables-button in the left-hand menu. Add a variable named FR24_KEY and paste the value from the previous step, e.g. dv4rrt2g122g7233.
  24. Restart the fr24feed service under Services by clicking the "cycle" icon next to the service name.
  25. Head over to Flightradar24's website and create a new Basic account, using the exact same email address that you filled in in step 5.
  26. Shortly after your receiver starts feeding data to Flightradar24, your Basic account will be upgraded to their Business plan. Enjoy!

Part 5 – Configure Plane Finder

Alternative A: Port an existing Plane Finder receiver

If you have previously set up a Plane Finder receiver and want to port it to balena, you only have to do the following steps:

  1. Head back to the balena dashboard and your device's page. Click on the Device Variables-button. Add a variable named PLANEFINDER_SHARECODE and paste the value of your existing Plane Finder key, e.g. 7e3q8n45wq369. You can find your key at Plane Finder's Your Receivers page.
  2. On your device's page in the balena dashboard, restart the planefinder service under Services by clicking the "cycle" icon next to the service name.

Alternative B: Setup a new Plane Finder receiver

If you have not previously set up a Plane Finder receiver that you want to reuse, do the following steps:

  1. Register a new Plane Finder account.
  2. If you cloned this repo, balena-ads-b, in part 2 of this guide, locate it on your computer and find the folder planefinder. Alternatively, if you used the Deploy with balena-button, download the following archive and unzip it: SharecodeGenerator.zip
  3. Locate the file SharecodeGenerator.html and open it in your web browser.
  4. Fill in the form to generate a Plane Finder share code. Use the same email address you used when registering for the Plane Finder account. For Receiver Lat, use the value from the LAT variable in part 2. For Receiver Lon, use the value from the LON variable. Lastly, click the Create new sharecode button. A sharecode should appear in a few seconds. It should look similar to 6g34asr1gvvx7. Copy it to your clipboard. Disregard the rest of the form – you don't have to fill this out.
  5. Open Plane Finder's Your Receivers page. Under the Add a Receiver heading, locate the Share Code input field. Paste the sharecode from the previous step, then click the Add Receiver-button.
  6. Head back to the Balena dashboard and your device's page. Click on the Device Variables-button. Add a variable named PLANEFINDER_SHARECODE and paste the value of the Plane Finder key you just created, e.g. 7e3q8n45wq369.
  7. On your device's page in the Balena dashboard, restart the planefinder service under Services by clicking the "cycle" icon next to the service name.

Part 6 – Configure OpenSky Network

Alternative A: Port an existing OpenSky Network receiver

If you have previously set up an OpenSky Network receiver and want to port it to balena, you only have to do the following steps:

  1. Head back to the balena dashboard and your device's page. Click on the Device Variables-button – Vx.
  2. Add a variable named OPENSKY_USERNAME and paste your OpenSky Network username, e.g. JohnDoe123. You can find your username on your OpenSky Network Dashboard page.
  3. Add a variable named OPENSKY_SERIAL and paste the value of your existing OpenSky Network serial number, e.g. 1663421823. You can find your serial on your OpenSky Network Dashboard page.
  4. On your device's page in the balena dashboard, restart the opensky-network service under Services by clicking the "cycle" icon next to the service name.

Alternative B: Setup a new OpenSky Network receiver

If you have not previously set up an OpenSky Network receiver that you want to reuse, do the following steps:

  1. Register a new OpenSky Network account. Make sure to activate it using the email that's sent to you. Please take note of your username. You will need it soon.
  2. Head back to your device's page on the balena dashboard. Click on the Device Variables-button in the left-hand menu. Add a variable named OPENSKY_USERNAME and populate it with your newly created OpenSky Username, e.g. JohnDoe123.
  3. Head back to your device's Summary page. Restart the opensky-network service under Services by clicking the "cycle" icon next to the service name. Wait for the service to finish restarting.
  4. Inside the Terminal section, click Select a target, then opensky-network, and finally Start terminal session.
  5. This will open a terminal which lets you interact directly with your OpenSky Network container.
  6. Once the terminal prompt appears, enter /getserial.sh (including the leading slash), then press return.
  7. If everything goes according to plan, your OpenSky Network serial number will soon appear. Copy it.
  8. Click on the Device Variables-button in the left-hand menu. Add a variable named OPENSKY_SERIAL and paste the value from the previous step, e.g. 1267385439.
  9. Go back to your device's Summary page. Restart the opensky-network service under Services by clicking the β€œcycle” icon next to the service name.
  10. Head over to your OpenSky Network Dashboard and verify that your receiver shows up and feeds data.

Part 7 – Configure RadarBox

Alternative A: Port an existing RadarBox receiver

If you have previously set up a RadarBox receiver and want to port it to Balena, you only have to do the following steps:

  1. Head back to the Balena dashboard and your device's page. Click on the Device Variables-button. Add a variable named RADARBOX_KEY and paste the value of your existing RadarBox key, e.g. 546b69e69b4671a742b82b10c674cdc1. To get your key, issue the following command at your current RadarBox device: sudo rbfeeder --showkey --no-start.
  2. Restart the radarbox service under Services by clicking the "cycle" icon next to the service name.

Alternative B: Setup a new RadarBox receiver

If you have not previously set up a RadarBox receiver that you want to reuse, do the following steps:

  1. Register a new RadarBox account. Make sure to activate it using the email that's sent to you.
  2. Head back to your device's page on the balena dashboard.
  3. Inside the Terminal section, click Select a target, then radarbox, and finally Start terminal session.
  4. This will open a terminal which lets you interact directly with your RadarBox container.
  5. At the prompt, enter /showkey.sh. Your RadarBox key will be displayed and look similar to this: 546b69e69b4671a742b82b10c674cdc1.
  6. Click on the Device Variables-button in the left-hand menu. Add a variable named RADARBOX_KEY and paste the value from step 5, e.g. 546b69e69b4671a742b82b10c674cdc1.
  7. Restart the radarbox service under Services by clicking the "cycle" icon next to the service name.
  8. Head to RadarBox's Claim Your Raspberry Pi page. Locate the input field named Sharing Key, and paste the value from step 5, e.g. 546b69e69b4671a742b82b10c674cdc1.
  9. You might be asked to enter your feeder's location and altitude above the ground. Enter the same values you entered earlier in the LAT and LON variables. When asked for the antenna's altitude, specify it in meters (or feet) above the ground – NOT above sea level, as done previously. If you are not asked to enter this information, you can do it manually by clicking the Edit link under your receiver's ID on the left-hand side of the screen.
  10. Finally, verify that RadarBox is receiving data from your receiver. You'll find your receiver by clicking on the Account menu at radarbox.com under the Stations accordion.

Part 8 – Configure ADSB Exchange

  1. Head back to your device's page on the balena dashboard. Inside the Terminal section, click Select a target, then adsb-exchange, and finally Start terminal session. This will open a terminal which lets you interact directly with your ADSB Exchange container.
  2. At the prompt, type /usr/local/share/adsbexchange-stats/create-uuid.sh followed by return. Your ADSB-Exchange UUID is displayed. Note it down.
  3. At the same prompt, type /create-sitename.sh followed by return. Enter a friendly name for your feeder as per the instructions on the screen (e.g. your location). Hit return and note down the result.
  4. Click on the Device Variables-button. Add a variable named ADSB_EXCHANGE_UUID with the value from step 2.
  5. Click on the Device Variables-button. Add a variable named ADSB_EXCHANGE_SITENAME with the value from step 3.
  6. Restart the adsb-exchange service under Services by clicking the "cycle" icon next to the service names.
  7. Next, wait a minute or two for the service to restart and head over to ADSB Exchange's Feeder Status page from a PC on the same network as the feeder. Verify that your feeder is shown as registered and that ADSB Exchange is receiving your feed and MLAT data. You can also verify your feeder's performance at the ADSB Exchange Feeder Map by searching for your site name.

Part 9 – Configure Wingbits

Alternative A: Port an existing Wingbits receiver

If you have previously set up a Wingbits receiver and want to port it to Balena, you only have to do the following steps:

  1. Head back to the Balena dashboard and your device's page. Click on the Device Variables-button. Add a variable named WINGBITS_DEVICE_ID and paste the value of your existing Wingbits ID, e.g. small-coral-spider. To get your ID, visit the Wingbits Dashboard, make sure you are on the Antennas tab and look in the ID column.
  2. Restart the wingbits service under Services by clicking the "cycle" icon next to the service name.

Alternative B: Setup a new Wingbits receiver

If you have not previously set up a Wingbits receiver that you want to reuse, do the following steps:

  1. Register a new Wingbits account. Make sure to activate it using the email that's sent to you.
  2. Login to your Wingbits account, navigate to the Antennas tab and then click on Register Antenna.
  3. Enter your latitude and longitude in the boxes (or select your location on the map). Then scroll down and click Register. You will then be returned to the antennas page with a new entry in the list. Make sure to take note of the name in the ID column, for example small-coral-spider.
  4. Head back to your device's page on the balena dashboard.
  5. Click on the Device Variables-button in the left-hand menu. Add a variable named WINGBITS_DEVICE_ID and paste the value from step 4, e.g. small-coral-spider.
  6. Restart the wingbits service under Services by clicking the "cycle" icon next to the service name.
  7. Wait a few minutes and then head back to the Wingbits antennas tab, refresh the page and in the Status column of the table you should see the text Online with a green background. If you hover over this with your mouse you should see a tooltip text pop-up that says the last time data was receive e.g. Last message: 22/11/2023, 03:17:40.

Part 10 – Configure UAT (Optional and US only)

Please note: The following instructions involve making low-level changes to RTL-SDR USB sticks, such as changing the serial numbers. Proceed with caution, and only if you are comfortable with the steps involved. All changes made are at your own risk.

In the United States, aircraft can use either the ADS-B standard, which transmits at a frequency of 1090 MHz or the UAT protocol, which transmits at 978 MHz. If you live in the US and have an extra RTL-SDR dongle, you can track the UAT and ADS-B traffic. Please note that the blue FlightAware USB devices should only be used for ADS-B traffic, as they have an integrated filter optimized explicitly for the 1090 MHz frequencies. The orange FlightAware USB devices work well for tracking UAT traffic.

  1. Make sure you only have one RTL-SDR stick connected to your device before executing the following steps. The connected stick should be used for regular ADS-B 1090 MHz feeding.
  2. Head to your device's Summary page. Click on the Device Variables-button in the left-hand menu. Add a variable named DISABLED_SERVICES and populate it with the values dump1090-fa,dump978-fa.
  3. From the Summary page, inside the Terminal section, click Select a target, then dump1090-fa, and finally Start terminal session. This will open a terminal that lets you interact directly with your PiAware container.
  4. Once the terminal prompt appears, enter /add-serial-1090.sh, then press return.
  5. Type YES, followed by return, to change your dongle's serial number. Verify that the process completes successfully.
  6. Click on the Device Variables-button in the left-hand menu. Add a new variable named DUMP1090_DEVICE and set its value to 00001090.
  7. Shut down your device. When it's powered off, remove the first RTL-SDR stick from the Pi.
  8. Insert the second RTL-SDR stick (the one used for UAT), leaving the first stick disconnected. Power on your device.
  9. Head to your device's Summary page. Wait for all containers to come up with the status Running. Inside the Terminal section, click Select a target, then dump978-fa, and finally Start terminal session.
  10. Once the terminal prompt appears, enter /add-serial-978.sh, then press return.
  11. Type YES, followed by return, to change your dongle's serial number. Verify that the process completes successfully.
  12. Shut down your device. When it's powered off, connect both RTL-SDR sticks.
  13. Click on the Device Variables button in the left-hand menu. Delete the DISABLED_SERVICES variable.
  14. Add a new variable named UAT_ENABLED and assign it the value true.
  15. Power on the device. You should now be feeding ADS-B and UAT data simultaneously to the services that support it (FlightAware, RadarBox and ADSB-Exchange).

Part 11 – Add a digital display (Optional)

balena also produces a project that can be easily configured to display a webpage in kiosk mode on a digital display called balenaDash. By dropping that project into this one, we can automatically display a feeder page directly from the Pi. Ensure you have cloned this repository recursively (git clone --recursive {{repository URL}}). We can then set a LAUNCH_URL device variable configured to connect to http://{{YOURIP or YOURSERVICENAME}}:YOURSERVICEPORT (where the service/port is one of the frontends above, like http://planefinder:30053) and that will automatically be displayed on the attached display. The balenaDash service can be configured locally by accessing the webserver on port 8081.

Part 12 – Exploring flight traffic locally on your device

If the setup goes well, you should feed flight traffic data to several online services. You will receive access to the providers' premium services in return for your efforts. But in addition to this, you can explore the data straight from your device, raw and unedited. And that's part of the magic, right?

When you have local network access to your receiver, you can explore the data straight from the source. Start by opening your device page in the balena console and locate the IP ADDRESS field, e.g. 10.0.0.10. Then, add the desired port numbers specified further below.

Away from your local network but still eager to know what planes are cruising over your home? Here, balena's built-in Public Device URL comes in handy. Open your device page in the balena console, locate the PUBLIC DEVICE URL header, and flip the switch below to enable it. Finally, click on the arrow icon next to the button, add the desired URL postfix specified below and voila – you should see what's going on in your area.

Dump1090's Radar View This view visualizes everything that your receiver sees, including multilaterated plane positions. When you are in your local network, head to YOURIP:8080 to check it out. When remote, open balena's Public Device URL and add /skyaware/ to the tail end of the URL, e.g. https://6g31f15653bwt4y251b18c1daf4qw164.balena-devices.com/skyaware/

Plane Finder's Radar View It's similar to Dump1090, but Plane Finder adds 3D visualization and other excellent viewing options. Head to YOURIP:30053 to check it out. When remote, open balena's Public Device URL and add /planefinder/ to the tail end of the URL, e.g. https://6g31f15653bwt4y251b18c1daf4qw164.balena-devices.com/planefinder/

Flightradar24 Status Page Less visual than the two other options, Flightradar24's status page gives you high-level statistics and metrics about your feeder's performance. Head to YOURIP:8754 to check it out. When remote, open balena's Public Device URL and add /fr24feed/ to the tail end of the URL, e.g. https://6g31f15653bwt4y251b18c1daf4qw164.balena-devices.com/fr24feed/

Dump978's Radar View (Optional and US only) If you live in the US and have configuered UAT feeding, you can explore the data using this view. When you are in your local network, head to YOURIP:8978 to check it out. When remote, open balena's Public Device URL and add /skyaware978/ to the tail end of the URL, e.g. https://6g31f15653bwt4y251b18c1daf4qw164.balena-devices.com/skyaware978/. However, keep in mind that UAT traffic is scarce. It might take several days before you see any traffic, depending on where in the US you are situated.

Part 13 – Advanced configuration

Disabling specific services

You can disable any of the balena-ads-b services by creating a Device Variable named DISABLED_SERVICES with the services you want to disable as comma-separated values. For example, if you want to disable the dump1090fa service, you set the DISABLED_SERVICES variable to dump1090fa. If you want to disable the dump1090fa and piaware services, you set the DISABLED_SERVICES variable to dump1090fa, piaware.

Please note: Due to how these services are integrated, it's not currently possible to disable the wifi-connect and kiosk services.

Adaptive gain configuration

The dump1090-fa service can be configured to adapt the tuner gain to changing conditions automatically. You can read more about how this works at FlightAware's website.

Adaptive gain in dynamic range mode

From FlightAware's documentation: The dynamic range adaptive gain mode attempts to set the receiver gain to maintain a given dynamic range - that is, it tries to set the gain so that general noise is at or below a given level.

This mode is enabled by default. If you specify the antenna gain manually (see below), it will be deactivated. You can manually disable this mode by setting a Device Variable named DUMP1090_ADAPTIVE_DYNAMIC_RANGE with the value false.

Adaptive gain in "burst" signal mode

From FlightAware's documentation: The "burst" adaptive gain mode listens for loud bursts of signal that were not successfully decoded as ADS-B messages, but which have approximately the right timing to be possible messages that were lost due to receiver overloading. When enough overly-loud signals are heard in a short period of time, dump1090 will reduce the receiver gain to try to allow them to be received.

This mode is disabled by default. You can enable it by setting a Device Variable named DUMP1090_ADAPTIVE_BURST with the value true.

For this mode to work optimally, you should adjust loud and quiet ranges. You do this by creating two Device Variables named DUMP1090_ADAPTIVE_BURST_LOUD_RATE and DUMP1090_ADAPTIVE_BURST_QUIET_RATE, with the desired loud- and quiet targets as their values.

Limiting the gain range

From FlightAware's documentation: If you know in advance approximately what the gain setting should be, so you want to allow adaptive gain to change the gain only within a certain range, you can set minimum and maximum gain settings in dB. Adaptive gain will only adjust the gain within this range.

You can specify the target maximum and minimum gain by creating two Device Variables named DUMP1090_ADAPTIVE_MIN_GAIN and DUMP1090_ADAPTIVE_MAX_GAIN, with the desired maximum- and minimum gain as their values.

Reducing the CPU cost of adaptive gain

From FlightAware's documentation: The measurements needed to adjust gain have a CPU cost, and on slower devices it may be useful to reduce the amount of work that adaptive gain does. This can be done by adjusting the adaptive gain duty cycle. This is a percentage that controls what fraction of incoming data adaptive gain inspects. 100% means that every sample is inspected. Lower values reduce CPU use, with a tradeoff that adaptive gain has a less accurate picture of the RF environment. The default duty cycle is 50% on "fast" CPUs and 10% on "slow" CPUs (where currently "slow" means "armv6 architecture", for example the Pi Zero or Pi 1).

You can reduce the duty cycle further by creating a Device Variable named DUMP1090_SLOW_CPU, with the desired duty cycle percentage as the value (1-100).

Setting dump1090 antenna gain

By default, dump1090 will run with adaptive gain in dynamic range mode. You can override this by setting a Device Variable named DUMP1090_GAIN with a value of your liking. You can read more about manual gain optimization at the adsb-wiki.

Part 14 – Updating to the latest version

Updating to the latest version is trivial. If you installed balena-ads-b using the blue Deploy with balena-button, you can click it again and overwrite your current application. All settings will be preserved. For convenience, the button is right here:

Deploy with button

If you used the manual balena push method, pull the changes from the master branch and push the update to your application with the balena CLI. For complete instructions, look at Part 2 – Setup balena and configure the device.

Enjoy!

Visitors

balena-ads-b's People

Contributors

adaptive avatar chrisys avatar danward avatar egonmarmol avatar fiskeben avatar garethhowell avatar ketilmo avatar maggie44 avatar phil-d-wilson avatar schubydoo avatar shawaj avatar teko012 avatar wercsy avatar wiedehopf avatar xginn8 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

balena-ads-b's Issues

Device always disconnects WiFi after a day or two [RESOLVED]

Hardware in Use:

  • Raspberry Pi 3 Model B+
  • FlightAware Pro Stick Plus USB Dongle

Steps To Reproduce:

  • Device has Balena configuration for my Wifi as part of the device setup.
  • Observe it registering correctly with all the ADS-B services.
  • Leave it a day or 2

Expected Behaviour:

  • Device continues to operate as expected and connected to the WiFi and the services.

Actual Behaviour:

  • The device at some point disconnects from the WiFi and starts broadcasting the "balenaWiFi" network.
  • The device stays in this state until power cycled, or the "wifi-connect" interfaces is used to reconnect manually.

Comments:

This is highly frustrating and I'd like to be able to resolve this as soon as possible!

ERROR: /start.sh: line 54: Killed [CLOSED]

On my second feeder, I get this error in a restart loop:

12.07.22 16:21:39 (+0200) dump1090-fa Verifying settings...
12.07.22 16:21:39 (+0200) dump1090-fa
12.07.22 16:21:41 (+0200) dump1090-fa Receiver latitude is set: XX.XXX
12.07.22 16:21:41 (+0200) dump1090-fa Receiver longitude is set: XX.XXX
12.07.22 16:21:41 (+0200) dump1090-fa
12.07.22 16:21:41 (+0200) dump1090-fa Settings verified, proceeding with startup.
12.07.22 16:21:41 (+0200) dump1090-fa
12.07.22 16:21:41 (+0200) dump1090-fa Enabling adaptive gain in dynamic range mode.
12.07.22 16:21:41 (+0200) dump1090-fa Tue Jul 12 14:21:41 2022 UTC dump1090-fa 7.2 starting up.
12.07.22 16:21:41 (+0200) dump1090-fa rtlsdr: using device #0: Generic RTL2832U OEM (Realtek, RTL2838UHIDIR, SN 00000001)
12.07.22 16:21:41 (+0200) dump1090-fa Found Rafael Micro R820T tuner
12.07.22 16:21:41 (+0200) dump1090-fa rtlsdr: tuner gain set to 49.6 dB (gain step 28)
12.07.22 16:21:42 (+0200) dump1090-fa adaptive: using 50% duty cycle
12.07.22 16:21:42 (+0200) dump1090-fa adaptive: enabled adaptive gain control with gain limits 0.0dB (step 0) .. 58.6dB (step 29)
12.07.22 16:21:42 (+0200) dump1090-fa adaptive: enabled dynamic range control, target dynamic range 30.0dB
12.07.22 16:21:42 (+0200) dump1090-fa Allocating 4 zero-copy buffers
12.07.22 16:21:42 (+0200) dump1090-fa /start.sh: line 54: 13 Killed /usr/bin/dump1090-fa $dump1090configuration
12.07.22 16:22:38 (+0200) dump1090-fa Verifying settings...
12.07.22 16:22:38 (+0200) dump1090-fa
12.07.22 16:22:40 (+0200) dump1090-fa Receiver latitude is set: XX.XXX
12.07.22 16:22:40 (+0200) dump1090-fa Receiver longitude is set: XX.XXX
12.07.22 16:22:40 (+0200) dump1090-fa
12.07.22 16:22:40 (+0200) dump1090-fa Settings verified, proceeding with startup.
12.07.22 16:22:40 (+0200) dump1090-fa
12.07.22 16:22:40 (+0200) dump1090-fa Enabling adaptive gain in dynamic range mode.
12.07.22 16:22:40 (+0200) dump1090-fa Tue Jul 12 14:22:40 2022 UTC dump1090-fa 7.2 starting up.
12.07.22 16:22:40 (+0200) dump1090-fa rtlsdr: using device #0: Generic RTL2832U OEM (Realtek, RTL2838UHIDIR, SN 00000001)
12.07.22 16:22:41 (+0200) dump1090-fa Found Rafael Micro R820T tuner
12.07.22 16:22:41 (+0200) dump1090-fa rtlsdr: tuner gain set to 49.6 dB (gain step 28)
12.07.22 16:22:41 (+0200) dump1090-fa adaptive: using 50% duty cycle
12.07.22 16:22:41 (+0200) dump1090-fa adaptive: enabled adaptive gain control with gain limits 0.0dB (step 0) .. 58.6dB (step 29)
12.07.22 16:22:41 (+0200) dump1090-fa adaptive: enabled dynamic range control, target dynamic range 30.0dB
12.07.22 16:22:41 (+0200) dump1090-fa Allocating 4 zero-copy buffers
12.07.22 16:22:41 (+0200) dump1090-fa /start.sh: line 54: 13 Killed /usr/bin/dump1090-fa $dump1090configuration
12.07.22 16:23:46 (+0200) dump1090-fa Verifying settings...
12.07.22 16:23:46 (+0200) dump1090-fa
12.07.22 16:23:48 (+0200) dump1090-fa Receiver latitude is set: XX.XXX
12.07.22 16:23:48 (+0200) dump1090-fa Receiver longitude is set: XX.XXX
12.07.22 16:23:48 (+0200) dump1090-fa
12.07.22 16:23:48 (+0200) dump1090-fa Settings verified, proceeding with startup.
12.07.22 16:23:48 (+0200) dump1090-fa
12.07.22 16:23:48 (+0200) dump1090-fa Enabling adaptive gain in dynamic range mode.
12.07.22 16:23:49 (+0200) dump1090-fa Tue Jul 12 14:23:49 2022 UTC dump1090-fa 7.2 starting up.
12.07.22 16:23:49 (+0200) dump1090-fa rtlsdr: using device #0: Generic RTL2832U OEM (Realtek, RTL2838UHIDIR, SN 00000001)
12.07.22 16:23:49 (+0200) dump1090-fa Found Rafael Micro R820T tuner
12.07.22 16:23:49 (+0200) dump1090-fa rtlsdr: tuner gain set to 49.6 dB (gain step 28)
12.07.22 16:23:49 (+0200) dump1090-fa adaptive: using 50% duty cycle
12.07.22 16:23:49 (+0200) dump1090-fa adaptive: enabled adaptive gain control with gain limits 0.0dB (step 0) .. 58.6dB (step 29)
12.07.22 16:23:49 (+0200) dump1090-fa adaptive: enabled dynamic range control, target dynamic range 30.0dB
12.07.22 16:23:49 (+0200) dump1090-fa Allocating 4 zero-copy buffers
12.07.22 16:23:49 (+0200) dump1090-fa /start.sh: line 54: 13 Killed /usr/bin/dump1090-fa $dump1090configuration
12.07.22 16:24:55 (+0200) dump1090-fa Verifying settings...
12.07.22 16:24:55 (+0200) dump1090-fa
12.07.22 16:24:57 (+0200) dump1090-fa Receiver latitude is set: XX.XXX
12.07.22 16:24:57 (+0200) dump1090-fa Receiver longitude is set: XX.XXX
12.07.22 16:24:57 (+0200) dump1090-fa
12.07.22 16:24:57 (+0200) dump1090-fa Settings verified, proceeding with startup.
12.07.22 16:24:57 (+0200) dump1090-fa
12.07.22 16:24:57 (+0200) dump1090-fa Enabling adaptive gain in dynamic range mode.
12.07.22 16:24:57 (+0200) dump1090-fa Tue Jul 12 14:24:57 2022 UTC dump1090-fa 7.2 starting up.
12.07.22 16:24:57 (+0200) dump1090-fa rtlsdr: using device #0: Generic RTL2832U OEM (Realtek, RTL2838UHIDIR, SN 00000001)
12.07.22 16:24:57 (+0200) dump1090-fa Found Rafael Micro R820T tuner
12.07.22 16:24:57 (+0200) dump1090-fa rtlsdr: tuner gain set to 49.6 dB (gain step 28)
12.07.22 16:24:58 (+0200) dump1090-fa adaptive: using 50% duty cycle
12.07.22 16:24:58 (+0200) dump1090-fa adaptive: enabled adaptive gain control with gain limits 0.0dB (step 0) .. 58.6dB (step 29)
12.07.22 16:24:58 (+0200) dump1090-fa adaptive: enabled dynamic range control, target dynamic range 30.0dB
12.07.22 16:24:58 (+0200) dump1090-fa Allocating 4 zero-copy buffers
12.07.22 16:24:58 (+0200) dump1090-fa /start.sh: line 54: 13 Killed /usr/bin/dump1090-fa $dump1090configuration
12.07.22 16:26:04 (+0200) dump1090-fa Verifying settings...
12.07.22 16:26:04 (+0200) dump1090-fa
12.07.22 16:26:06 (+0200) dump1090-fa Receiver latitude is set: XX.XXX
12.07.22 16:26:06 (+0200) dump1090-fa Receiver longitude is set: XX.XXX
12.07.22 16:26:06 (+0200) dump1090-fa
12.07.22 16:26:06 (+0200) dump1090-fa Settings verified, proceeding with startup.
12.07.22 16:26:06 (+0200) dump1090-fa
12.07.22 16:26:06 (+0200) dump1090-fa Enabling adaptive gain in dynamic range mode.
12.07.22 16:26:06 (+0200) dump1090-fa Tue Jul 12 14:26:06 2022 UTC dump1090-fa 7.2 starting up.
12.07.22 16:26:06 (+0200) dump1090-fa rtlsdr: using device #0: Generic RTL2832U OEM (Realtek, RTL2838UHIDIR, SN 00000001)
12.07.22 16:26:06 (+0200) dump1090-fa Found Rafael Micro R820T tuner
12.07.22 16:26:06 (+0200) dump1090-fa rtlsdr: tuner gain set to 49.6 dB (gain step 28)
12.07.22 16:26:07 (+0200) dump1090-fa adaptive: using 50% duty cycle
12.07.22 16:26:07 (+0200) dump1090-fa adaptive: enabled adaptive gain control with gain limits 0.0dB (step 0) .. 58.6dB (step 29)
12.07.22 16:26:07 (+0200) dump1090-fa adaptive: enabled dynamic range control, target dynamic range 30.0dB
12.07.22 16:26:07 (+0200) dump1090-fa Allocating 4 zero-copy buffers
12.07.22 16:26:07 (+0200) dump1090-fa /start.sh: line 54: 13 Killed /usr/bin/dump1090-fa $dump1090configuration
12.07.22 16:27:12 (+0200) dump1090-fa Verifying settings...
12.07.22 16:27:12 (+0200) dump1090-fa
12.07.22 16:27:14 (+0200) dump1090-fa Receiver latitude is set: XX.XXX
12.07.22 16:27:14 (+0200) dump1090-fa Receiver longitude is set: XX.XXX
12.07.22 16:27:14 (+0200) dump1090-fa
12.07.22 16:27:14 (+0200) dump1090-fa Settings verified, proceeding with startup.
12.07.22 16:27:14 (+0200) dump1090-fa
12.07.22 16:27:14 (+0200) dump1090-fa Enabling adaptive gain in dynamic range mode.
12.07.22 16:27:14 (+0200) dump1090-fa Tue Jul 12 14:27:14 2022 UTC dump1090-fa 7.2 starting up.
12.07.22 16:27:14 (+0200) dump1090-fa rtlsdr: using device #0: Generic RTL2832U OEM (Realtek, RTL2838UHIDIR, SN 00000001)
12.07.22 16:27:14 (+0200) dump1090-fa Found Rafael Micro R820T tuner
12.07.22 16:27:15 (+0200) dump1090-fa rtlsdr: tuner gain set to 49.6 dB (gain step 28)
12.07.22 16:27:15 (+0200) dump1090-fa adaptive: using 50% duty cycle
12.07.22 16:27:15 (+0200) dump1090-fa adaptive: enabled adaptive gain control with gain limits 0.0dB (step 0) .. 58.6dB (step 29)
12.07.22 16:27:15 (+0200) dump1090-fa adaptive: enabled dynamic range control, target dynamic range 30.0dB
12.07.22 16:27:15 (+0200) dump1090-fa Allocating 4 zero-copy buffers
12.07.22 16:27:15 (+0200) dump1090-fa /start.sh: line 54: 14 Killed /usr/bin/dump1090-fa $dump1090configuration
12.07.22 16:28:20 (+0200) dump1090-fa Verifying settings...
12.07.22 16:28:20 (+0200) dump1090-fa
12.07.22 16:28:22 (+0200) dump1090-fa Receiver latitude is set: XX.XXX
12.07.22 16:28:22 (+0200) dump1090-fa Receiver longitude is set: XX.XXX
12.07.22 16:28:22 (+0200) dump1090-fa
12.07.22 16:28:22 (+0200) dump1090-fa Settings verified, proceeding with startup.
12.07.22 16:28:22 (+0200) dump1090-fa
12.07.22 16:28:22 (+0200) dump1090-fa Enabling adaptive gain in dynamic range mode.
12.07.22 16:28:22 (+0200) dump1090-fa Tue Jul 12 14:28:22 2022 UTC dump1090-fa 7.2 starting up.
12.07.22 16:28:22 (+0200) dump1090-fa rtlsdr: using device #0: Generic RTL2832U OEM (Realtek, RTL2838UHIDIR, SN 00000001)
12.07.22 16:28:23 (+0200) dump1090-fa Found Rafael Micro R820T tuner
12.07.22 16:28:23 (+0200) dump1090-fa rtlsdr: tuner gain set to 49.6 dB (gain step 28)
12.07.22 16:28:23 (+0200) dump1090-fa adaptive: using 50% duty cycle
12.07.22 16:28:23 (+0200) dump1090-fa adaptive: enabled adaptive gain control with gain limits 0.0dB (step 0) .. 58.6dB (step 29)
12.07.22 16:28:23 (+0200) dump1090-fa adaptive: enabled dynamic range control, target dynamic range 30.0dB
12.07.22 16:28:23 (+0200) dump1090-fa Allocating 4 zero-copy buffers
12.07.22 16:28:23 (+0200) dump1090-fa /start.sh: line 54: 14 Killed /usr/bin/dump1090-fa $dump1090configuration
12.07.22 16:29:29 (+0200) dump1090-fa Verifying settings...
12.07.22 16:29:29 (+0200) dump1090-fa
12.07.22 16:29:31 (+0200) dump1090-fa Receiver latitude is set: XX.XXX
12.07.22 16:29:31 (+0200) dump1090-fa Receiver longitude is set: XX.XXX
12.07.22 16:29:31 (+0200) dump1090-fa
12.07.22 16:29:31 (+0200) dump1090-fa Settings verified, proceeding with startup.
12.07.22 16:29:31 (+0200) dump1090-fa
12.07.22 16:29:31 (+0200) dump1090-fa Enabling adaptive gain in dynamic range mode.
12.07.22 16:29:31 (+0200) dump1090-fa Tue Jul 12 14:29:31 2022 UTC dump1090-fa 7.2 starting up.
12.07.22 16:29:31 (+0200) dump1090-fa rtlsdr: using device #0: Generic RTL2832U OEM (Realtek, RTL2838UHIDIR, SN 00000001)
12.07.22 16:29:31 (+0200) dump1090-fa Found Rafael Micro R820T tuner
12.07.22 16:29:31 (+0200) dump1090-fa rtlsdr: tuner gain set to 49.6 dB (gain step 28)
12.07.22 16:29:32 (+0200) dump1090-fa adaptive: using 50% duty cycle
12.07.22 16:29:32 (+0200) dump1090-fa adaptive: enabled adaptive gain control with gain limits 0.0dB (step 0) .. 58.6dB (step 29)
12.07.22 16:29:32 (+0200) dump1090-fa adaptive: enabled dynamic range control, target dynamic range 30.0dB
12.07.22 16:29:32 (+0200) dump1090-fa Allocating 4 zero-copy buffers
12.07.22 16:29:32 (+0200) dump1090-fa /start.sh: line 54: 12 Killed /usr/bin/dump1090-fa $dump1090configuration
12.07.22 16:30:38 (+0200) dump1090-fa Verifying settings...
12.07.22 16:30:38 (+0200) dump1090-fa
12.07.22 16:30:40 (+0200) dump1090-fa Receiver latitude is set: XX.XXX
12.07.22 16:30:40 (+0200) dump1090-fa Receiver longitude is set: XX.XXX
12.07.22 16:30:40 (+0200) dump1090-fa
12.07.22 16:30:40 (+0200) dump1090-fa Settings verified, proceeding with startup.
12.07.22 16:30:40 (+0200) dump1090-fa
12.07.22 16:30:40 (+0200) dump1090-fa Enabling adaptive gain in dynamic range mode.
12.07.22 16:30:40 (+0200) dump1090-fa Tue Jul 12 14:30:40 2022 UTC dump1090-fa 7.2 starting up.
12.07.22 16:30:40 (+0200) dump1090-fa rtlsdr: using device #0: Generic RTL2832U OEM (Realtek, RTL2838UHIDIR, SN 00000001)
12.07.22 16:30:40 (+0200) dump1090-fa Found Rafael Micro R820T tuner
12.07.22 16:30:40 (+0200) dump1090-fa rtlsdr: tuner gain set to 49.6 dB (gain step 28)
12.07.22 16:30:41 (+0200) dump1090-fa adaptive: using 50% duty cycle
12.07.22 16:30:41 (+0200) dump1090-fa adaptive: enabled adaptive gain control with gain limits 0.0dB (step 0) .. 58.6dB (step 29)
12.07.22 16:30:41 (+0200) dump1090-fa adaptive: enabled dynamic range control, target dynamic range 30.0dB
12.07.22 16:30:41 (+0200) dump1090-fa Allocating 4 zero-copy buffers
12.07.22 16:30:41 (+0200) dump1090-fa /start.sh: line 54: 12 Killed /usr/bin/dump1090-fa $dump1090configuration
12.07.22 16:31:46 (+0200) dump1090-fa Verifying settings...
12.07.22 16:31:46 (+0200) dump1090-fa
12.07.22 16:31:48 (+0200) dump1090-fa Receiver latitude is set: XX.XXX
12.07.22 16:31:48 (+0200) dump1090-fa Receiver longitude is set: XX.XXX
12.07.22 16:31:48 (+0200) dump1090-fa
12.07.22 16:31:48 (+0200) dump1090-fa Settings verified, proceeding with startup.
12.07.22 16:31:48 (+0200) dump1090-fa
12.07.22 16:31:48 (+0200) dump1090-fa Enabling adaptive gain in dynamic range mode.
12.07.22 16:31:48 (+0200) dump1090-fa Tue Jul 12 14:31:48 2022 UTC dump1090-fa 7.2 starting up.
12.07.22 16:31:48 (+0200) dump1090-fa rtlsdr: using device #0: Generic RTL2832U OEM (Realtek, RTL2838UHIDIR, SN 00000001)
12.07.22 16:31:49 (+0200) dump1090-fa Found Rafael Micro R820T tuner
12.07.22 16:31:49 (+0200) dump1090-fa rtlsdr: tuner gain set to 49.6 dB (gain step 28)
12.07.22 16:31:49 (+0200) dump1090-fa adaptive: using 50% duty cycle
12.07.22 16:31:49 (+0200) dump1090-fa adaptive: enabled adaptive gain control with gain limits 0.0dB (step 0) .. 58.6dB (step 29)
12.07.22 16:31:49 (+0200) dump1090-fa adaptive: enabled dynamic range control, target dynamic range 30.0dB
12.07.22 16:31:49 (+0200) dump1090-fa Allocating 4 zero-copy buffers
12.07.22 16:31:49 (+0200) dump1090-fa /start.sh: line 54: 13 Killed /usr/bin/dump1090-fa $dump1090configuration
12.07.22 16:32:55 (+0200) dump1090-fa Verifying settings...
12.07.22 16:32:55 (+0200) dump1090-fa
12.07.22 16:32:57 (+0200) dump1090-fa Receiver latitude is set: XX.XXX
12.07.22 16:32:57 (+0200) dump1090-fa Receiver longitude is set: XX.XXX
12.07.22 16:32:57 (+0200) dump1090-fa
12.07.22 16:32:57 (+0200) dump1090-fa Settings verified, proceeding with startup.
12.07.22 16:32:57 (+0200) dump1090-fa
12.07.22 16:32:57 (+0200) dump1090-fa Enabling adaptive gain in dynamic range mode.
12.07.22 16:32:57 (+0200) dump1090-fa Tue Jul 12 14:32:57 2022 UTC dump1090-fa 7.2 starting up.
12.07.22 16:32:57 (+0200) dump1090-fa rtlsdr: using device #0: Generic RTL2832U OEM (Realtek, RTL2838UHIDIR, SN 00000001)
12.07.22 16:32:57 (+0200) dump1090-fa Found Rafael Micro R820T tuner
12.07.22 16:32:57 (+0200) dump1090-fa rtlsdr: tuner gain set to 49.6 dB (gain step 28)
12.07.22 16:32:58 (+0200) dump1090-fa adaptive: using 50% duty cycle
12.07.22 16:32:58 (+0200) dump1090-fa adaptive: enabled adaptive gain control with gain limits 0.0dB (step 0) .. 58.6dB (step 29)
12.07.22 16:32:58 (+0200) dump1090-fa adaptive: enabled dynamic range control, target dynamic range 30.0dB
12.07.22 16:32:58 (+0200) dump1090-fa Allocating 4 zero-copy buffers
12.07.22 16:32:58 (+0200) dump1090-fa /start.sh: line 54: 13 Killed /usr/bin/dump1090-fa $dump1090configuration
12.07.22 16:34:03 (+0200) dump1090-fa Verifying settings...
12.07.22 16:34:03 (+0200) dump1090-fa
12.07.22 16:34:05 (+0200) dump1090-fa Receiver latitude is set: XX.XXX
12.07.22 16:34:05 (+0200) dump1090-fa Receiver longitude is set: XX.XXX
12.07.22 16:34:05 (+0200) dump1090-fa
12.07.22 16:34:05 (+0200) dump1090-fa Settings verified, proceeding with startup.
12.07.22 16:34:05 (+0200) dump1090-fa
12.07.22 16:34:05 (+0200) dump1090-fa Enabling adaptive gain in dynamic range mode.
12.07.22 16:34:05 (+0200) dump1090-fa Tue Jul 12 14:34:05 2022 UTC dump1090-fa 7.2 starting up.
12.07.22 16:34:06 (+0200) dump1090-fa rtlsdr: using device #0: Generic RTL2832U OEM (Realtek, RTL2838UHIDIR, SN 00000001)
12.07.22 16:34:06 (+0200) dump1090-fa Found Rafael Micro R820T tuner
12.07.22 16:34:06 (+0200) dump1090-fa rtlsdr: tuner gain set to 49.6 dB (gain step 28)
12.07.22 16:34:06 (+0200) dump1090-fa adaptive: using 50% duty cycle
12.07.22 16:34:06 (+0200) dump1090-fa adaptive: enabled adaptive gain control with gain limits 0.0dB (step 0) .. 58.6dB (step 29)
12.07.22 16:34:06 (+0200) dump1090-fa adaptive: enabled dynamic range control, target dynamic range 30.0dB
12.07.22 16:34:06 (+0200) dump1090-fa Allocating 4 zero-copy buffers
12.07.22 16:34:06 (+0200) dump1090-fa /start.sh: line 54: 13 Killed /usr/bin/dump1090-fa $dump1090configuration

Newbe Issue at Point 14 [CLOSED]

Hi together,
sorry I am very new to this space and I dont know excatly how it works here. I tried to set up the balena ads b project but unfortunately I can't get any further at point 14. Maybe you can help me? My powershell gives me an error message that the term "git" is not recognized as a name of a cmdlet, function, script file, or executable program. See Screenshot. I already installed a newer version of powershell (7.2.1) and i tried also install poshGit module. What I am doing worng?
Thanks in advance for your help!

image

[Feature Request] Add wiedehopf / tar1090

Add wiedehop's tar1090 web interface to the setup. From #40:

Only thing i can think of is that your image is missing a nice interface ;P
It should be straight forward to add tar1090 using /run/adsbexchange as a data source if you're interested.
https://github.com/wiedehopf/tar1090#tar1090
The components you need are the html directory, http configuration pointing at /tar1090/data at /run/adsbexchange and (optional but highly recommended) the bash script that makes history files from a configurable path (/run/adsbexchange) and puts them in /run/tar1090 ... then you also need http config pointing /tar1090/chunks at /run/tar1090.
The github repo has http configuration templates for nginx and lighttpd.
nginx is highly recommended, once you use it you won't want to go back!

Anyhow i wouldn't want to make a PR for this stuff as you know better how you want it integrated.
There is also a tar1090 docker container by mikenye but it runs its own readsb .. you wouldn't need to do that but you certainly could easy enough if you want it independent of the adsbexchange feed part.
https://github.com/mikenye/docker-tar1090/

Error during build process - client.planefinder.net Not Found (404) [RESOLVED]

Hello,
At the stage of push to the device (git push balena master) there is an error with client.planefinder.net address:

[planefinder] Processing triggers for libc-bin (2.28-10) ...
[planefinder] --2021-02-27 08:52:54-- http://client.planefinder.net/pfclient_4.2.70_armhf.deb
[planefinder] Resolving client.planefinder.net (client.planefinder.net)...
[planefinder] 23.63.240.192, 23.63.240.186, 2600:141b:7000::173f:f0ba, ...
[planefinder] Connecting to client.planefinder.net (client.planefinder.net)|23.63.240.192|:80...
[planefinder] connected.
[planefinder]
[planefinder] HTTP request sent, awaiting response...
[planefinder] 404 Not Found
[planefinder]
[planefinder] 2021-02-27 08:52:54 ERROR 404: Not Found.
[planefinder]
[planefinder] Removing intermediate container d3d3b3cb1600
[planefinder] The command '/bin/sh -c chmod +x /tmp/planefinder_installer.sh && ./planefinder_installer.sh && chmod +x /start.sh && rm -rf /tmp/' returned a non-zero code: 8
[Info] Uploading images
[Success] Successfully uploaded images
[Error] Some services failed to build:
[Error] Service: planefinder
[Error] Error: The command '/bin/sh -c chmod +x /tmp/planefinder_installer.sh && ./planefinder_installer.sh && chmod +x /start.sh && rm -rf /tmp/
' returned a non-zero code: 8
[Info] Built on arm05
[Error] Not deploying release.

remote: error: hook declined to update refs/heads/master
To git.balena-cloud.com:g_michael_b2/airradar.git
! [remote rejected] master -> master (hook declined)
error: failed to push some refs to '[email protected]:g_michael_b2/airradar.git'
root@orangepione:~/balena-ads-b#

Can you kindly check how to fix this?
Thank you!

Open Sky error

opensky-network Statistics
opensky-network - started on Mon Dec 25 10:00:33 2023
opensky-network - running since 1d, 00h:27m:48s
opensky-network
opensky-network Receiver
opensky-network - 221289 frames received (2.51 /s, 0.93 /s)
opensky-network - 88127 [ 40%] Mode-A/C (1.00 /s, 0.93 /s)
opensky-network - 43185 [ 20%] Mode-S Short (0.49 /s, 0.00 /s)
opensky-network - 89977 [ 41%] Mode-S Long (1.02 /s, 0.00 /s)
opensky-network - 10539 [ 8%] type 0 (0.12 /s, 0.00 /s)
opensky-network - 3893 [ 3%] type 4 (0.04 /s, 0.00 /s)
opensky-network - 3312 [ 2%] type 5 (0.04 /s, 0.00 /s)
opensky-network - 25441 [ 19%] type 11 (0.29 /s, 0.00 /s)
opensky-network - 279 [ 0%] type 16 (0.00 /s, 0.00 /s)
opensky-network - 72364 [ 54%] type 17 (0.82 /s, 0.00 /s)
opensky-network - 18 [ 0%] type 18 (0.00 /s, 0.00 /s)
opensky-network - 12275 [ 9%] type 20 (0.14 /s, 0.00 /s)
opensky-network - 5041 [ 4%] type 21 (0.06 /s, 0.00 /s)
opensky-network - 0 [ 0%] status (0.00 /s, 0.00 /s)
opensky-network - 0 [ 0%] unknown (0.00 /s, 0.00 /s)
opensky-network - 88127 [ 40%] filtered (1.00 /s, 0.93 /s)
opensky-network - 0 [ 0%] Mode-S filtered (0.00 /s, 0.00 /s)
opensky-network - 221289 unsynchronized frames
opensky-network
opensky-network Buffer
opensky-network - 0 queued messages (current)
opensky-network - 21 queued messages (max)
opensky-network - 0 discarded messages (current)
opensky-network - 0 discarded messages (overall)
opensky-network - 0 discarded messages (in worst overflow situation)
opensky-network - 199 messages in pool (Usage 0.00%)
opensky-network - 0 dynamic pools (current)
opensky-network - 0 dynamic pools (overall)
opensky-network - 0 dynamic pools (max)
opensky-network - 0 uncollected dynamic pools
opensky-network - 6 flushes
opensky-network - 0 Garbage Collector runs
opensky-network
opensky-network Network
opensky-network - currently online
opensky-network - 88067 [100%] seconds online (overall)
opensky-network - 5 disconnections
opensky-network - 6 connection attempts
opensky-network - 2858500 bytes sent (32.46/s)
opensky-network - 36 bytes received (0.00/s)

Seems like i am getting alot of disconnections any other people having the same issue

After Balena OS update (balenaOS 2.82.10+rev1): dump1090-fa rtlsdr: no supported devices found. [RESOLVED]

dump1090-fa Receiver longitude is set: 3.7641157410193986
dump1090-fa
dump1090-fa Settings verified, proceeding with startup.
dump1090-fa
dump1090-fa Fri Jul 30 18:58:26 2021 UTC dump1090-fa 5.0 starting up.
dump1090-fa rtlsdr: no supported devices found.
dump1090-fa Verifying settings...
dump1090-fa
dump1090-fa Receiver latitude is set: 51.04xxxxxxxxxxxxxxxx
dump1090-fa Receiver longitude is set: 3.76xxxxx
dump1090-fa
dump1090-fa Settings verified, proceeding with startup.
dump1090-fa
dump1090-fa Fri Jul 30 18:59:31 2021 UTC dump1090-fa 5.0 starting up.
dump1090-fa rtlsdr: no supported devices found.

I'm using the flightaware pro stick plus (since april 2021) on a Raspberry Pi4 4GB
Update: I've tried swapping the stick from USB ports - no results
Also tried another RTLSDR stick (the one I used before), still same error.

[FEATURE REQUEST] Add ATC communication

Dear,

I believe that a lot of people are using your fantastic solution on airports, like as I πŸ™‚

Have you thought about adding a new feature, namely intercepting communications at the airport's frequency?

Something like in the picture:

Drawing

Thank you

[Improvement]Β Question in regards to adsbexchange integration [RELEASED]

COPY --from=buildstep /tmp/mlat-client_*_*.deb /tmp/

So ... this mlat-client will clash with the normal mlat-client package as the package isn't really named different.
Python is a mess anyhow that's why the adsbexchange feed client uses a venv and just installs like that.
See this script here: https://github.com/adsbxchange/adsb-exchange/blob/master/update.sh#L180

Anyhow the normal mlat-client will work but our fork is strongly preferred.
(and our fork probably also works for other aggregators but that is in no way guaranteed)

I can look into making it adsbexchange-mlat-client i suppose including package name and everything ...

ARG READADSB_VERSION=v3.8.1

Are you opposed to just using the master branch?
The version used here is very very very old (it's from before the fork).
Actually this made me realize i should just remake that repository and fork from my repository ... it doesn't have all the database baggage making it huge.
But that would also mean your build will stop working.

If you want to not use a branch but rather a version ... the current commit is as good as any: 8468e346408b3c79ce16cf33e86640d03727fc4f

I'd make a PR but the changes depend on how you want to handle the above :)

Bad Gateway [CLOSED]

So i have set up the abs flight tracker on balena cloud everything is setup up but when i try to access the web page it says Bad Gateway thats all

Thanks

Issue while trying to configure new device [RESOLVED]

Hello there,

I am trying to configure a new flight feeder from scratch, and I have an issue with the FlightRadar24 config part.
I am currently at 4.B.14: When asked for your receiver's IP address/hostname, enter dump1090-fa.

When I try to do that, I get an error saying the value is incorrect, see image below.
image

Does anyone know what I'm doing wrong and how to fix it? 😁

[Feature Request] Implement GPS-Module support

Hi Ketil,

Based on my experience with Stratux receiver, I thought it might be useful to add GPS module support to your project.
For example VK172 USB or similar module for GPS/GLONASS. It cost Β±5$ and gives mobile users, who use run receiver from a car or vessel, flexibility with GEO Variables. No need to set LAT and LON if GPS module detected on the device.

B.R.
Michael

How to update to latest version [RESOLVED]

Hi,

I am running this system for over a year and would like to update to the latest version so that adsbexchange will be included. This because I use adsbexchange a lot for tracking flight around my home. I cannot find the correct way to do an update. Of course I do not want to lose all my settings. I cannot find the blue button and balena push is not working as it is not complete.
Is there an easy way of updating available. I am running on a Raspberry Pi 3. The current release I am running is : cd2c1cd.
I did update the BalenaOS and the supervisor. BalenaOS is now 2.98.12. Supervisor is 13.1.6.
Thanks for the help, much appreciated.

Flightaware MLAT not working [RESOLVED]

The system is running and all are sending data. Only for the Flightaware (Piaware) it does not sent MLAT data. For the other services this is running normally. I have restarted the Flightaware service and than it switches on but shortly after is is red again.
Please have a look what is going on and how to resolve the issue.

Unable to get MLAT status [CLOSED]

hello, I have been using this for a while and for some odd reason I not been able to get MLAT status even thou everything is setup correctly. I am using the balenaCloud setup I followed the directions to the letter and I see the green MLAT status for a few minutes and then it's gone. Any ideas?

Thanks

OS update failed [RESOLVED]

Since a few weeks I am not able to update my balena ADS-B device anymore.
It is a raspberry pi 3 and is running Supervisor Version15.0.0 and Host Os Version 4.0.16.
I want to update the system to SV 15.0.2 and Host OS Version 4.1.1. I select i the dashboard summarythe SV and select 15.0.2. It start to apply the update but it always fails.

After that I tried to create a new release which instaled correctly but did not update to newer versions of the SV nor the Host OS.

What can I do to get the latest update installed and working?

Can't get data from port 30005 or 30106 for VRS (Virtual Radar Server) [RESOLVED]

Hi,

Thank you for your great work. I wanted to set up a new Pi4 as an ADS-B receiver. So far, it has always been very laborious and time-consuming. With your Balena package, this is almost child's play. TOP!

I normally pull the data for my VRS (Virtual Radar Server) from my dump1090 receivers via ports 30005 and 30106, but with my actually Balena installation I don't seem to have any access?
Are the ports not accessible from the outside? Is there any other way to push to a VRS?

Thanks

Daniel

dump1090 web-page returns "Bad Gateway" [RESOLVED]

Hi, Ketil,
I hope you are doing well!

I continue to set up the my receiver and had started from FlightRadar24 (where I have the account already).
I've set FR24_KEY and checked logs to find how it is going. Unfortunately it looks like fr24feed can't connect dump1090:

03.03.21 19:13:12 (+0300) fr24feed 2021-03-03 16:13:12 | [feed][n]ping 25
03.03.21 19:13:13 (+0300) fr24feed 2021-03-03 16:13:13 | [feed][n]syncing stream result: 1
03.03.21 19:13:14 (+0300) fr24feed 2021-03-03 16:13:14 | [reader][i]Connecting to unknown receiver via (tcp://dump1090-fa:30005)
03.03.21 19:13:14 (+0300) fr24feed 2021-03-03 16:13:14 | [reader][e]Could not connect to tcp://dump1090-fa:30005
03.03.21 19:13:19 (+0300) fr24feed 2021-03-03 16:13:19 | [reader][i]Connecting to unknown receiver via (tcp://dump1090-fa:30005)
03.03.21 19:13:19 (+0300) fr24feed 2021-03-03 16:13:19 | [reader][e]Could not connect to tcp://dump1090-fa:30005

I also found that local web-page of the device returns "Bad Gateway".
And I also see strange "process killing" activity in the dump1090 log:

03.03.21 19:07:00 (+0300) dump1090-fa Verifying settings...
03.03.21 19:07:00 (+0300) dump1090-fa
03.03.21 19:07:02 (+0300) dump1090-fa Receiver latitude is set: 43.5209
03.03.21 19:07:02 (+0300) dump1090-fa Receiver longitude is set: 39.8595
03.03.21 19:07:02 (+0300) dump1090-fa
03.03.21 19:07:02 (+0300) dump1090-fa Settings verified, proceeding with startup.
03.03.21 19:07:02 (+0300) dump1090-fa
03.03.21 19:07:02 (+0300) dump1090-fa Wed Mar 3 16:07:02 2021 UTC dump1090-fa 4.0 starting up.
03.03.21 19:07:03 (+0300) dump1090-fa rtlsdr: using device #0: Generic RTL2832U OEM (Realtek, RTL2838UHIDIR, SN 00000001)
03.03.21 19:07:03 (+0300) dump1090-fa Found Rafael Micro R820T tuner
03.03.21 19:07:03 (+0300) dump1090-fa rtlsdr: enabling tuner AGC
03.03.21 19:07:03 (+0300) dump1090-fa Allocating 4 zero-copy buffers
03.03.21 19:07:03 (+0300) dump1090-fa /start.sh: line 46: 13 Killed /usr/bin/dump1090-fa --device-type rtlsdr --device "$DUMP1090_DEVICE" --lat "$LAT" --lon "$LON" --fix --gain "$DUMP1090_GAIN" --ppm "$DUMP1090_PPM" --max-range "$DUMP1090_MAX_RANGE" --net --net-heartbeat 60 --net-ro-size 1000 --net-ro-interval 1 --net-http-port 0 --net-ri-port 0 --net-ro-port 30002,30102 --net-sbs-port 30003 --net-bi-port 30004,30104 --net-bo-port 30005,30105 --raw --json-location-accuracy 2 --write-json /run/dump1090-fa --quiet

Looking forward for your advise how can I fix this.

B.R.
Michael

ADS-B stuck in online (VPN only) mode [RESOLVED]

I tried to update to the latest version of the supervisor version and also the host os version.
The host OS version updated without any problem. After that the system became stuck in online (VPN only) mode.
I could not find what to do to get the system running in normal state again.

As I have setup all the radars I do not want to start from scratch.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.