# Mlat sync

**URL:** <https://discussions.flightaware.com/t/mlat-sync/54875>\
**Category:** ADS-B Flight Tracking\
**Created:** [September 10, 2019, 9:12am UTC](https://discussions.flightaware.com/t/mlat-sync/54875 "2019-09-10T09:12:12Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![send2gl](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/send2gl/32/113341_2.png) [@send2gl](https://discussions.flightaware.com/u/send2gl)\
**Post date:** [September 10, 2019, 9:12am UTC](https://discussions.flightaware.com/t/mlat-sync/54875/1 "2019-09-10T09:12:13Z")

</div>

On my stats page it shows that my mlat is synced with around 350 nearby receivers.

I know [ADSBEXCHANGE.COM](http://ADSBEXCHANGE.COM) has a web page listing somewhere that lists something to do with mlat synchronisation so am curious, I thought mlat just needed 3 or 4 stations to position so what is the benefit of syncing with so many?

Plus, I’m guessing that the 350 with which I am synced cant all be close by so how far away might these other stations be?

Geoff

---

<div class="post-metadata">

**Author:** ![obj](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/obj/32/118984_2.png) [@obj](https://discussions.flightaware.com/u/obj)\
**Post date:** [September 10, 2019, 11:11am UTC](https://discussions.flightaware.com/t/mlat-sync/54875/2 "2019-09-10T11:11:30Z")

</div>

This is reporting receivers that you have clock synchronization with. Synchronizing the clocks is the first step and is necessary before any actual multilateration can be done, and it’s not predictable which receivers will actually see copies of a particular message that needs multilateration, so it makes sense to do it with as many nearby receivers as possible ahead of time.

---

<div class="post-metadata">

**Author:** ![SweetPea11](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/sweetpea11/32/137137_2.png) [@SweetPea11](https://discussions.flightaware.com/u/SweetPea11)\
**Post date:** [September 10, 2019, 12:45pm UTC](https://discussions.flightaware.com/t/mlat-sync/54875/3 "2019-09-10T12:45:25Z")

</div>

> [@obj](#):
>
> This is reporting receivers that you have clock synchronization with

What is the effective maximum distance two receiverscan be separated and still synchronise?

Thanks,

S

---

<div class="post-metadata">

**Author:** ![obj](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/obj/32/118984_2.png) [@obj](https://discussions.flightaware.com/u/obj)\
**Post date:** [September 10, 2019, 2:39pm UTC](https://discussions.flightaware.com/t/mlat-sync/54875/4 "2019-09-10T14:39:20Z")

</div>

Several hundred NM. The requirement is that both receivers can see the same ADS-B-transmitting aircraft.

---

<div class="post-metadata">

**Author:** ![send2gl](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/send2gl/32/113341_2.png) [@send2gl](https://discussions.flightaware.com/u/send2gl)\
**Post date:** [September 11, 2019, 9:06am UTC](https://discussions.flightaware.com/t/mlat-sync/54875/5 "2019-09-11T09:06:54Z")

</div>

How does it determine which devices to sync with?

Geoff

---

<div class="post-metadata">

**Author:** ![SoNic67](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/sonic67/32/119872_2.png) [@SoNic67](https://discussions.flightaware.com/u/SoNic67)\
**Post date:** [September 11, 2019, 9:25am UTC](https://discussions.flightaware.com/t/mlat-sync/54875/6 "2019-09-11T09:25:42Z")

</div>

> [@send2gl](#):
>
> How does it determine which devices to sync with?

The server “knows” your reported location… and, like Obj said above, if the timings are correct… you have a match.

MLAT is less and less important. The number of MLAT flights already dropped a lot in US, and it’s not even 2020. I think it’s the same in EU and Australia.

---

<div class="post-metadata">

**Author:** ![caius](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/caius/32/113839_2.png) [@caius](https://discussions.flightaware.com/u/caius)\
**Post date:** [September 11, 2019, 11:11am UTC](https://discussions.flightaware.com/t/mlat-sync/54875/7 "2019-09-11T11:11:30Z")

</div>

Most general aviation aircraft don’t have ADS-B in Europe, and UAT doesn’t exist here at the moment. I’m still seeing 5-600 mlat aircraft a day, with a further 500 or so mode-s only aircraft here. That’s with syncing 700 stations, so mlat will be relevant for some time here I think.

---

<div class="post-metadata">

**Author:** ![obj](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/obj/32/118984_2.png) [@obj](https://discussions.flightaware.com/u/obj)\
**Post date:** [September 11, 2019, 3:51pm UTC](https://discussions.flightaware.com/t/mlat-sync/54875/8 "2019-09-11T15:51:52Z")

</div>

> [@send2gl](#):
>
> How does it determine which devices to sync with?

All receivers in the same mlat region (i.e. handled by the same server instance) try to sync with each other. This can be a few thousand receivers. The receivers aren’t involved in the decision, they just get told what traffic to forward.

---

<div class="post-metadata">

**Author:** ![SoNic67](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/sonic67/32/119872_2.png) [@SoNic67](https://discussions.flightaware.com/u/SoNic67)\
**Post date:** [September 11, 2019, 4:10pm UTC](https://discussions.flightaware.com/t/mlat-sync/54875/9 "2019-09-11T16:10:33Z")

</div>

When I started this hobby in summer of 2017, in US, the MLAT traffic was approximate 1/3 of total traffic.  
Now is less than 1/10; yesterday I had 2800 ADS-B planes and 240 MLAT.

---

<div class="post-metadata">

**Author:** ![caius](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/caius/32/113839_2.png) [@caius](https://discussions.flightaware.com/u/caius)\
**Post date:** [September 11, 2019, 4:20pm UTC](https://discussions.flightaware.com/t/mlat-sync/54875/10 "2019-09-11T16:20:52Z")

</div>

I think ads-b was less common in the US initially though so there will be a more noticeable change there. I haven’t noticed a big increase in the number of ads-b aircraft compared to mode-s only here, but I don’t have data going back to compare it for sure. There is also a mandate for larger aircraft to have ads-b installed by June next year here, so it will be interesting to see what changes between now and then.

I’m also curious to see if there will be an increase in the number of mlat positions I get when I move my antenna to the roof later this week. From plots I made of mlat results, there are significant gaps in coverage at the moment.

---

<div class="post-metadata">

**Author:** ![SoNic67](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/sonic67/32/119872_2.png) [@SoNic67](https://discussions.flightaware.com/u/SoNic67)\
**Post date:** [September 11, 2019, 10:10pm UTC](https://discussions.flightaware.com/t/mlat-sync/54875/11 "2019-09-11T22:10:24Z")

</div>

Here even the trainer planes have ADS-B now, I am watching them on ADS-B versus UAT, and they are not there.

 ![trainer](https://us1.discourse-cdn.com/flex019/uploads/flightaware/original/3X/5/8/588ec24a9572e0f144cf33060b3c6b1b3f6f8440.jpeg)

---

<div class="post-metadata">

**Author:** ![ethaniel](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/ethaniel/32/123255_2.png) [@ethaniel](https://discussions.flightaware.com/u/ethaniel)\
**Post date:** [August 10, 2024, 7:01am UTC](https://discussions.flightaware.com/t/mlat-sync/54875/12 "2024-08-10T07:01:23Z")

</div>

Some private jet planes now turn off ADSB so they won’t be tracked. Is MLAT still important for tracking these?

---

<div class="post-metadata">

**Author:** ![tomvdhorst](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/tomvdhorst/32/137059_2.png) [@tomvdhorst](https://discussions.flightaware.com/u/tomvdhorst)\
**Post date:** [August 10, 2024, 9:57am UTC](https://discussions.flightaware.com/t/mlat-sync/54875/13 "2024-08-10T09:57:12Z")

</div>

They don’t turn off ADS-B but request to be blocked on the tracking websites. ADS-B is mandatory, only exception are military aircraft.  
A working transponder is a required item for an aircraft just like a comm radio to maintain contact with ATC. Even if you are a superstar or celebrity 😉  
And while they might be blocked on a tracking website they will still be visible when coming in to range of a local tracking station. The local view doesn’t filter, that happens after the data has been sent to the server.

---

<div class="post-metadata">

**Author:** ![abcd567](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/abcd567/32/113769_2.png) [@abcd567](https://discussions.flightaware.com/u/abcd567)\
**Post date:** [August 10, 2024, 3:09pm UTC](https://discussions.flightaware.com/t/mlat-sync/54875/14 "2024-08-10T15:09:44Z")

</div>

I faced problem of mlat not synchronized when piaware & dump1090-fa were installed in Debian running in Oracle VM on Windows PC. The passthrough of dongle from Windows to VM made clock unstable.

I solved this problem by installing dump1090-win on Windows PC, so there was no problem of dongle passthrough as the dongle was directly accessible to dump1090-win.

In order to transfer data from dump1090-win to dump1090-fa, I created a puller service which used **socat** TCP connection between two dump1090s. In dump1090-fa’s config file, I had to change RECEIVER=rtlsdr to RECEIVER=none to run it in net mode without any dongle.

Below are full details of what I did;

### (1) ON Windows PC

(1.1) Downloaded dump1090-win from github to Windows PC  
**[https://github.com/MalcolmRobb/dump1090/raw/master/dump1090-win.1.10.3010.14.zip](https://github.com/MalcolmRobb/dump1090/raw/master/dump1090-win.1.10.3010.14.zip)**

(1.2) Unzipped the downloaded folder.  
(1.3) Entered the unzipped folder. Inside this folder there is a file named `dump1090.bat`. Double clicked it to start dump1090-win. When done first time, I was asked permission to run it, which I gave. This started a command prompt displaying aircraft data,as shown in screenshot below.

&nbsp;

 ![image](https://us1.discourse-cdn.com/flex019/uploads/flightaware/original/3X/a/5/a55cdeab7f1b9750f6e37e61313e35ab0fc1279a.png)

&nbsp;

 ![image](https://us1.discourse-cdn.com/flex019/uploads/flightaware/original/3X/4/0/4092e1f1085d9280ad2a6799b78e92cc97bd08a7.png)

&nbsp;

 ![image](https://us1.discourse-cdn.com/flex019/uploads/flightaware/original/3X/b/b/bbac3098591a2b9cc3ab33a3a952cc0df01df483.png)

&nbsp;

 ![image](https://us1.discourse-cdn.com/flex019/uploads/flightaware/original/3X/d/9/d94cdc747e2d4b870dc5af016f4f152afa1ef47a.png)

&nbsp;

### (2) In Debian running in VM

(2.1) Installed package `socat`  
(2.2) Created necessary folder and file to run the socat TCP connection between `dump1090-win` and `dump1090-fa`

```auto
sudo apt install socat  

sudo mkdir /usr/share/puller 
sudo touch /usr/share/puller/puller.sh  
sudo chmod +x /usr/share/puller/puller.sh  
sudo nano /usr/share/puller/puller.sh  

```

&nbsp;

Copy-pasted following code in newly created blank file `/usr/share/puller/puller.sh `  
NOTE: In line `SOURCE_IP="192.168.12.6"`, replace `192.168.12.6` by IP address of your Windows Computer on which you are running the dump1090-win

```auto
#!/bin/bash 

SOURCE_IP="192.168.12.6"

OPTIONS="keepalive,keepidle=30,keepintvl=30,keepcnt=2,connect-timeout=30,retry=2,interval=15"

while true
   do
      echo "CONNECTING TO: dump1090-windows"
      socat --experimental -dd -u TCP:${SOURCE_IP}:30005,${OPTIONS} TCP:127.0.0.1:30004,${OPTIONS}
      echo "LOST CONNECTION TO: dump1090-windows"
      sleep 60
   done

```

&nbsp;

(2.3) Created systemd service to run the puller script

```auto
sudo nano /lib/systemd/system/puller.service  

```

&nbsp;

In the newly created blank service file `/lib/systemd/system/puller.service`, copy-paste following code

```auto
# puller service for systemd
[Unit]
Description=puller service
Wants=network.target
After=network.target
[Service]
##User=puller
RuntimeDirectory=puller
RuntimeDirectoryMode=0755
ExecStart=/usr/share/puller/puller.sh
SyslogIdentifier=puller
Type=simple
Restart=on-failure
RestartSec=30
RestartPreventExitStatus=64
Nice=-5
[Install]
WantedBy=default.target

```

&nbsp;

Enable and start the puller

```auto
sudo systemctl enable puller    

sudo systemctl start puller   

```

&nbsp;

(2.4) Edited file `/etc/default/dump1090-fa` and changed `RECEIVER=rtlsdr` to `RECEIVER=none`.

![image](https://us1.discourse-cdn.com/flex019/uploads/flightaware/original/3X/9/2/92bc6fb0b642df6e13247a744a630138d8ad312f.png)

Saved file and restarted dump1090-fa  
`sudo systemctl restart dump1090-fa `

### RESULT:

**_Click on Screenshot to See Larger Size_**

 ![image](https://us1.discourse-cdn.com/flex019/uploads/flightaware/original/3X/7/d/7dc58b103e5c01441abf94b8f44a464c05fe74ce.png)

&nbsp;

### Alternative for item (2):

Under item (2), carryout only step (2.4) to run dump1090-fa in net-only mode, and omit steps (2.1), (2.2), & (2.3) which pertain to creation of `socat TCP connector “puller”. Instead issue following commands which will enable piaware to create a connection directly to dump1090-win.

**NOTE:** in the command below, change `192.168.12.6` to IP of your Windows computer running `dump1090-win`.

```auto
sudo piaware-config receiver-type other
sudo piaware-config receiver-port 30005
sudo piaware-config receiver-host 192.168.12.6  

sudo systemctl restart piaware

```

### Comparing above two methods, the Alternative is simpler, but has disadvantage that dump1090-fa will be without data and as a result Skyaware map will be without any aircraft.

Although dump1090-win provides a map in browser in Windows PC at following address:

`localhost:8080 `

but it has Google map with water marks. Also, in some browsers, map will not show, only 2 clocks at top-right corner. This is caused by format of files in unzipped folder dump1090-win/ **public\_html** being in DOS/Windows format ( **CRLF** ) indtead of Unix ( **LF** ). I used `Notepad++` to change Windows {CRLF) to Unix (LF), and map started working OK.

&nbsp;

 ![image](https://us1.discourse-cdn.com/flex019/uploads/flightaware/original/3X/d/c/dc0865f8990a0769c9f4396f85ba6e96353f6e57.png)

&nbsp;

 ![image](https://us1.discourse-cdn.com/flex019/uploads/flightaware/original/3X/8/1/816c2910a057d63577ccd2086f0eb860a9db6906.png)

&nbsp;

&nbsp;
