{{:flight:oarc-ads-b-v2.png?nolink&750|}} ====== ADS-B Flight Tracking ====== * **[[https://adsb.oarc.uk/|OARC Flight Tracker]] - Map of flights being tracked by OARC feeders** - there's also the feed checker, 12 hourly tracks at various altitudes, MLAT sync/map pages, system graphs and stats, and a live log of emergency flights tracked by the service * [[flight:trackers|Active trackers in OARC]] - Member list of people running flight trackers, with kit info and who they're feeding * [[flight:squawks|Up to date UK Squawk list]] - Direct from the UK Civil Aviation Authority, and more up to date than the other sources online. Squawks can sometimes provide additional information about a flight **Update: 09/12/2023:** You can now feed HFDL to the OARC tracker! Click [[flight:feedhfdl|here]] for more details. **Update: 11/02/2024:** As a result of this HFDL feeding a little issue has cropped up. Some planes have the wrong hex code on HF vs ADS-B! Click [[flight:hfdl-wrong-hexes|here]] to read more about that and our solution to the problems it creates for the tracker. ===== Introduction ===== OARC maintains a system for tracking the ADS-B data decoded by its members. They may already be feeding other sites, but this enables us to see just our members' data. We're doing this for the hell of it, to see what our combined coverage would be like, as well as learning how to administrate a system like this. We've been able to build up a fairly robust network in a short space of time. This was inspired somewhat by the sale of ADSB Exchange to a private equity firm and our server is a completely unfiltered feed. If you're an OARC member and would like to contribute the information below should get you going. If you have any specific questions ask in #adsb-flight-tracking on the [[https://www.oarc.uk/join|OARC Discord]]. For other useful information on setting up a system from scratch see [[:2m0iig-ads-b-journey|this article]] detailing Mark 2M0IIG's journey into ADS-B reception. There's tips on hardware and software setup, antenna chat, and other information that may be helpful. The server for the tracker was graciously donated by Mark 2W0YMS. ==== How I Made My Own ADSB Exchange Clone In A Weekend ==== A full write-up of how this was done is being slowly developed [[flight:adsb-server-writeup|here]] by Mark 2M0IIG and may be useful for those embarking on a similar ADS-B aggregator project. ===== Getting Started ===== ==== I already have an ADS-B setup ==== If you already have a system (probably Linux-based) for receiving ADS-B data with the Beast data accessible on the standard port of 30005 through dump1090 or readsb and want to just install something to automatically feed OARC's system then please follow the instructions in the following repo: https://github.com/mpentler/oarc-adsb-scripts - these scripts are built off the adsbexchange system, so if you've installed that fine this will probably work for you also. If you're already running a system built around one website (perhaps using a custom Raspberry Pi image) then the scripts above should reconfigure your system to work with this new setup - the only difference being that readsb is now accessing your SDR rather than the software for one specific tracking website. There are also scripts available to reconfigure your system to feed multiple websites, as well as container-based solutions if that's your bag. You could also manually reconfigure things if you're confident. The key is to get your decoder app talking to your radio and offering up data on a network socket. Once that's done all other feeder software can piggy back off that. ==== I am starting afresh ==== Otherwise you'll need a suitable SDR radio (probably an RTL-SDR or similar designed specifically for ADS-B reception) and a suitable Linux system for feeding. This is usually a Raspberry Pi, but it can also be run on normal Linux machines. We'll only cover RTL-SDR-based installs here as that is by far the most popular setup, but you may be able to use other radios with technology such as Soapy SDR or extra drivers. **Update 09/09/23:** click [[#windows|here]] for some Windows instructions for decoding/feeding. For an antenna you can make something really simple or buy something. A simple 1/4 wave ground plane built around a chassis connector for 1090 MHz connector works well, as does a collinear made from coax segments inside a PVC pipe. Feed the antenna with good coax with decent loss stats at this frequency. You can use cable TV 75 Ohm coax at a push and the loss stats are quite good @ 1090 MHz. ===== Software ===== For Raspberry Pi systems you'll probably want Raspbian (Lite would work, unless you really need a GUI display). Images from another website are ok, but a bare Raspbian is definitely recommended and easier to work with. Once you've installed your OS you'll need to get the RTL-SDR stick going. On Raspbian this is sorted by default, but for other systems you may need to install the RTL-SDR drivers first. After that you'll need to install the ADS-B decoder software that will use your RTL-SDR stick to decode the data and expose it to a network endpoint on localhost, ready for feeder software to pick up and send onwards to systems like OARC's. ==== ADS-B Decoder ==== Firstly install readsb for talking to your SDR and exposing the aircraft data on localhost:30005. Use the script here for that: https://github.com/wiedehopf/adsb-scripts/wiki/Automatic-installation-for-readsb This script will also install a local viewer, tar1090, at http://localhost/tar1090 so that you can see your traffic on a pretty map. Do read the instructions carefully and make sure you understand how the software will interact with previously installed feeders, but things should be reconfigured at install time to make it all work. If you're using an image supplied by another tracker website or need a different custom setup and are unsure of how to proceed please ask in the Discord, but the scripts really should reconfigure things and not break them. ==== Feeding OARC and other websites ==== **Update 02/10/23:** [[adsb-service-list|here's]] a list of services/websites that you can feed. I will try and keep this somewhat up to date. After you've done that you can start installing feeder software to send data to OARC and elsewhere. Use the script linked above in [[#prerequisites|Prerequisites]] to feed OARC. Visit other websites to find out how to feed those. Generally there'll be a script to download and run. You'll need to provide your location and altitude to any sites that support MLAT if you'd like to send that data also. There are detailed instructions for the OARC feeder and MLAT clients on the GitHub repo, and the process is quite automated and prompt-led. You shouldn't need TOO much support as long as your SDR works ok. Useful troubleshooting can be done by checking your system journal/log for messages relating to the loading of the drivers for SDR, as well as commands like lsusb to check connected device status. Other components will log to the system journal/log and can help troubleshoot network or radio errors, as well as other system errors that may be stopping things working. Learning about basic systemd service control is useful here and will teach you some Linux skills at the same time. The services for the OARC feeds are oarc-adsb-feed and oarc-adsb-mlat and the master readsb service is just called readsb. ===== MLAT? ===== MLAT - multilateration - is the act of doing time-of-arrival analysis to triangulate the position of aircraft that aren't broadcasting full positional data. If an aircraft is only broadcasting Mode S data then there aren't any coordinates sent, so we have to do time-of-arrival analysis of the signal at multiple stations with known, accurate locations and compute a solution to where the aircraft probably is. This requires some clever maths relating to clocks and Kalman filters things like that. The OARC tracker now supports MLAT and the feeder scripts have been updated to reflect this. Pick a username, add your coordinates and antenna height above sea level along with the unit (e.g. 81m) and let it all install. You'll see your dot on the Sync Map within a minute or two and the position will be somewhat hidden for your privacy. OARC MLAT results will be sent back to your local tar1090 view as well, as happens with other websites you may feed. Bear in mind that our coverage isn't the same as the larger websites, your mileage may vary with MLAT tracks. If you think you can fill in a hotspot then please join us! ==== Windows decoding Sept 2023 ==== If you need to feed from Windows for some reason then here's some instructions. You'll need some different apps to the above but it should all work okay. Barry 2E0GTD has produced a visual guide here to help: __Running the OARC ADSB Feed client on Windows, with an RTL-SDR dongle__ I run a Windows PC in my shack, and don't have a raspberry PI, so I've been trying various ways to feed the OARC ADSB server. Some earlier attempts on Windows (using Virtual Radar Server, RTL1090 and a USB RTL-SDR dongle) showed i could feed aircraft positions, but no MLAT.... so i looked at ways of running a VM with linux, and the proper OARC ADSB feed client. This isn’t a full step-by-step guide at this stage (apologies), but hopefully it has enough pointers and links/references for you to muddle through. Feel free to ping me on Discord in the adsb channel if you run into anything you cant get past. __High level schematic__ {{ :flight:1.jpg?direct&400 |}} __Installation guide__ 1. Install a Virtual machine platform This allows us to have a Debian 11 (with Rpi desktop) virtual machine running on windows, on which the oarc adsb feed client will run. Some free (for personal use) Windows virtual machine platforms: Oracle VirtualBox (simplest, smallest, preferred, what im using): [[https://www.virtualbox.org/wiki/Downloads]] OR VMWare Workstation Pro (largest, most capable.. I havent tried this): [[https://blogs.vmware.com/workstation/2024/05/vmware-workstation-pro-now-available-free-for-personal-use.html]] 2. Obtain Rapsberry PI OS image and create a VM: Download the OS image from the section "Raspberry PI desktop, Compatible with PC and Mac". This should be an ISO file: [[https://www.raspberrypi.com/software/operating-systems/]] Some instructions to create a new VM: [[https://roboticsbackend.com/install-raspbian-desktop-on-a-virtual-machine-virtualbox/]] IMPORTANT NOTE: Make sure your OS is indicated as Debian 32 bit (not 64 bit). IMPORTANT NOTE: in order for MLAT to work you must make sure you follow this advice when creating the VM: [[https://discussions.flightaware.com/t/mlat-on-virtualbox-success/77331]] Specifically: - Chang the system chipset to ICH9 - Uncheck the Hardware Clock in UTC Time box - Set the USB controller to 3.0 (xHCI) Hopefully you end up with something like this: {{ :flight:2.jpg?direct&400 |}} 3. RTL-SDR usb passthrough In Oracle virtualbox, we need to ensure your RTL-SDR usb dongle is ignored by windows , and captured by the linux guest. In your Virtual Machine window menu items, click Devices, USB, USB Settings Add a USB filter using the add button on the right: {{ :flight:3.jpg?direct&400 |}} Then select the RTL-SDR in the Devices, USB menu like this: {{ :flight:4.jpg?direct&400 |}} You can check that the linux guest can see the RTL-SDR by running the command “lsusb” in a console: {{ :flight:5.jpg?direct&400 |}} 4. Install the OARC ADSB FEED CLIENT You should now be able to follow the standard instructions for installing and configuring the OARC ADSB feed client from here: [[https://github.com/mpentler/oarc-adsb-scripts]] At the end of the installation script you will see the link to install the rtl / adsb client also needed: [[https://github.com/wiedehopf/adsb-scripts/wiki/Automatic-installation-for-readsb]] After the reboot, and once your the linux guest has restarted, you should have success! Check your feed here: [[https://adsb.oarc.uk/myip/]] {{ :flight:6.jpg?direct&400 |}}