I've been interested in @ACARSDrama on Mastodon for a while and I sent a message to @SecureOwl (Mike, the operator) offering to help pick up messages to feed the bot if he ever went in that direction. He later invited me to help out and put out a public invitation and thus began my ACARS/VDL2/SDR (Software-defined Radio) adventure!
Not much, really. Just a computer with a USB stick plugged in that runs to an antenna with a base. I was silly and slapped the base onto the top of some blinds though for better reception.


There are a lot of low-priced USB radios so don't take this as a well-researched recommendation, but I picked up a NESDR SMArt v5 bundle, which included antennas and a base, which I needed for the magnetic base even though I do have a handful of HAM radio antennas around. It also picks up ADS-B messages, which are messages for a system for locating and navigating around aircraft (parallel to RADAR).
Mike wrote up a detailed post on how to set all of this up using Docker Compose. I'm a Kubernetes guy, so I decided to adapt his example.
I already had a Kubernetes cluster with Flux installed, so after adapting from Mike's example, I was ready to go!
After setting everything up correctly including adding the label acars: "true" to the node that had the USB SDR plugged in, I got my first message!

I received some settings from Mike, so I plugged those in and my setup started forwarding to the system he has to monitor ACARS for drama. Couldn't be easier!
Now that I'm getting messages, I look at the data that's coming in and realize that with the tail code, I can look up aircraft and see where they are the moment that I make contact so that way I can track what the furthest signal I received was. I tried to set something easy up with Home Assistant and/or n8n but I ended up starting to write code to handle it in Javascript and realized I can just write a Go app to do exactly what I want.
I wrote acars-annotator to take ACARS messages from acarshub and submit them to different annotator services (in my case, ADS-B Exchange) to add more information through lookups (in this case, geolocation and also distance to a point near me). Then it gets submitted to one or more receivers, right now I have a Discord webhook implemented and New Relic.
I started forwarding data to New Relic and made a cool plot of distance over time grouped by tail number and flight (because an aircraft could change its flight number). When there's a line, that's multiple contacts to the same aircraft at different distances. The unit is miles.

My current record is 153.5 miles!
If you want to replicate this, at the time this was written, New Relic currently gives you 100GB free per month which would more than cover your usage and ADS-B Exchange charges $10USD/mo for their Lite API with 10,000 requests per month which I think is reasonable.
I'll probably continue developing acars-annotator to add more annotation services (and options for what data to retrieve from those services) and receivers to submit that data (and templating for custom formats).
Special thanks to @SecureOwl (Mike) for the inspiration, motivation and help getting this working. Being able to contribute messages I picked up over radio to fuel an account chronicling aircraft drama is awesome to me and I'm here for it.