EN/FR
PROJECT

Are There Really That Many Planes Flying Over My House?

At first, I simply wanted to know whether my impression matched reality. A few searches later, an ADS-B station was tracking the planes flying over the house. And since they were there anyway, I might as well try to measure the noise they produce. One thing led to another: local tracking, a database and a homemade sound level meter.

Where I live, flight paths associated with Brussels Airport regularly make the news. Protests, disputes, changes to routes… The subject is nothing new, and I have no intention of reopening the debate here about whether those flights should or shouldn't pass overhead.

But recently, we've had a few periods when the air traffic has been particularly… noticeable.

The problem isn't really that a plane flies over the house. It's mainly the noise it produces. And, strangely enough, since this summer I've started finding the situation genuinely difficult to put up with.

With the added impression that some of those planes were flying really low.

So inevitably, a question came up: has the situation actually changed… or am I simply turning into a grumpy old man?

The second possibility being entirely plausible, it still seemed worth checking the first.

How many planes actually fly over us? At what altitude? Are some of them really flying much lower than the others? And above all: how much noise do they actually produce?

You can probably see where this is going.

So could I.

I needed to measure all of this.

Let's start by finding the planes

My first instinct was to find a way to retrieve aircraft trajectories and, while I was at it, integrate the whole thing into Home Assistant.

A few searches later, I quickly came across integrations based on Flightradar24. On paper, it was exactly what I needed: aircraft, their position, their altitude… all without reinventing the wheel.

Perfect. Let's keep things simple for once.

Well… let's try.

The first small disappointment was that registration was required. Then I discovered that quite a few constraints had been added around the service: request limits, API keys, access conditions…

Nothing dramatic in itself, but the deeper I looked, the less I liked the solution.

For a project whose purpose was simply to measure what was passing over my house, depending on an external service with its quotas, rules and possible future changes was starting to feel like a dead end.

So I kept searching and eventually came across FlightAware and its community aircraft-tracking network.

That immediately became much more interesting.

As such, it still didn't solve my original problem, but the principle was worth exploring: instead of asking a service where the planes are, you can simply listen to what the planes themselves are transmitting.

Without going into all the technical details here, aircraft broadcast information that can be used to determine things such as their position, altitude and identification. With an antenna, a receiver and a bit of software, it's therefore possible to receive and process that information locally.

FlightAware actually encourages people to contribute to its network by installing their own receiver and feeding the collected data back to the service.

And at that point, inevitably, the question changed slightly:

if I can receive the data myself, why fetch it from somewhere else?

A small station that can see surprisingly far

A few searches, a bit of hardware and inevitably a few lines of code later, I found myself with my own little FlightAware station.

And it works rather well.

I also installed tar1090, which provides a real-time map of the aircraft received by the station and their trajectories.

Tar1090 displaying aircraft received by the ADS-B station
Tar1090 — I wanted about 20 km… I think we're good!

Without making any particular effort to optimise anything, it receives transmissions from aircraft 150 km away from the house, sometimes even farther.

That's slightly overkill for finding out what's flying over my roof, but at least we shouldn't miss many.

Which should normally be more than enough.

Obviously, discovering that a completely unoptimised setup could already reach that far had exactly the opposite effect: I'm now seriously considering building a spider antenna and putting it up on the gable of the house.

Not because I need it.

Just to see how far it could go.

But before trying to receive even more aircraft that I don't actually need, let's get back to the original problem.

Seeing the planes is good. Getting the data is better.

The map is fun, and it already confirms that the system is working.

But the aircraft moving around on it are obviously just a graphical representation of the information received and decoded by the station.

And if that data is available, I might as well use it directly.

For my purposes, I obviously don't keep everything the station receives. I wrote a small service that monitors the detected aircraft and only really starts paying attention to them when they enter a 2 km radius around the house.

From that point on, it tracks their passage.

As long as the aircraft keeps getting closer, its distance, altitude and the other available information continue to change. Once it starts moving away again, I store the moment when it passed closest to the house in a small SQLite database.

I record the time, calculated minimum distance, altitude at that moment, speed and, when available, information identifying the aircraft, flight, airline and route.

This gradually gives me a history of the aircraft that have actually passed close to the house, rather than a copy of everything my receiver can hear within a 150 km radius.

And since I now had all that data available, obviously I needed a way to look at it without querying SQLite directly.

Local interface showing the history of aircraft passing close to the house
My interface for viewing recorded aircraft passages

The interface is therefore only the visible part of the system. Behind it, the small service continues monitoring the data provided by the station, detecting aircraft entering the area I'm interested in and gradually filling the database.

At this point, another possibility is inevitably starting to tempt me: bringing some of this information into Home Assistant.

MQTT seems like a fairly natural candidate. The tracker could publish information about the latest passage, a few counters or other useful data, and Home Assistant would simply consume it.

I don't yet know exactly what I'll do with it.

But it would be a shame to leave that drawer closed.

When an impression starts becoming a number

Meanwhile, FlightAware is also accumulating statistics about what the station receives.

And once again, after the initial fun of watching little planes move around a map, it becomes rather difficult not to start looking at the numbers.

How many aircraft? How many positions? How far away? In which directions? ADS-B or MLAT?

In other words, the map had started generating questions.

FlightAware statistics dashboard for the PiAware station
FlightAware — statistics and information from the PiAware station

This became particularly interesting on days when the overflights were seriously starting to annoy me.

Instead of being left with the feeling of “this can't be right, there's another one!”, I could now go and look at the numbers.

And on some days, they were fairly revealing.

On the busiest days I've observed, more than 300 aircraft on approach passed over the house in a single day.

But the total number tells only part of the story.

Those passages aren't spread evenly across 24 hours. They tend to cluster during certain periods, typically between 6 and 9 a.m., and then again between 4 and 9 p.m.

At times, I've observed an average rate close to one aircraft every two minutes, sometimes even around one every 1 minute 30 seconds.

So my impression of almost constant repetition was starting to have something a little more tangible behind it.

I also found it interesting to discuss this with a few neighbours. They were obviously aware of the aircraft passing overhead, but didn't seem to have realised the actual scale of it.

When you live with something every day, you probably stop counting after a while.

The altitude data also revealed a few passages that raised some questions for me. But that's another discussion, and one that goes well beyond the scope of this project. I'd rather not open that particular drawer here.

There was still one essential piece of data missing.

The noise.

The Noise Is Still Missing

Knowing that a plane passed at a certain altitude and a few hundred metres from the house is interesting.

But it still doesn't fully answer the question that started all this:

how much noise did it actually make?

So I needed to add a second source of data to the system: a sound level meter capable of staying outside permanently and, more importantly, automatically providing its measurements to my tracker.

I naively thought this part would be simple.

Unsurprisingly, I couldn't find anything that really matched what I needed at a price that made sense for this kind of experiment.

So I built one.

One ESP32-S3, an unlikely €15 Chinese sound level meter module, a few components, a JSON API, MQTT and a 3D-printed enclosure later, I now have something that's starting to look remarkably like a connected outdoor sound level meter.

Building this little thing went sufficiently off the rails to deserve a story of its own, so I've covered it in detail in Planes, Decibels and an ESP32.

Now all that's left is to install it outside and bring the two worlds together.

The two worlds finally come together

While I was building the sound level meter, the aircraft tracking station quietly kept collecting data.

So I have already started getting answers to some of the questions that triggered this project in the first place.

Yes, there really can be an enormous number of aircraft flying over the house.

Yes, the way they are concentrated during certain periods of the day probably goes some way towards explaining why, on some days, it feels as though there is almost always an aircraft overhead.

And another impression is beginning to emerge.

I might instinctively have assumed that the largest aircraft would also be the loudest.

But that is not really what I notice by ear.

What seems to make a much bigger difference is the age — or more precisely, the generation — of the aircraft.

Some older aircraft seem noticeably louder than newer ones, even when those newer aircraft are considerably larger.

For now, that remains a subjective observation.

But this is precisely the kind of hypothesis that the sound level meter will now allow me to compare against actual measurements.

Since it was installed on the outside wall, the two parts of the project are finally connected.

When an aircraft passes near the house, the tracker no longer simply records its identity, flight, trajectory, altitude and minimum distance.

Throughout the passage, it also queries the sound level meter.

For each aircraft, the database now stores the acoustic measurements obtained around the point at which it comes closest to the house, as well as the highest sound level observed during its passage.

And because the maximum sound level does not necessarily occur exactly at the point of closest approach, the tracker also records the aircraft's distance and altitude at the time of that peak.

Along the way, I increased the tracking radius from two to three kilometres to provide a slightly wider observation window around each passage.

The BME280 inside the enclosure also provides temperature, humidity, pressure and dew point.

Those values may never prove useful in explaining anything.

But since they are available, I might as well keep them.

Measuring something does not necessarily mean knowing what you are measuring

There is, of course, still one fairly significant problem.

The sound level meter has absolutely no idea that it is listening to an aircraft.

A car, a lawnmower, a dog or the train running behind the house could quite easily produce a sound peak while an aircraft happens to be passing through the tracking area.

So the highest level associated with a passage does not automatically mean that the aircraft was responsible for it.

And that is actually rather interesting.

Because it is a useful reminder of something fairly obvious that becomes easy to forget once you start accumulating numbers:

measuring something is one thing; determining what you are actually measuring is another.

I will therefore need enough data to start separating genuine trends from coincidences.

A single passage probably will not tell me very much.

A few hundred should already be considerably more interesting.

Now we collect

The project is therefore entering a new phase.

Until now, most of the work has essentially consisted of building the tools required to answer the original questions.

The ADS-B station identifies and tracks the aircraft.

The tracker records their passages and characteristics.

The sound level meter now continuously measures the outdoor acoustic environment.

And the two systems are finally combining their data.

For once, the next step mostly consists of not touching very much and simply letting everything run.

Dozens, then hundreds of passages will gradually accumulate, each with the aircraft type, altitude, distance and corresponding acoustic measurements.

Only then will it be time to look at what the data actually has to say.

Are some generations of aircraft genuinely louder than others?

How much influence do altitude and distance really have?

Does the sound peak generally occur when the aircraft is closest to the house, or is there a significant delay?

Do certain models or engine types clearly stand out?

And how many times will the train manage to impersonate a Boeing?

For now, I have no idea.

And that is precisely why I am collecting the data.

And what about Home Assistant?

The sound level meter is already integrated into it.

Sound levels, the various calculated statistics and the BME280 data are all reported to Home Assistant via MQTT.

The next step will probably be to do something similar with selected information from the aircraft tracker.

Not necessarily the entire database.

But having a few details about the aircraft currently nearby available in Home Assistant — its callsign, type, altitude, distance or even the associated sound level — could be interesting.

It would also make it possible to create a few visualisations or automations without turning Home Assistant into an aeronautical analysis platform.

That will probably be one of the next developments in the project.

The other one will simply have to wait.

The analysis.

For that, I now need to let the system do its job for long enough to build a dataset that actually starts to mean something.

A lot of things to answer a small question

And when I finally have the answers to the questions that started all of this?

Well...

I will still have an ADS-B station running permanently and contributing to the FlightAware network.

I will still have a local history of the aircraft that actually pass near the house.

I will still have a connected outdoor sound level meter installed on the wall and integrated into Home Assistant.

I will probably also have some of the aircraft tracker's information directly available through the home automation system.

I may even end up with a spider antenna attached to the gable that I absolutely did not need in order to answer the original question.

And above all, I will have learned quite a few things while building all of this.

All for a fairly modest amount of money in the end.

There is one important caveat to that last point: I already have a small IT infrastructure at home that runs 24 hours a day.

Home Assistant is already running there, and adding a few Docker containers, a small SQLite database or a couple of scripts represents virtually no additional cost for me.

If you are starting from scratch and need to buy a computer solely to reproduce all of this, the calculation will obviously be different.

In my case, most of the additional cost therefore comes down to the ADS-B reception hardware and the handful of components required for the sound level meter.

And if the latter survives outdoor conditions in the long term, it will probably end up being useful for something else.

What?

No idea.

Counting lightning strikes, perhaps...

We'll see.

Comments

No comments yet.

Add a comment

Your email address will not be published.

Comments are moderated before publication.