ADS-B Signal Meter In Development - Seeking feedback!

There are some difficulties with using live data for performance optimisation, mainly because it involves the reception of many different transmitters all at differing ranges and altitudes. Time of day, location, season etc all have large effects. I have found that it can be quite unreliable to use instantaneous readings outside of large scale changes, eg ruling out positions/settings which are obviously much worse. When it comes to optimising, it’s much clearer to take the data in aggregate over a period of time (though even quite short periods can be long enough).

For me personally no because I’ve had my system up and running for years now and it’s quite well optimised. When I was experimenting a lot more with different antennas and especially indoors it would have been quite useful. At the time I used the live message count available on the planefinder client as a rough indicator.

Live message rate is the obvious one because it’s an immediate measure of what you are getting, but with a caveat - a simple number updated once per second is not great because of the inherent variability in number of messages received. It’s quite hard to get a trend from a number that jumps about a lot.

Short term rolling averages to smooth this out might be quite useful in addition to the raw number - 30s, 1min, 5 min etc. Some way to visualise these numbers would be great - a live updating graph for example.

The actual signal strength might be useful, but because there are so many transmitters this would need to be presented in a way that can somehow capture the distribution of those signals so that it is representative. If the aim is to guide new users, then some indication of when signals are too strong might be good, say if too many are bunched up at the top of the range.

Perhaps something along the lines of the stripplot in seaborn would be good, especially if it was live updating. eg with unrelated data:

image

Something like that could even be categorised by aircraft type/class or altitude etc.

I have written quite a few scripts to produce graphs and other visualisations over the years. Here are some examples of ones I’ve found handy:

Plotting number of aircraft against messages received can show up obvious differences in config:

image

also this one which is from a script which compares two periods of time:

Histograms can be quite useful for seeing differences. This is a comparison of an indoor and outdoor antenna:

Here’s a post with some more plots I made for testing airspy performance: Signal Strength Heatmap - #526 by caius

All my scripts are in this repo, though some might need updating to work as I haven’t really done much with them recently.

The ability to create a snapshot of stats for a specified period would be very useful. Being able to quantify differences is essential to determine if changes are significant or not. Looking at numbers while they are happening is fine to an extent, but it’s not a reliable way to assess performance.

For example, you want to test a new LNA or some other change so you press a button to capture an hours worth of stats. You make the change, and press another button and it presents you with a comparison using your first capture as a baseline. Loads of stats are useful here - message rate, range, signal strength, position rate, messages received per aircraft.

I also wrote scripts to generate heatmaps to show coverage. These show up blind spots from obstructions really well and they were quite useful when I was playing with antenna position, especially indoors. There’s a whole massive thread on those: Signal Strength Heatmap

Those involve collecting 24 hours or so of data and plotting it with gnuplot which has no problem with 500k or so points. I’m sure it could be done far more efficiently if written by someone who has a clue about developing rather than me who does battle with a text editor and documentation.

11 Likes