I'm new to Skydemon and still in my 30 days trial. I really love the app so far and I'm thinking about buying it. The best feature, IMO, is the GDL 90 support with traffic warnings, so it can interface with my Stratux.
However, I've found the GDL90 implementation to be quite buggy. I'm a software developer myself, so I've been doing some trial and error and noticed this:
1) It's quite annoying that GDL90 is only supported via UDP and not via Bluetooth. However, I managed to work round this by using a bluetooth-to-UDP app. So it's not too bad.
2) When connecting to my Stratux directly, the connection is quite unstable. Sometimes "Waiting for device" pops up for several seconds and then the connection works again, sometimes there is a timeout and I'm thrown out of flying-mode. As soon as I hit the "Fly" button, the connection is immediately established again. I used a UDP sniffer to evaluate if it's a problem on the Stratux side. However, there is a constant stream of data without any hickups, so it seems to be a problem with Skydemon.
3) Missing traffic: When connecting via Wifi/UDP, in many cases I don't see any traffic at all (yes, the limit is set to 50000ft), while on the Stratux website, there is quite a lot of ADS-B traffic. This is clearly a Skydemon issue, because:
4) As noted above, I implemented a layer between Stratux and Skydemon, so I can send the traffic via Bluetooth. The layer parses the GDL90 messages and simply sends them out via Bluetooth. On Android, there is another app that received the data via Bluetooth and sends them to 127.0.0.1:4000 via UDP. What I noticed: If I put a delay between each GDL90 message - e.g. 20ms - suddenly, all the traffic appears in Skydemon (even though it sometimes vanishes for a sec and then reappears). When I remove the delay, it vanishes completely again.
To me, this kind of looks like unstable serial data stream parsing (i.e. not correctly separating out the individual messages if they are received too fast).
Are these issues known? Is there anything in the pipeline to make the GDL90 implementation more stable in the future?
For reference, I tried with another App that supports ADS-B parsing - just to test my bluetooth translation layer. In that app, I can see all the traffic flawlessly. It doesn't disappear, it's all there, I don't need delays (but they don't harm either)... The only problem: the other app is - by far - not as good as Skydemon in any other respect.
So basically, the worst connection method is the "default" one (Wifi). Missing traffic and unstable connection.
With my bluetooth+delay hack, the connection is usually stable, traffic is at least sometimes visible but vanishes from time to time.
If I can be of any assistance to debug this issue, I'd be happy to do so.
EDIT: Another issue might be the lifetime of other airplanes. Stratux sends out a traffic report once per second, which only contains the traffic that was received in this second. Other apps seem to have a lifetime of about 30 seconds. So if a target is missing from a report, it will not be removed from the map immediately. For Skydemon, this lifetime seems to be only about one second?