Many ADS-B hobbyist like to share data with the public. Their are several sharing services out there that one can use to do this. However, one of the draw backs of sharing data to some hobbyist is having to tie up a large, power hungry, noisy, and expensive computer to do this. Why not use a small, low power, quiet, cheap computer to do this? Well you can, with either the $35 Raspberry Pi or the $70 MK802. Both units include fanless low power ARM chips to provide the computing power you need in a tiny package. The ARM processors in the MK802 or Raspberry Pi are not very powerful, but they are plenty powerful for ADS-B data sharing. Both systems run modified versions of common Linux distributions that you will need to install. This project is more of a proof of concept and there are probably more details to be worked out depending on the type of ADS-B receiver, how it’s connected to the server (USB or IP), and the data format it sends. The testing was done with a RTL3832u as a receiver with gr-air-modes sending ADS-B data over TCP port 30003 in Kinetics SBS-1 format.
The software that makes this possible has been developed by the folks at Flightradar24 to allow ADS-B sharing with their service. They provide sharing applications for Windows and Linux, but more importantly for this project is their Linux ARM version. Having experimented with both the Raspberry Pi and the MK802, I have found due to the low power processor and the limited Linux distributions it can be a bit frustrating to get some software to work on these devices, if at all. This was not the case with Flightradar24 ARM based sharing software, it worked well with both the MK802 and Raspberry Pi. The ARM software can be downloaded in this forum post on the Flightradar24 web site. The software is still Beta, but seems to work very well. I would suggest if you have any questions as to what equipment is supported or suggestions for improvements that you post them to Flightradar24’s forum. Before you can use the software, you will have to obtain a sharing key form Flightradar24 by sending an email with your nearest airport ICAO code included to firstname.lastname@example.org. I will also have to say that after having dealt with a couple of other ADS-B sharing services that Flightradar24’s technical support is top notch.
The sharing software is set up by default to look for Basestation compatible data on TCP port 30003 and forward type 17 (aircraft identification and position) messages to Flightradar24’s servers. It is also set by default to look for this data on localhost which means it expects the data to becoming from an ADS-B device directly connected to your computer. I was not able to test an ADS-B receiver plugged directly into the USB port on either the MK802 or Raspberry Pi. My experience with both the MK802 and the Raspberry Pi has shown that both computers can be a bit finicky about what devices are plugged into the USB port. However, most USB devices work fine, but your mileage may vary depending on the USB device. The only small issue I had was that I was receiving ADS-B data from an external PC via TCP. Since the software listens on localhost, I initially could not get the sharing program to connect. I could not find any obvious way in the sharing software to change the IP address it uses to listen for data. However, there was an easy work around for this. I just went into the etc directory of the Linux installations on both the MK802 and Raspberry Pi and edited the host file and changed the localhost entry to the IP address of the computer that was sending the data. Then both the MK802 and the Rasperry Pi worked fine receiving data from the external computer with the sharing software set to localhost. Once everything is working on the MK802 or the Raspberry Pi you can disconnect the keyboard and monitor and just let it run. You might want to consider adding a start up script for the software so that if the power goes out the server will automatically restart when power returns to the server.
Here are the basic steps to get this going:
You will need a USB keyboard and mouse. A monitor with HDMI input to configure either device. These can be removed once the device is setup and the sharing software is installed and running. Another computer will be necessary to build the boot images for either device.
Installing on the Raspberry Pi
1. You will at need at least an 8GB SD card to install the operating system on.
2. Download the lasted release of Debian Wheezy from www.raspberrypi.org/downloads
3. Follow the installation directions and install the OS.
4. Optional but recommended. Install any updates to the OS.
5. Download the Flightradar24 Linux ARM sharing software. Be sure to get your sharing key!
6. Extract the downloaded file to a directory of your choice.
7. Connect your ADS-B receiver or connect it to your network if it sends data via TCP.
7. Open a terminal window. CD into the directory that contains the sharing software.
8. Type ./fr24feed_arm-le_222 –fr24key=YOUR_SHARING_KEY at the prompt.
9. The sharing software should start and show that it is connected to your ADS-B receiver.
10. If you are sending ADS-B data over TCP, then you may need to edit the Host file contained in the etc directory of your Linux installation and change the localhost location to the IP address to the device sending the ADS-B data.
11. Create optional start up script.
12 Unplug keyboard, mouse, and monitor. You are good to go!
Installing on the MK802
1. You will need at least a 8GB Micro SD card.
2. I tested this on the Fedora 17 install, which in my opinion is one of the better Linux distributions for the MK802. This can be downloaded here.
3. Install the operating system on the Micro SD card. Instructions can be found here.
4. Follow steps 4 through 12 as listed above.
Again, this project proves that it is possible to use one of these low cost low power devices as an ADS-B server for 24/7 operation. Please keep in mind that your particular ADS-B receiver may not be completely supported and that the software is still pretty much beta. However, if you have an ARM device, go ahead and test it out and let us know what works or doesn’t work for you. Which device would I choose to use for this project? The MK802 hands down. It is cheaper than the Raspberry Pi by the time you buy a power supply, case, and cables necessary to use the Raspberry Pi. The MK802 comes with everything you need except the mini sd card. The MK802 also comes with built in Wifi which makes placement a bit more convenient.
17 thoughts on “ADS-B Sharing Server on a Stick (or a Pi)”
Running the ms windows flight radar client for mode-s will also get you a key quicker without the need to email. Then pop the key into your Linux box.
for people who own a realtek sdr and are using a virtual machine or another headless server and need to get the ads-b data out give stunnel or ncat a try. With these you can ‘port forward’ to the client you want and connect locally on that machine. (port 30003)
My setup works great with an old netbook with no noisy fan and minimal power 😉
Does this connect directly to your Realtek dongle via USB and handle decoding via gr-air-modes natively? Or does it simply connect to a port 30003 server and relay messages that have already been decoded?
Right now I’ve been running old netbooks (cracked screens = cheap!) w/ the Realtek dongles, but they hit the CPU very hard doing the software decoding. If it can run on Atom instead that makes this very interesting!
The Raspberry Pi and MK802 ARM based computers are not quite powerful enough to run gr-air-modes and GNU Radio natively. So if your ADS-B receiver consists of a RTL2832U stick using gr-air-modes, you will still have to run a separate computer for decoding. Of course the resulting ADS-B data could be forwarded to the ARM computer, but would be redundant since you could probably use the same computer that is doing the decoding to share the data. This project might be more applicable for those who already own a standalone system such as a SBS commercial receiver (or possibly others). They may be able to simply plug their unit into the ARM computer via USB with the sharing software installed.
Make that run on ARM instead 🙂
tldr version: Do you run gr-air-modes (udh_modes.py) on the ARM computers, or a host machine to do the decoding itself?
Very interesting. That is just what I want to do. Since tthe post has been appeared new devices, that may change the estate of the things. Has you considered Odroid-U or Minix Neo X5?
No, I have not tested these devices yet. They may work if Linux distributions work on them and the distributions contain the needed dependencies.
With O-Droid U there is no problem. It is like a Raspberry Pi, but with a more powerful CPU (1.7 Ghz)
The Minix Neo X5 is a Dual Core based on the RK3066 and 1.6 Ghz. There is some trial to get Ubuntu into this series.
There is yet even a Quadcore RK3066 device.
Im running ads-b server only whith mk802 and USB realtek receiver. It works ok with dump1090 and flightradar software.
Mk802 acts as decoder of adsb-b data and a server to flightradar24. No computer required. 24 hours and 7 days, all ok. RADAR. T-LESA1 on flightradar24.
I’m tired of running note book for feeding the data and want invest MK802 or 808 for dedicatig feeding compouter. I just want to confirm that combination of Mk802,RTL2832U USB dongle,dump1090 and flightrader24 will work.
thank you for your input
Do you know of it would work with a Bullion IP?
I am also useing a Pi right now. Now I wanted to autostart the dump1090 software and the flightradar feeder script. No problem with the dump1090 but I don’t know how to build the startup script like desciptet in point 11 above. Could anybody help me here?
Hi Olaf. You need create this script in /etc/init.d/
(named, for example fr24.sh )
FR24AUTHIP=220.127.116.11 ./fr24feed_arm-le_225s –fr24key=YOURFR24KEY –bs$
ASSUMING YOU FLIGHTRADAR PROGRAM IS LOCATED AT: /root/flightradar
now create a symbolic link to this file with:
#sudo ln -s /etc/init.d/fr24.sh /etc/rc2.d/S97fr24
Hey, New to all this but looking to get a Pi up and running sending data from dump1090 to FightRadar using a USB DTV stick…
Olaf – Did you get results from your project?
Have you considered the SDRPlay RSP for which comprehensive APIs are provided in the downloads section of our website? This allows tight and efficient control of the radio tuner.
Have you considered our RSP for which comprehensive APIs are provided in the downloads section of our website? This allows tight and efficient control of the radio tuner.
Have you considered our RSP for which comprehensive APIs are provided in the downloads section of our website? This allows tight and efficient control of the radio tuner. Jon