sdr-enthusiasts / docker-adsbexchange

Feeds ADS-B data into adsbexchange.com. Designed to work with mikenye/readsb-protobuf.
MIT License
70 stars 16 forks source link

Question: mlat-client debug options? #54

Closed sgofferj closed 3 years ago

sgofferj commented 3 years ago

I'm running your containers so far successfully as a stack with readsb-protobuf, adsb-exchange and tar1090. The only thing that doesn't seem to work is MLAT. the status page shows me all green but my station doesn't seem to sync with any peers: https://adsbx.org/sync/feeder.html?5A&ADSB_VLK

The console output doesn't seem to show any errors. Here's an example:

[adsbexchange-feed]     0 with bad message format or invalid CRC
[adsbexchange-feed]     0 with unrecognized ICAO address
[adsbexchange-feed]     0 accepted with correct CRC
[adsbexchange-feed]     0 accepted with 1-bit error repaired
[adsbexchange-feed] 0 total usable messages
[adsbexchange-feed] 0 surface position messages received
[adsbexchange-feed] 0 airborne position messages received
[adsbexchange-feed] 0 global CPR attempts with valid positions
[adsbexchange-feed] 0 global CPR attempts with bad data
[adsbexchange-feed]   0 global CPR attempts that failed the range check
[adsbexchange-feed]   0 global CPR attempts that failed the speed check
[adsbexchange-feed] 0 global CPR attempts with insufficient data
[adsbexchange-feed] 0 local CPR attempts with valid positions
[adsbexchange-feed]   0 aircraft-relative positions
[adsbexchange-feed]   0 receiver-relative positions
[adsbexchange-feed] 0 local CPR attempts that did not produce useful positions
[adsbexchange-feed]   0 local CPR attempts that failed the range check
[adsbexchange-feed]   0 local CPR attempts that failed the speed check
[adsbexchange-feed] 0 CPR messages that look like transponder failures filtered
[adsbexchange-feed] 0 non-ES altitude messages from ES-equipped aircraft ignored
[adsbexchange-feed] 0 unique aircraft tracks
[adsbexchange-feed] 0 aircraft tracks where only one message was seen
[adsbexchange-feed] CPU load: 0.1%
[adsbexchange-feed]   0 ms for demodulation
[adsbexchange-feed]   0 ms for reading from USB
[adsbexchange-feed]   1023 ms for network input and background tasks
[healthcheck] 
[healthcheck] Feeder 'ADSB_VLK', UUID 'xxx':
[healthcheck] Online statistics at: https://www.adsbexchange.com/api/feeders/?feed=xxx
[healthcheck] 
[healthcheck] Beast data feeding OK
[healthcheck]   - Data Incoming From: xxx.xxx.xxx.xxx
[healthcheck]   - Route:Port: beast.front
[healthcheck]   - Backend: beast.back
[healthcheck]   - Connected: beast-ingress.01
[healthcheck]   - Age: 2h14m
[healthcheck] 
[healthcheck] MLAT data feeding OK
[healthcheck]   - Data Incoming From: xxx.xxx.xxx.xxx
[healthcheck]   - Route:Port: mlat.front
[healthcheck]   - Backend: mlat.back.5a
[healthcheck]   - Connected: mlat5a
[healthcheck]   - Age: 2h29m
[healthcheck] 
[mlat-client] Receiver: connected     4.3 msg/s received        0.0 msg/s processed (0%)
[mlat-client] Server:   ready         0.0 kB/s from server      0.0 kB/s to server
[mlat-client] Results:  0.0 positions/minute
[mlat-client] Aircraft: 0 of 0 Mode S, 0 of 0 ADS-B used
[adsbexchange-feed] Statistics: Sat Jun 19 15:27:25 2021 UTC - Sat Jun 19 15:42:26 2021 UTC
[adsbexchange-feed] Messages from network clients:
[adsbexchange-feed]   4277 Mode A/C messages received
[adsbexchange-feed]   124 Mode S messages received
[adsbexchange-feed]     0 with bad message format or invalid CRC
[adsbexchange-feed]     0 with unrecognized ICAO address
[adsbexchange-feed]     124 accepted with correct CRC
[adsbexchange-feed]     0 accepted with 1-bit error repaired
[adsbexchange-feed] 124 total usable messages
[adsbexchange-feed] 0 surface position messages received
[adsbexchange-feed] 12 airborne position messages received
[adsbexchange-feed] 7 global CPR attempts with valid positions
[adsbexchange-feed] 0 global CPR attempts with bad data
[adsbexchange-feed]   0 global CPR attempts that failed the range check
[adsbexchange-feed]   0 global CPR attempts that failed the speed check
[adsbexchange-feed] 0 global CPR attempts with insufficient data
[adsbexchange-feed] 2 local CPR attempts with valid positions
[adsbexchange-feed]   2 aircraft-relative positions
[adsbexchange-feed]   0 receiver-relative positions
[adsbexchange-feed] 3 local CPR attempts that did not produce useful positions
[adsbexchange-feed]   0 local CPR attempts that failed the range check
[adsbexchange-feed]   0 local CPR attempts that failed the speed check
[adsbexchange-feed] 0 CPR messages that look like transponder failures filtered
[adsbexchange-feed] 0 non-ES altitude messages from ES-equipped aircraft ignored
[adsbexchange-feed] 1 unique aircraft tracks
[adsbexchange-feed] 0 aircraft tracks where only one message was seen
[adsbexchange-feed] CPU load: 0.1%
[adsbexchange-feed]   0 ms for demodulation
[adsbexchange-feed]   0 ms for reading from USB
[adsbexchange-feed]   1077 ms for network input and background tasks
[healthcheck] 
[healthcheck] Feeder 'ADSB_VLK', UUID 'xxx':
[healthcheck] Online statistics at: https://www.adsbexchange.com/api/feeders/?feed=xxx
[healthcheck] 
[healthcheck] Beast data feeding OK
[healthcheck]   - Data Incoming From: xxx.xxx.xxx.xxx
[healthcheck]   - Route:Port: beast.front
[healthcheck]   - Backend: beast.back
[healthcheck]   - Connected: beast-ingress.01
[healthcheck]   - Age: 2h29m
[healthcheck] 
[healthcheck] MLAT data feeding OK
[healthcheck]   - Data Incoming From: xxx.xxx.xxx.xxx
[healthcheck]   - Route:Port: mlat.front
[healthcheck]   - Backend: mlat.back.5a
[healthcheck]   - Connected: mlat5a
[healthcheck]   - Age: 2h44m
[healthcheck] 
[mlat-client] Receiver: connected     4.9 msg/s received        0.0 msg/s processed (1%)
[mlat-client] Server:   ready         0.0 kB/s from server      0.0 kB/s to server
[mlat-client] Results:  0.0 positions/minute
[mlat-client] Aircraft: 0 of 0 Mode S, 0 of 0 ADS-B used

I couldn't find any documentation for the mlat client or any debugging options. Could you please advise how to enable additional debugging output or where to start debugging?

mikenye commented 3 years ago

Hi @sgofferj,

Unfortunately there isn't any way supported by the mlat-client to increase the logging verbosity:

usage: mlat-client [-h]
                   [--input-type {auto,dump1090,beast,radarcape_12mhz,radarcape_gps,radarcape,sbs,avrmlat}]
                   --input-connect INPUT_CONNECT [--results RESULTS]
                   [--no-anon-results] [--no-modeac-results] --lat LAT --lon
                   LON --alt ALT [--privacy] --user USER [--server SERVER]
                   [--no-udp] [--log-timestamps]

However, from what I can gather there are no problems with your software configuration.

I've had a chat to the ADSBExchange devs regarding this, and the problem with your MLAT appears to be the amount of positions you're feeding in. MLAT won't sync if there are no positions being fed. While chatting to the devs, we saw a plane pop up and immediately your mlat-client started syncing:

Your feed:

image

Positions from your area:

image

Your MLAT results (from just that one plane):

image

As you can see, there is a lot of aircraft activity in your area, but you were only picking up that one flight.

Accordingly, you may wish to consider:

Improving the quality of your feed will result in much better and more stable MLAT synchronisation.

sgofferj commented 3 years ago

Will do! Thanks for your help and your work!

mikenye commented 3 years ago

You're very welcome.