No announcement yet.

AcarsDeco2 - multi-channels console RTLSDR ACARS decoder

  • Filter
  • Time
  • Show
Clear All
new posts

  • AcarsDeco2 - multi-channels console RTLSDR ACARS decoder

    This is console (command line) up to 3-channels ACARS software defined radio (SDR) via a RTL2832 dongle receiver and decoder program that can do, for example:
    C:\>acarsdeco2.exe --gain 38.0 --freq-correction 65 --freq 131550000 --freq 131725000 --http-port 8090 --vrs-url --outConnectUdp sbs: --outServer ad2:30008
    --gain 38.0 - setting gain for receiver R820T. Determine the optimal value for your receiving conditions once, for example, in SDRSharp,
    --freq-correction 65 - correction of dongle internal oscillator. This is absolutely critical accurate adjustment for multi-channel receiver,
    --freq 131550000 --freq 131725000 - frequency of ACARS channel, up to 3. The maximum interval between channels with minimum and maximum frequency not more than 1.3 MHz.
    --http-port 8090 - set the port number for HTTP server. Default 8080,
    --vrs-url - network address of VirtualRadarServer for getting aircraft pictures in the WEB window,
    --outConnectUdp sbs: - set UDP client for transmitting ACARS data to PlanePlotter,
    --outServer ad2:30008 - set TCP server for output data on port 30008

    F:\>acarsdeco2.exe --help
    AcarSDeco2 v.20171115
    Program options:
      -h [ --help ]         This help message
      --device-list         List available SDR devices
      --device-index arg    Select SDR device (default: 0)
      --device-serial arg   Select SDR device by serial number
      --gain arg            Set preamp gain of receiver, dB (default: auto)
      --freq-correction arg Set oscillator frequency correction, ppm (default: 0)
      --agc                 Enable automatic gain control in SDR chip (default: off)
      --freq arg            Set receiver frequency, Hz
                            Specify option --freq multiple times to multiple
                            channels (Example: --freq XX --freq YY ...)
      --inConnect arg       Input connector. Format: (sbs|ad2):host:port
      --inConnectId arg     Named input connector. Format: (sbs|ad2):host:port:ID
      --inServer arg        Input server. Format: (sbs|ad2):port
      --inServerId arg      Named input server. Format: (sbs|ad2):port:ID
      --inServerUdp arg     Input UDP server. Format: (sbs|ad2):port
      --outServer arg       Output server. Format: (sbs|ad2|pp):port
      --outConnect arg      Output connector. Format (sbs|ad2|pp):host:port
      --outConnectUdp arg   Output UDP connector. Format: (sbs|ad2|pp):host:port
      --http-port arg       Set port for http server (default: 8080)
      --vrs-url arg         Set VirtualRadarServer url for additional aircraft data
                            Example: (default: off)
      --pictures-url arg    Set aircraft pictures collection url
                            Example: (default: off)
      --pictures arg        Set aircraft pictures collection local path
                            Example: (default: off)
      --silhouettes arg     Set path to directory of aircrafts' silhouettes
      --banners arg         Set path to directory of operators' logos
      --frdb arg            Set path to flightroutes database file
      --db arg              Set path to basestation database file
      --no-uplink           Don't display uplink messages (default: on)
      --no-sq               Don't display messages with SQ label (default: on)
      --no-empty            Don't display empty messages (default: on)
      --logfile arg         Set path to log filename (default: off)
      --logfile-sbs arg     Set path to SBS CSV log filename (default: off)
      --logfile-esbs arg    Set path to extended SBS CSV log filename (default: off)
      --no-console          Disable logging on console (default: on)

    Windows XP/7/8.1/10:

    Raspbian GNU/Linux 8.0 (Jessie): acarsdeco2_rpi2-3_20171115.tgz
    Raspbian GNU/Linux 9.0 (Stretch): acarsdeco2_rpi2-3_deb9_20171115.tgz

    Ubuntu 16.04 Intel 64 bit: acarsdeco2_x86_64_20171115.tgz
    Ubuntu 16.04 Intel 32 bit: acarsdeco2_i386_20171115.tgz

    OS X El Capitan: acarsdeco2_osx_20171115.tgz (Darwin Kernel Version 15.6.0)
    Last edited by sergsero; 2018-02-02, 03:43.

  • #2
    Is it possible to feed ACARS info into VRS, say with a BaseStation MSG format?


    • #3
      It's an interesting idea. Create MSG message and output it to network is not difficult.
      However, in ACARS messages are available and valid only: aircraft registration number, for example, D-AIMK and Flight ID: LH0729. There isn't the main component - ICAO address, which is always present in Mode-S and which uses VRS. Probably have the ability to determine ICAO address, if use basestation.sqb.

      In the moment in acarsdeco2 implemented the reverse opportunity in WEB window - to supplement the ACARS message by data, which are obtained from the VRS, if at the same time it receives the ADS-B message from this aircraft too.
      Last edited by sergsero; 2014-11-08, 13:24.


      • #4
        I'm using acarsd, which works pretty well but the decoder isn't so hot, it misses half the messages or more, partially because it's so slow. At least it logs the planes and makes reports, which is really what I'm after. Maybe an ouput to a log file that one of Mike Simpson's Display programs ( would be a better option. I'm going to give your program a run today and compare it to acarsd and see how it does off the same antenna. All I really need is a log of the output.


        • #5
          Indeed, as one of the solutions that can be used SBS3-ACARS-Display by Mike Simpson. Acarsdeco2 is capable of outputting data in the ACARS SBS-3 format through the port 30008 (default).

          I would like to draw your attention that for correct operation of the dongle must be to perform a one-time the precise tuning of oscillator's frequency (in ppm) on the waterfall, for example, in SDRSharp. The methodology described in the readme file inside the archive with acarsdeco2.


          • #6
            I did the calibration method a couple years ago
            Your program is working perfectly. I am monitoring the two busiest channels in this area, luckily they are only 50 khz apart 136.8 and 136.85.
            I set the --net option to 34000 and found that SBS-Acars-Display set to that port is logging the files. Now I have Acarsd, VRS, your program, PC-HFDL, FR24, on and on and on, airplanes everywhere!
            Thanks a bunch. I'm going to compare this log file to acarsd tomorrow and see how they compare. I am using a Realistic Pro-2006 with acarsd with a splitter from the antenna to that radio and the dongle so the contest will be fair.


            • #7
              The program works great I'm getting many more decodes than acarsd. However, I have acarsd connected to a much better radio (Pro-2006) so it picks up some that the dongle is deaf to. Most aircraft transmit more than one message so is this worth it? Sure, since it can decode three channels at once.

              Question: Could I have the logs in local time instead of UTC? I like to go midnight-midnight instead of 4 p.m.-4 p.m. (that's how acarsd does its logs). Also I noticed that SBS3-Acars-Display program that Mike Simpson wrote puts the time at GMT+8 and I'm GMT-8, not sure how to correct that, the time is 16 hrs off local!


              • #8
                cannot run the just quit..why no bat file?


                • #9
                  Originally posted by kucengemok View Post
                  cannot run the just quit..why no bat file?
                  Because everyones configuration is different. And so the command needs to be customised
                  Posts not to be taken as official support representation - Just a helpful uploader who tinkers


                  • #10
                    and how to configure it?


                    • #11
                      For example, if your channels are 131.500MHz and 131.725MHz, HTTP-port of acarsdeco2 will be 8080, your VRS HTTP output has default port 80 and output feed in Kinetic acars format uses TCP port 30008:

                      @echo off
                      cmd /c  acarsdeco2.exe --gain 38.0 --freq-correction 65 --freq 131550000 --freq 131725000 --http-port 8080 --vrs-url [url][/url] --net 30008
                      The values of gain and ppm-correction replace for those, that are determined the particular conditions of your ACARS antenna and dongle.

                      Place the contents into a file with any name and a .bat extension in the same directory where you unzipped the archive. And make a shortcut on your desktop to start.
                      Last edited by sergsero; 2014-12-02, 13:03.


                      • #12
                        my batch file looks like this:

                        acarsdeco2.exe --gain 11.5 --freq-correction 4 --freq 136800000 --freq 136850000 --http-port 8090 --net 30008 --no-sq --logfile c:\dongle\acarsdeco2\logs\acarslog.txt --no-empty

                        The --no-empty stops problems with a nearby airport that loves to transmit those
                        my gain is limited to 11.5 because of overload thanks to nearby TV and radio transmitters
                        the --net command connects to Mike Simpson's SBS3-ACARS-Display software, does good work

                        I had my Pro-2006 scanner tuned to 136.800 and ran it into acarsd but thanks to this software I can also scan nearby 136.850 and I moved the scanner to 131.550 which is less active here but still I get over 200 flights per day. ACARS doesn't compare traffic-wise to Mode-S but there are small aircraft on there that don't use 1090. Not sure what's going on with 978 but I rarely see any blips on it when I bother to check.

                        save as regular text file with *.bat extension, then right click on that and "send to desktop" to create the icon on the desktop. I split time with this dongle between acars and weather pics. Ordering two more dongles, I've gone *.bat.* crazy


                        • #13
                          Two quick questions guys. Why is the frequency displayed as the program starts 20 kHz lower than what's in the command line argument? (131550000 in the command line becomes "Freq. 131.530 MHz" in the DOS box. Log file entries do show 131.550 MHz however.)

                          Second, I take it the program will tune the USB dongle anywhere in it's range, meaning to any valid frequency the dongle covers versus just the known ranges of ACARS transmissions in the 129-132 & 136-137 MHz areas? (There's a valid reason for asking this that I won't get into here...)


                          • #14
                            Hello ATCtech,

                            This is normal behavior. First, program calculates the internal reference frequency for the your specified range, from lower frequency to higher frequency. Next, on the every frequency to dodge the DC spike present in dongle tuners. The software tunes slightly off center and then corrects for the offset during demodulation.
                            In next version I'll cancel the output of this parameter in console log, so as not to confuse users.

                            The only existing limitation is the interval between channels with the minimum frequency and the maximum should not exceed ~700 kHz (in this version of the program).


                            • #15
                              Thank you for answering both questions!