MLAT question

Discussion in 'Feeding' started by adsb-tech-007, Jun 8, 2018.

  1. adsb-tech-007

    adsb-tech-007 New Member

    I have been looking at the feeder stats. I can see I am now showing on the map and in the matrix. I can see I'm connected to MLAT server and sending data. However no range shows for me and I don't show as sync'd to any other users.

    One thing I notice when trying to debug is the server time returned is a few minutes out

    Code:
    Fri Jun  8 05:33:33 2018 Receive: {'heartbeat': {'server_time': 1528435801.137}}
    Where 1528435801.137 = 08/06/2018, 06:30:01

    I'm in South Wales and there are a few other users not too far away so expected to sync traffic. I never see any MLAT traffic on my receiver, there seems to be no results from the server. I have debug logs if it helps.
     
  2. James

    James Guest

    Range? What do you mean by range? custom ports to do not show MLAT - MLAT only shows aggregated on the global feed and locally on your Pi. FA lawyers require no transmission of MLAT - so ADSBx saves it on the server side and sends it only to you local Pi installation.
     
  3. adsb-tech-007

    adsb-tech-007 New Member

    Hi James.
    Looking at the Western Europe Coverage maps, if I click on my feed, it shows no coverage (no coloured squares appear). The sync Matrix shows I'm not syncing with any other feeds either for some reason. Location data provided is accurate including height. I don't see MLAT on my pi at all. I don't get any results back from your MLAT server.

    If it helps I enabled debug in MLAT client, here is some of the output showing my pi sending data

    Code:
    Jun 12 05:20:07 adsbx-custom rc.local[507]: Tue Jun 12 05:20:07 2018 Send: {'seen': ['405633', '405d66', '3965a7']}
    Jun 12 05:20:07 adsbx-custom rc.local[507]: Tue Jun 12 05:20:07 2018 Send: {'lost': ['400ff2', '3949ed']}
    Jun 12 05:20:07 adsbx-custom rc.local[507]: Tue Jun 12 05:20:07 2018 Send: {'rate_report': {'AA92FA': 0.54, 'AAEA8C': 0.06, '400773': 1.01, 'A4A445': 0.63, '40660E': 0.44, '406D39': 1.08, 'C01734': 0.44, '4BA94D': 0.09, '406752': 0.03, 'A2C094': 0.92, '4067F6': 0.22, '40622B': 0.73, '406AE8': 0.76, '485874': 0.85, 'A120F3': 0.25, '4CA54D': 0.38, '405BFC': 0.03, '4007ED': 0.92, '40073E': 0.7, '44A839': 0.63, '400A60': 0.85, '3C64F0': 0.54, 'ABDDFF': 0.47, '440095': 0.92, 'A491FB': 0.38, 'A8DEDA': 0.04, '440195': 0.38, '406A35': 0.16, '405633': 0.3, 'A1373D': 0.54, 'ABBEE3': 0.41, '3C6566': 0.35, '4007FB': 0.09, 'C00EC2': 0.25, '3964E9': 0.41, 'C03ABC': 0.66, 'C01755': 0.7, '440051': 0.32, 'AAE958': 0.92, '394A0D': 0.57, '4074D2': 0.7}}
    Jun 12 05:20:12 adsbx-custom rc.local[507]: Tue Jun 12 05:20:12 2018 Receive: {'heartbeat': {'server_time': 1528780593.505}}
    Jun 12 05:20:19 adsbx-custom rc.local[507]: Tue Jun 12 05:20:19 2018 Receive: {'start_sending': ['4ab42e', '400846']}
    Jun 12 05:20:38 adsbx-custom rc.local[507]: Tue Jun 12 05:20:38 2018 Send: {'lost': ['89616c', 'abb3be']}
    Jun 12 05:20:38 adsbx-custom rc.local[507]: Tue Jun 12 05:20:38 2018 Send: {'rate_report': {'AA92FA': 0.44, 'AAEA8C': 0.09, '400773': 0.51, 'A4A445': 0.44, '40660E': 0.54, '406D39': 0.79, '40073E': 0.66, '4BA94D': 0.16, '406752': 0.06, 'A2C094': 0.63, '4067F6': 0.09, '40622B': 0.63, 'C01734': 0.7, '485874': 0.95, '4074D2': 0.51, '4CA54D': 0.28, '405BFC': 0.09, '4007ED': 0.32, '44A839': 0.63, '400A60': 0.66, '3C64F0': 0.25, 'ABDDFF': 0.82, '440095': 0.63, 'A491FB': 0.6, 'A8DEDA': 0.38, '440195': 0.35, '406A35': 0.41, '405633': 0.16, 'A1373D': 0.6, 'ABBEE3': 0.6, '3C6566': 0.47, '4007FB': 0.22, 'C00EC2': 0.03, '3964E9': 0.38, 'C03ABC': 0.35, 'C01755': 0.85, '440051': 0.06, '406AE8': 0.51, '394A0D': 0.09, 'AAE958': 0.79}}
    Jun 12 05:20:41 adsbx-custom rc.local[507]: Tue Jun 12 05:20:41 2018 Send: {'heartbeat': {'client_time': 1528780841.492}}
    Jun 12 05:20:46 adsbx-custom rc.local[507]: Tue Jun 12 05:20:46 2018 Receive: {'start_sending': ['405633', '405d66', '3965a7']}
    Jun 12 05:20:46 adsbx-custom rc.local[507]: Tue Jun 12 05:20:46 2018 Receive: {'stop_sending': ['400ff2', '3949ed']}
    Jun 12 05:20:53 adsbx-custom rc.local[507]: Tue Jun 12 05:20:53 2018 Receive: {'heartbeat': {'server_time': 1528780634.273}}
    
    Checked time on pi and it i accurate (at least to the second as that's the best I can check it), but it is set via ntp.

    Any idea why I wouldn't sync with other feeders?
     
  4. James

    James Guest

    Looks like you are receiving MLAT data. What image are you using? If privacy is set to yes you won't show on the map dot.
     
  5. MDA

    MDA Administrator Staff Member

    Your feeder (and one more from UK) are on sync-matrix with no sync with any other station (strange). I'm not sure if it will help but did you adjust time zone properly? In log everything looks correct but...
     
  6. adsb-tech-007

    adsb-tech-007 New Member

    I'll double check timezone. I think date shows UTC which, if I remember correctly, shows 1hr behind BST which would be correct. If you notice the received server time, it is a few minutes out to my client time in the logs.
    Eg.
    server_time': 1528780634.273 = Tuesday, June 12, 2018 5:17:14.273 AM. Yet my logs show time as
    Jun 12 05:20:53. Both UTC time.

    Could that be a reason for it? Although if that was it I would expect everyone to have issues.

    Not at home currently so will check it out later.

    What you say about on sync matrix is why I think something is wrong. Will let you know timezone.

    James, privacy is off and I do show on coverage map.
     
  7. MDA

    MDA Administrator Staff Member

    Timezone is just an idea, I'm not sure how server is interpreting time stamp. What kind of receiver do you use (USB stick or other receiver like modesbeast?).
    Could you post your adsbexchange-mlat_maint.sh (remove detailed location)?
     
  8. adsb-tech-007

    adsb-tech-007 New Member

    Usb stick.

    I'll get output of file later for you.
     
  9. MDA

    MDA Administrator Staff Member

    There are some feeders nearby, you have to be synced with. Probably some kind of little bug. Most of the times I'm able to find solution.
    Waiting for your config.
     
  10. adsb-tech-007

    adsb-tech-007 New Member

    Hi MDA

    Here is mlat.sh output.
    Code:
    #!/bin/bash
    
      if [ -f "/tmp/adsbx-params" ]; then
            . /tmp/adsbx-params
       else
            echo "MLAT ERR:  Configuration file does not exist."
            exit 1
       fi
    
    if [ ${MLAT} = "no" ]; then
            exit 1
    fi
    
    # Find MAC of eth0, or if not exist wlan0
    if [ -e /sys/class/net/eth0 ]; then
        MAC=$(cat /sys/class/net/eth0/address| cut -d ':' -f 4,5,6 | tr -d : )
    elif [ -e /sys/class/net/enx* ]; then
        MAC=$(cat /sys/class/net/enx*/address| cut -d ':' -f 4,5,6 | tr -d : )
    else
        MAC=$(cat /sys/class/net/wlan0/address | cut -d ':' -f 4,5,6 | tr -d : )
    fi
    
    if [ ${MLAT} = "yes" ]; then
    
       if [ -z ${ADSBXNAME} ]; then
            ADSBNAME='img_custom'
            ADSBXNAME=${ADSBNAME}+=$'_'${MAC}$'_'${IMGVER}
       else
            #ADSBXNAME+=$'_'${MAC}$'_'${IMGVER}
            ADSBXNAME=${ADSBXNAME}
            #-$(cat /sys/class/net/eth0/address | cut -d ':' -f 4,5,6 | tr -d : )
       fi
    
       if [ -z ${LATITUDE} ] || [ -z ${LONGITUDE} ]; then
         MLATITUDE=$(ps -eaf | grep [d]ump1090 | awk -F'--lat' '{print $2}' | awk '{print $1}')
         MLONGITUDE=$(ps -eaf | grep [d]ump1090 | awk -F'--lon' '{print $2}' | awk '{print $1}')
    
       else
            MLATITUDE=${LATITUDE}
            MLONGITUDE=${LONGITUDE}
       fi
    
      echo -e '\n Starting MLAT CLIENT WITH NAME' $ADSBXNAME 'LAT'  $MLATITUDE 'ALT' $ALTITUDE 'LONG' $MLONGITUDE
    
      while true
       do
        #ADSBexhchange script:  mlat-client --input-type dump1090 --input-connect localhost:30005 --lat $LATITUDE --lon $LONGITUDE --alt $ALTITUDE --user $ADSBXUSERNAME --server feed.adsbexchange.com:31090 --no-udp --results beast,connect,localhost:30104
    
        if [ $PRIVACY = "yes" ]; then
            /usr/bin/mlat-client --privacy --input-type dump1090 --input-connect localhost:30005 --lat $MLATITUDE --lon $MLONGITUDE --alt $ALTITUDE --user adsb-tesch-007 --server feed.adsbexchange.com:31090 --no-udp --results beast,connect,127.0.0.1:30104
        else
            /usr/bin/mlat-client --input-type dump1090 --input-connect localhost:30005 --lat $MLATITUDE --lon $MLONGITUDE --alt $ALTITUDE --user $ADSBXNAME --server feed.adsbexchange.com:31090 --no-udp --results beast,connect,127.0.0.1:30104
        fi
    
        sleep 10
    
      done
    else
      exit 0
    fi
    
    Which runs this.
    Code:
     2068 ?        S      0:00 /bin/bash /home/pi/adsbexchange-mlat_maint.sh
     2082 ?        S     92:49  \_ /usr/bin/python3.5 /usr/bin/mlat-client --input-type dump1090 --input-connect localhost:30005 --lat 5x.xxxxx --lon -3.yyyyyy --alt 201 --user adsb-tech-007 --server feed.adsbexchange.com:31090 --no-udp --results beast,connect,127.0.0.1:30104
    
    Code:
    dump1090-mutability ports
    --net-bo-port 30005
    --net-bi-port 30004,30104

    time on pi is accurate to the sec when checking with time.is
    Code:
    Wed Jun 13 05:05:30 UTC 2018
     
  11. MDA

    MDA Administrator Staff Member

    Your config looks perfect:).
    Is your antenna placed so high (201 m ASL)?
    Anyway, try to change time zone to Europe/London.
     
  12. adsb-tech-007

    adsb-tech-007 New Member

    Checked elevation using https://www.freemaptools.com/elevation-finder.htm and added approximate height (antenna is in attic). How accurate does it need to be?

    Timezone changed. Will reboot and see what happens, may take some time to reconnect to MLAT server though :(
     
    Last edited: Jun 13, 2018
  13. MDA

    MDA Administrator Staff Member

    How your receiver is performing (message rate, range, amount of aircrafts during rush hours)?
     
  14. adsb-tech-007

    adsb-tech-007 New Member

    current stats

    last1min":{"start":1528888799.3,"end":1528888859.3,"local":{"samples_processed":86114304,"samples_dropped":0,"modeac":1320,"modes":866750,"bad":544047,"unknown_icao":299527,"accepted":[21067,2109],"signal":-8.7,"noise":-20.3,"peak_signal":-0.8,"strong_signals":1286},"remote":{"modeac":1,"modes":0,"bad":0,"unknown_icao":0,"accepted":[0,0]},"cpr":{"surface":0,"airborne":1157,"global_ok":1018,"global_bad":0,"global_range":0,"global_speed":0,"global_skipped":3,"local_ok":124,"local_aircraft_relative":0,"local_receiver_relative":0,"local_skipped":15,"local_range":15,"local_speed":0,"filtered":0},"altitude_suppressed":0,"cpu":{"demod":18806,"reader":28238,"background":2711},"tracks":{"all":47,"single_message":16},"messages":24497},

    "total":{"start":1528887719.1,"end":1528889399.3,"local":{"samples_processed":2457337856,"samples_dropped":0,"modeac":57994,"modes":24356501,"bad":15239991,"unknown_icao":8412527,"accepted":[652673,51310],"signal":-7.8,"noise":-18.9,"peak_signal":-0.8,"strong_signals":60900},"remote":{"modeac":28,"modes":0,"bad":0,"unknown_icao":0,"accepted":[0,0]},"cpr":{"surface":2,"airborne":33148,"global_ok":29381,"global_bad":1,"global_range":1,"global_speed":0,"global_skipped":79,"local_ok":3089,"local_aircraft_relative":0,"local_receiver_relative":0,"local_skipped":679,"local_range":677,"local_speed":0,"filtered":0},"altitude_suppressed":0,"cpu":{"demod":537978,"reader":806861,"background":70051},"tracks":{"all":1853,"single_message":625},"messages":762005}
     
    Last edited: Jun 13, 2018
  15. MDA

    MDA Administrator Staff Member

    Good receiver! You can slightly reduce gain.
    I can't understand why you can't sync.
    If you have 2nd stick you can run dump and mlat client on Windows and check if it will sync with your Pi.
    There are some other stations in Western Europe present on sync-matrix w/o syncs.
     
  16. adsb-tech-007

    adsb-tech-007 New Member

    Yes, I did notice signal was a little high. I do get good range of max 238 mile, which is good considering the hills close by.

    I don't have another stick sadly. It is strange.
     
  17. MDA

    MDA Administrator Staff Member

    Please check in /var/log/daemon.log mlat client status (sth. like below):
    Jun 11 07:19:44 mda-pi2 rc.local[408]: Mon Jun 11 07:19:44 2018 Receiver status: connected
    Jun 11 07:19:44 mda-pi2 rc.local[408]: Mon Jun 11 07:19:44 2018 Server status: ready
    Jun 11 07:19:44 mda-pi2 rc.local[408]: Mon Jun 11 07:19:44 2018 Receiver: 468.5 msg/s received 156.0 msg/s processed (33%)
    Jun 11 07:19:44 mda-pi2 rc.local[408]: Mon Jun 11 07:19:44 2018 Server: 0.1 kB/s from server 2.3kB/s TCP to server 0.0kB/s UDP to server
    Jun 11 07:19:44 mda-pi2 rc.local[408]: Mon Jun 11 07:19:44 2018 Results: 62.0 positions/minute
    Jun 11 07:19:44 mda-pi2 rc.local[408]: Mon Jun 11 07:19:44 2018 Aircraft: 13 of 15 Mode S, 31 of 36 ADS-B used
     
  18. adsb-tech-007

    adsb-tech-007 New Member

    Jun 13 13:02:06 adsbx-custom rc.local[506]: Wed Jun 13 13:02:06 2018 Receiver status: connected
    Jun 13 13:02:06 adsbx-custom rc.local[506]: Wed Jun 13 13:02:06 2018 Server status: ready
    Jun 13 13:02:06 adsbx-custom rc.local[506]: Wed Jun 13 13:02:06 2018 Receiver: 474.6 msg/s received 128.7 msg/s processed (27%)
    Jun 13 13:02:06 adsbx-custom rc.local[506]: Wed Jun 13 13:02:06 2018 Server: 0.0 kB/s from server 2.0kB/s TCP to server 0.0kB/s UDP to server
    Jun 13 13:02:06 adsbx-custom rc.local[506]: Wed Jun 13 13:02:06 2018 Aircraft: 31 of 34 Mode S, 54 of 54 ADS-B used


    Never get results :(
     
  19. MDA

    MDA Administrator Staff Member

    There is another possibility, latest dump1090-mutability sometimes has problem with beast data on port 30005.
    We can check it quickly by connecting your Pi to my VRS.
    Run from terminal:
    Code:
    socat -u TCP:localhost:30005,nodelay TCP:80.82.23.66:40003,nodelay
    I can check if you are connected and if data are available.
     
  20. adsb-tech-007

    adsb-tech-007 New Member

    OK done, sending to you now.