I’ve written many posts over the last couple of years detailing the steps needed to integrate ADS-B decoder applications (like RTL-1090 and dump1090) with virtual radar display apps (like BaseStation and PlanePlotter). The solutions were mostly complicated by the need to use additional software utilities to massage data streams.

I recently came across a decoder application, though, that does everything you need all in one utility. Want to feed BaseStation and PlanePotter at the same time? No problem. Want to add another data stream for Virtual Radar Server? No problem. Want statistics about the types of data being received? No problem. Want to run it on a variety of platforms, including Windows, Mac OS X, Linux, or the RaspberryPi? No problem.

This little all-in-one solution is called ModeSDeco2, and while it doesn’t have an official website you shouldn’t be put off by that. It’s a versatile, robust command-line utility (don’t be scared!) that will do everything you need to track ADS-B enabled aircraft flying over your home. And it doesn’t need any additional drivers installed to do it.

Step One

Download the application from the link above and uncompress the folder. At this point I suggest changing the name of the uncompressed folder because by default it will have the compile date as part of the folder name, which adds bulk. Let’s simplify this by changing the name to modesdeco. Now move the folder to a location on your hard drive from which you can safely run applications. I’m not going to go into great detail about this because I don’t know which operating system you’re using. But whether you’re a user of Windows, Linux or the RaspberryPi, you’ll know where to put applications.

Step Two

Create a batch file or shell script from which you will run ModeSDeco2. We’re doing this because we need to append parameters to the run command, and – unless you want to type them all in each time you run ModeSDeco2 – adding them to a batch file or shell script is the easiest way. ModeSDeco2 comes with a sample batch/shell script that you can look at or modify to suit your tastes. In Windows you can use Notepad for this. In any of the unix- and linux-based OS’s, including Mac OS X, use a command line text editor like vi or pico. (Make sure the permissions are set correctly so you can execute the shell script once you’ve got it written.)

In Windows, at its most basic, your batch file will look like this:

@echo off
cmd /c c:\modesdeco2\modesdeco2.exe
PAUSE
exit

That tells Windows to open a new command line window and run ModeSDeco2, then wait until the user (that’s you) forces the application to quit by pressing CTRL+C.

In any of the *nix operating systems, including on the RPi, this is simplified into one line:

./modesdeco2

This assumes you have your shell script saved in the same folder as ModeSDeco2. If not (say you’ve saved the shell script to your desktop), then you’ll need to specify a full path to the app, perhaps like this:

/usr/bin/modesdeco2

So now you have a batch file or shell script that will run ModeSDeco2 using the default settings. This means you’ll be able to receive messages from your rtl-sdr dongle and decode them. Assuming you have your rtl-sdr dongle connected to an available USB port, you should initially see something like this:

2015-04-26 19:52:34.553  INFO     ModeSDeco2 v.20150308
2015-04-26 19:52:34.608  INFO     Magnetic declinations coefficient file wmm.cof load successful
2015-04-26 19:52:35.636  INFO     Using device:  0 mnf: Realtek prod: RTL2838UHIDIR serial: 00000013
2015-04-26 19:52:36.653  INFO     Supported Gains (dB):  0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
2015-04-26 19:52:36.653  INFO     Sample Rate: 2.0 MHz
2015-04-26 19:52:36.653  INFO     Freq: 1090.0 MHz
2015-04-26 19:52:36.653  INFO     Freq Correction: 0 ppm
2015-04-26 19:52:36.653  INFO     Gain: Auto

So it’s working, but you’re not able to actually see any info about any of the aircraft it’s picking up. To see some results, you’ll need to add a parameter to the end of your run command:

cmd /c c:\modesdeco2\modesdeco2.exe --verbose
or
Besides the medicines, plentiful physical exercise,  cialis discount canada yoga, meditative practices, healthy eating, psychotherapy etc. may help normalizing sleep pattern and sexual life as well. One preferred viagra 100mg pfizer  Chinese tonic herb is reishi mushroom. viagra professional 100mg The patients should firstly be clearly examined and diagnosed before they go through the exact way of men, they also desire to complete their research. The Sildenafil citrate effects on the male reproductive system cheap viagra india  very effectively. ./modesdeco2 --verbose

That instructs ModeSDeco2 to display all the raw data it receives, which will look like this:

2015-04-26 20:09:45.246  INFO     8D0C602399C4851948588BF2EBAC DF17 Type 19 ICAO: 0C6023 CA 5 NUCR 0 GNSS -250 VSRC 0 VR -1344 TT 326.706 GS 240.468 GR 0 IC 1 SSC 0 IFR 1 TIMESTAMP 1430093385
2015-04-26 20:09:45.507  INFO     5D0C602381F1AE DF11 ICAO: 0C6023 CA 5 GR 0 II 9 TIMESTAMP 1430093385
2015-04-26 20:09:45.509  INFO     5D0C602381F1AE DF11 ICAO: 0C6023 CA 5 GR 0 II 9 TIMESTAMP 1430093385
2015-04-26 20:09:45.574  INFO     02A185B6301E61 DF0 ICAO: 0C6023 ALTITUDE 8350 MBIT 0 QBIT 1 GR 0 RI 3 CC 1 SL 5 TIMESTAMP 1430093385
2015-04-26 20:09:45.770  INFO     02A185B6301E61 DF0 ICAO: 0C6023 ALTITUDE 8350 MBIT 0 QBIT 1 GR 0 RI 3 CC 1 SL 5 TIMESTAMP 1430093385
2015-04-26 20:09:46.296  INFO     8D0C6023582F5102590556D35FA6 DF17 Type 11 ICAO: 0C6023 CA 5 NIC 8 ALTITUDE 8325 QBIT 1 GR 0 TS 0 CPR 0 TIMESTAMP 1430093386

Now it may be that you still aren’t seeing any aircraft data on your screen, and that may be that the gain on your dongle isn’t set high enough. ModeSDeco2 uses auto by default, but you can specify a gain to use:

cmd /c c:\modesdeco2\modesdeco2.exe --verbose --gain 49.6
or
./modesdeco2 --verbose --gain 49.6

That’s the maximum gain allowed by my dongle. Yours may be different. When you first launched ModeSDeco2, it returned a list of Supported Gains. Use that as a reference.

Now, being able to see the raw data from the aircraft is nice, but wouldn’t it be even better if you could see those planes plotted on an interactive map and see statistics for them? We can do that using the --web argument, followed by a port number we want to use, like this:

cmd /c c:\modesdeco2\modesdeco2.exe --verbose --gain 49.6 --web 8000
or
./modesdeco2 --verbose --gain 49.6 --web 8000

That starts a web server on port 8000, which you can then access using this url: http://127.0.0.1:8000 Pretty cool, eh? Of course, now that we have the web server and can view the data that way, we no longer need the --verbose parameter, so you can remove it.

The built-in web server of ModeSDeco2. Click to view larger.
The built-in web server of ModeSDeco2. Click to view larger.

If you want to feed the data from ModeSDeco2 to another virtual radar application, like BaseStation, for example, you can do that by enabling an output specifically for BaseStation:

cmd /c c:\modesdeco2\modesdeco2.exe --gain 49.6 --web 8000 --sbs10001 10001
or
./modesdeco2 --gain 49.6 --web 8000 --sbs10001 10001

That instructs ModeSDeco2 to output a data stream in the format a Kinetic SBS receiver would normally produce on port 10001. You have to specify a port after the --sbs10001 argument, so to keep things straightforward I used port number 10001.

There are many other command line arguments that you can use and combine to make ModeSDeco2 behave the way you want it to. Here’s a complete list:

[csv src=http://sonicgoose.com/wp-content/uploads/2015/04/modesdeco2-params.csv disable=css unsortable=1,2,3]

As mentioned, you can combine these codes to produce more than one output at the same time. For example…

modesdeco2 --gain 49.6 --web 8000 --rbs --sbs10001 10001 --beast 31001 --avrmlat 33003

…would output the data in three different formats on three different ports all at the same time.

In my next post, I’ll talk about running ModeSDeco2 on more than one computer and how to combine the feed from them into a single data stream. The same can also be used to combine streams from other decoder applications with data from ModeSDeco2, or to massage the data from a different decoder application.

8 replies on “The easiest and simplest ADS-B solution”

  1. Hello Rob,
    At first,many thanks for all of your help and your very useful and accurate guides for our hobby!!!
    For the modesdeco2 i have to say , that i tried it , i liked it so much!!! , but it’s not better than dump1090…
    With modesdeco2 always have fewer and sorter targets on map(VRS)…if someone have a different opinion or an optimal .bat to suggest, please tell it to us!

  2. G’day Rob, thank you for your advice regarding Sergsero’s ModeSdeco2 program.

    I’m using an AirSpy dongle on a laptop with Win 10. Able to setup ModeSdeco2 to feed BaseStation as per your instructions and it’s working well, however, no luck with using the Beast configuration to feed PlanePlotter ( –sb10001 10001 –beast 31001) and in PP I/O settings, ticked Mode-S/ADS-B and high lighted the Beast receiver TCP then in Options – Mode-S receiver – Beast receiver – Setup TCP/IP client – 127.0.0.1:31001. Start PP and get the message that MFC application has stopped and PP closes.

    Any ideas as to what I’m missing in the setup in either ModeSdeco2 or PP?

    Thanks in advance.

    Noel

      1. Thanks Rob, tried different fixes but no luck. I somehow think that I have ticked or unticked one of the many settings that’s could be blocking the feed to PP.

        Will try to call you on Skype if you don’t mind.

        TIA,

        Noel

  3. Can modesdeco2 send data to an application not on the same network? I would like to have a RPI3 running modesdeco2 send data over a verizon mifi to an application running on a desktop computer.

  4. n addition I would be collecting data from dump 978 on the same desktop.
    I’m pretty new here so expect more questions. I do look for already answered ones but I may miss some.
    Thanks

Comments are closed.