Hi. I just set up a receiver yesterday and am having fun with feeding data and seeing my own feed data being used for MLAT. The only problem is that it seems to work intermittently. The sync page shows that my feed often has no peers. I do not understand why this is, because at other times it works perfectly and has good sync with lots of peers. Just last night I was watching it track a helicopter with MLAT. Is there something wrong with my setup? Thanks in advance for any help.
Ah! That makes sense. I thought it was just synchronising the clocks of the Raspberry Pi and wouldn't need an aircraft. Is there any good detailed guide or article on this topic? I've had a look around the website but didn't see anything yet.
Haven't had the time to make it a proper article, but here is some rambling about it: https://github.com/wiedehopf/adsb-wiki/wiki/MLAT even more rambling: https://github.com/wiedehopf/adsb-wiki/wiki/mlat-thoughts Beyond that .... read the mlat-server source code
Very interesting. Thanks for sharing those links. So my understanding is that it needs an ADS-B position message to sync the feeds. How long does the sync last for, before they need to be re-synchronised? This also means that you need to be seeing an aircraft transmitting its position on ADS-B first to be able to calculate the position of a different aircraft with MLAT, correct? So if the only aircraft in range is not transmitting its position then we cannot calculate it with MLAT because there is no way to synchronise the feeds? I wonder if there would be a way to sync the feeds without needing a position message. If you got the system clock close enough first then couldn't you sync with any ADS-B message? I'm just throwing thoughts out here, I don't know the intricacies of how ADS-B works. Or maybe even sync by using GPS time. I know that is used for some other applications in radio. At the moment, it seems to be fairly often that I can't contribute to MLAT because there aren't enough other planes in range to let my feed sync first. Making some modifications like this would improve the amount of time MLAT can be used. I went to have a quick look at the source code but it's difficult to understand without spending a lot of time on it, especially since I've never used Python! I'm very curious about how the adsb exchange system is run. Do you use a cloud provider like Azure or AWS? If so, do you pay for how much computing power you use? Is MLAT calculation a significant amount of work? I always thought of python as a not very efficient language (in terms of execution speed). It may be an interesting project for me to re-write it in C# which is the language I prefer, and this might reduce computing costs. If the MLAT server calculations are not a significant cost, I'd like to know just out of interest what part of the system does cost the most, if you're able to tell me. I work in software engineering and am very interested to learn about all this kind of stuff.
You can sync via GPS but that GPS would need to be integrated in the SDR and the SDR would need different software .... and so forth. And no you can only sync of position messages as you need to know the aircraft position. If you want to improve MLAT sync, improve your range / reception It's some CPU, but not excessive. Maybe 12 GHz of VMs for all zones combined (i didn't check exactly). You could probably help add features or clean up the javascript code. The main map can mostly be replicated using this: https://github.com/wiedehopf/tar1090#0800-destroy-sd-card The heatmap data files contain enough data to add a replay function, that's the next thing on my list. But it's a very ugly binary format i didn't properly document when hacking it together. (https://tar1090.adsbexchange.com/?heatmap) If you want to look into that you'd have to check the C code that generates those files ;P Anyhow ... the javascript need some filtering by type, rewrite of the table on the right side, so instead of hiding rows it's just recreated every time, that should work more efficiently. For the table on the right side, interactive selection of columns is also often requested. Rewriting the mlat-server in another language would be quite annoying and long-winded i would imagine. It's not very efficient but as i mentioned earlier not a huge issue either. Anyhow ... in regards to coding, check by in discord (main page -> about).
Sorry to jump in on this this thread, but I also have the "no peers" message on my feeder cowfold_41 in area R3A-2 However the myip web page shows two green smiley faces. I understand from reading the replies above that sync requires one common ADSB aircraft being received. In SE England today there are hundreds of aircraft flying about so I'm struggling to understand why I would still be getting this error. Any help greatly appreciated.
Come by the discord and ask there if possible, i can check your configuration. Location needs to be precise .... no merged feeds. Maybe just reinstall the feed scripts (if you're using them), that lets you reenter the data, do it carefully maybe it fixes it
Thanks very much. I was also feeding to flightradar24 so I guess I did have a merged feed. I've actually had a further issue with my Raspberry Pi since my post so I'll have to attempt a full reinstall again at some point!
If you chose DVB-T for fr24, it runs its own dump1090 ... which is an issue. Try running this: https://github.com/wiedehopf/adsb-scripts/wiki/Automatic-installation-for-readsb A merged feed is something else by the way.
I've started over again with a fresh installation on my Pi and all is well again. Plenty of MLAT peers now. Thanks for your help