Piaware 2.x with MLAT doesn't work with multiple dump1090's


#1

Hi,

I have an issue with Piaware 2.x with multiple dump1090’s. MLAT doesn’t work.

My setup uses 3 raspberry pi’s running their own dump1090 with their own receiver and antenna. Only one is running Piaware. This is mij hostlist:
Host Name, IP Address, services:
ted1090-4, 192.168.11.8, dump1090 & piaware
ted1090-2, 192.168.11.34, dump1090
ted1090-3, 192.168.11.32, dump1090

I have updated my Piaware en dump1090 to the latest versions. I was running Piaware 1.20-1 and dump1090 1.1-1.


pi@ted1090-4 $ dpkg -l | grep piaware
ii  piaware                               2.1-1                                   armhf        Open Aviation Data Exchange Protocol for ADS-B FlightFeeders
pi@ted1090-4 $ dpkg -l | grep dump
ii  dump1090                              1.2-2                                   armhf        ADS-B Ground Station System for RTL-SDR

The raspberry pi with Piaware (host name ted1090-4, IP 192.168.11.8 ) is listening to his own local dump1090 and also to the other dump1090’s on the other 2 raspberry’s using netcat. I used these command’s to connect them:


pi@ted1090-4 $ nc -d 192.168.11.34 30005 | nc 127.0.0.1 30004 &
pi@ted1090-4 $ nc -d 192.168.11.32 30005 | nc 127.0.0.1 30004 &

Netstat shows how the hosts and ports are connected:


pi@ted1090-4 $ netstat
Proto Recv-Q Send-Q Local Address           Foreign Address         State 
tcp        0      0 ted1090-4.bachstr:51252 ted1090-2.bachstr:30005 ESTABLISHED
tcp        0      0 localhost:50809         localhost:30002         ESTABLISHED
tcp        0   1897 localhost:30005         localhost:40219         ESTABLISHED
tcp       23      0 localhost:40219         localhost:30005         ESTABLISHED
tcp        0      0 ted1090-4.bachstr:43948 ted1090-3.bachstr:30005 ESTABLISHED
tcp      278      0 localhost:30004         localhost:55368         ESTABLISHED
tcp        0      0 localhost:30002         localhost:50809         ESTABLISHED
tcp        0      0 localhost:55381         localhost:30004         ESTABLISHED

I noticed that MLAT was enabled by default. After the update I got these errors in the /tmp/piaware.out log every 30 seconds:


07/09/2015 10:01:29 mlat(2607): Input connected to localhost:30005
07/09/2015 10:01:29 mlat(2607): Problem reading receiver messages: Out of range timestamp seen (last 103288483998, now 100657028850)
07/09/2015 10:01:29 mlat(2607): Ensure that only one receiver is feeding data to this client.
07/09/2015 10:01:29 mlat(2607): A single multilateration client cannot handle data from multiple receivers.
07/09/2015 10:01:29 mlat(2607): Lost connection to localhost:30005
07/09/2015 10:01:29 mlat(2607): Reconnecting in 30.0 seconds

Can I really not use MLAT because I am using multiple dump1090’s to feed one Piaware?

But updates from dump1090 to FlightAware are still send normaly every 5 minutes:


07/09/2015 10:03:49 5826 msgs recv'd from dump1090 (2809 in last 5m); 5826 msgs sent to FlightAware

The errors stopped after I disabled MLAT from the control panel at the flightaware website and restarted Piaware.

After enabling MLAT again and restart Piaware the errors came back:


07/09/2015 10:08:49 3017 msgs recv'd from dump1090 (2742 in last 5m); 3017 msgs sent to FlightAware
07/09/2015 10:13:49 5826 msgs recv'd from dump1090 (2809 in last 5m); 5826 msgs sent to FlightAware
07/09/2015 10:14:19 manual update (user-initiated via their flightaware control page) requested by adept server
07/09/2015 10:14:19 manualUpdate in adept config is enabled, allowing update
07/09/2015 10:14:19 performing manual update, action: restart_piaware
07/09/2015 10:14:19 update request complete
07/09/2015 10:14:19 restarting piaware. hopefully i'll be right back...
Stopping piaware server: piaware07/09/2015 10:14:19 piaware (process 2550) is shutting down because it received a shutdown signal (SIGTERM) from the system...
07/09/2015 10:14:19 removing pidfile /var/run/piaware.pid
07/09/2015 10:14:19 piaware (process 2550) is exiting...
.
Starting piaware server: piaware.
07/09/2015 10:14:22 ****************************************************
07/09/2015 10:14:22 piaware version 2.1-1 is running, process ID 2596
07/09/2015 10:14:22 your system info is: Linux ted1090-4 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l GNU/Linux
07/09/2015 10:14:22 connecting to FlightAware piaware.flightaware.com/1200
07/09/2015 10:14:23 FlightAware server SSL certificate validated
07/09/2015 10:14:23 encrypted session established with FlightAware
07/09/2015 10:14:23 autoUpdate in adept config is enabled, allowing update
07/09/2015 10:14:23 manualUpdate in adept config is enabled, allowing update
07/09/2015 10:14:23 multilateration support enabled (use piaware-config to disable)
07/09/2015 10:14:23 ADS-B data program 'dump1090' is listening on port 30005, so far so good
07/09/2015 10:14:23 Starting faup1090: /usr/bin/faup1090 --net-bo-ipaddr localhost --net-bo-port 30005 --lat 52.086 --lon 5.089
07/09/2015 10:14:23 Started faup1090 (pid 2605) to connect to dump1090
07/09/2015 10:14:23 logged in to FlightAware as user tedsluis
07/09/2015 10:14:23 multilateration support enabled (use piaware-config to disable)
07/09/2015 10:14:23 multilateration data requested, enabling mlat client
07/09/2015 10:14:23 Starting multilateration client: /usr/lib/fa-mlat-client/fa-mlat-client --input-connect localhost:30005 --results beast,connect,localhost:30004 --udp-transport 70.42.6.194:7994:2173717795
07/09/2015 10:14:24 piaware received a message from dump1090!
07/09/2015 10:14:24 piaware has successfully sent several msgs to FlightAware!
07/09/2015 10:14:24 mlat(2607): fa-mlat-client 0.2.2 starting up
07/09/2015 10:14:24 mlat(2607): Using UDP transport to 70.42.6.194:7994
07/09/2015 10:14:24 mlat(2607): Input connected to localhost:30005
07/09/2015 10:14:24 mlat(2607): Problem reading receiver messages: Out of range timestamp seen (last 96032748744, now 93401435784)
07/09/2015 10:14:24 mlat(2607): Ensure that only one receiver is feeding data to this client.
07/09/2015 10:14:24 mlat(2607): A single multilateration client cannot handle data from multiple receivers.
07/09/2015 10:14:24 mlat(2607): Lost connection to localhost:30005
07/09/2015 10:14:24 mlat(2607): Reconnecting in 30.0 seconds
07/09/2015 10:14:25 mlat(2607): Beast-format results connection with localhost:30004: connection established
07/09/2015 10:14:53 282 msgs recv'd from dump1090; 282 msgs sent to FlightAware
07/09/2015 10:14:55 mlat(2607): Input connected to localhost:30005
07/09/2015 10:14:55 mlat(2607): Problem reading receiver messages: Out of range timestamp seen (last 96398421150, now 93767750544)
07/09/2015 10:14:55 mlat(2607): Ensure that only one receiver is feeding data to this client.
07/09/2015 10:14:55 mlat(2607): A single multilateration client cannot handle data from multiple receivers.
07/09/2015 10:14:55 mlat(2607): Lost connection to localhost:30005
07/09/2015 10:14:55 mlat(2607): Reconnecting in 30.0 seconds
07/09/2015 10:15:22 server is sending alive messages; we will expect them
07/09/2015 10:15:25 mlat(2607): Input connected to localhost:30005
07/09/2015 10:15:25 mlat(2607): Problem reading receiver messages: Out of range timestamp seen (last 96759375834, now 94128057990)

Does this works as designed? Am I doing something wrong? Or will this be fixed in th future?

Any help would be very welcome!

Ted
http://flightaware.com/adsb/stats/user/tedsluis#stats-7002


#2
  1. No.
  2. Yes.
  3. No.

You can no longer feed a single FA site from multiple dump1090s.


#3

You can feed multiple receivers to one piaware for regular position information, but not for mlat - you must disable mlat if you do this.

Or you can run one piaware per receiver. You can still combine the receiver results if you like, just make sure that there is a piaware running directly for each receiver not using the combined results.


#4

Okay, very clear answers :wink: No MLAT for me then…

Thanks for your quick responses!


#5

The mlat-client package is available at github.com/mutability/mlat-client
The hint for running is

If you are using this with piaware, you don’t need to do anything special other than to make sure that fa-mlat-client is available on your $PATH. piaware will detect the presence of the client and start it when needed.

How can I start fa-mlat-client manually to use several receivers?

Thanks for hints


#6

You need to run a separate piaware per receiver (which currently means you need them on separate machines). Each will start fa-mlat-client itself.


#7

thanks for the response. Is there a way to combine all my receivers in one own view, including the MLAT results? I have one raspi with 2 DVB-T sticks.


#8

I have one Raspberry with 3 dongles (for 2x sectors ant. and 1x omni). Any idea for FA mlat?


#9

Run three piaware instances. You will need to set up separate service files, with a separate config file (pass -configfile on the piaware command line) and cachedir (-cachedir) for each instance. Configure each instance with receiver-type other and the appropriate receiver-port. Adjust mlat-results-format to feed mlat results as needed to avoid port collisions.


#10

Now I have:
SITE 65382 - EPKT - old aggregate receiver
SITE 66596 - LKMI - new receiver for sector 1
SITE 66597 - LKZA - new receiver for sector 2
SITE 66599 - EPZG - new receiver for sector 3

:frowning:

I will go back to the previous settings without the mlat.
THNX


#11

Yep, that’s just how it works. We need a separate site for each mlat receiver.


#12

OK
Thanks for your answer.
Best regards


#13

Partial solution:

nano /usr/lib/piaware/mlat.tcl

# -*- mode: tcl; tab-width: 4; indent-tabs-mode: t -*-

# piaware - multilateration client handling
# This bridges multilateration messages between a
# mlat-client subprocess and the adept server.
<CUT>
        set command $::mlatClientPath
#      lappend command "--input-connect" "${::receiverHost}:${::receiverPort}"
        lappend command "--input-connect" "192.168.1.211:60005"   # port 60005 - my omni receiver
<CUT>

… and voilà. Mlat working perfect on my dongle with omnidirectional antenna.