Looks pretty cool, though kinda "cheating" by pulling from adsb.fi - though I think you'd need something a lot more powerful than an ESP32 to receive and decode ADS-B ;)
Gotta admit that's what I clicked through hoping for.
I've seen a few projects that use SDR to detect doppler shifts of reflections of broadcast FM radio station off planes as "passive radar". But that doesn't get much in the way of direction info, just approach velocity. I've pondered building something that uses that and correlates it with an ADS-B receiver, to see it it can detect aircraft that are not transmitting ADS-B. But that'd get me on another "list" if I published it I suspect...
I suspect it's possible to build an active radar without exceeding the limits of the ISM bands.
Actually, I know it's possible, that's how the automotive radars (used for adaptive cruise control) work. The real question is if someone can get enough range to pick up aircraft.
TLS is supported in hardware, so it takes no more processing power than moving the data around without encryption.
In the US, ADS-B in uses 1.3 MHz of bandwidth, which would require 2.6 Msps. The ESP32-C3 running at 160 Mhz would have ~70 instructions per sample to process the data. That's probably doable, but the ESP32-C3 is one of the less capable variations of the line, and there are dual-core versions running at more than double the frequency, and those should be able to handle ADS-B in without issue.
> TLS is supported in hardware, so it takes no more processing power than moving the data around without encryption.
Specifically, common PC CPUs support AES acceleration, so you can get the ongoing encryption for an established connection with minimal overhead. There is still some initial overhead for establishing the TLS connection due to the need to do key exchange (with asymmetric cryptography primitives typically based on Diffie-Hellman with finite fields or elliptic curves).
I imagine the over 1GHz in this case is the baseband that you are talking about.
ADS-B baseband is also around 1GHz, what they mean is once you down convert in the process of demodulating the signal you will get a signal that has bandwidth of 1.3MHz.
It's the width of the band that matters, not the carrier frequency. For example a band running from 1.21 GHz to 1.22 GHz has a 10 MHz wide band. A heterodyne tuner would use analog circuitry to output it as a 0 to 10 MHz baseband signal that can the be sampled by the ADC.
GPS bands are from 11 to just over 15 MHz, depending on the band, but decoding is extremely complex, so it's usually done with dedicated hardware, so a microcontroller only needs to read the handful of bytes that hardware outputs per update, and most receivers default to only a single update per second, and max out at tens per second.
Except on small memory / processing devices (like ESP32) it's not actually that simple. Processing ADS-B on an ESP32 would, likely, be easier.
Part of the reason I've come to understand how finicky TLS is on ESP32 is because there have been a ton of TLS issues with these devices in Home Assistant [0]. The linked issue just being one of them that's still not fully resolved.
The built-in ADC doesn't have a high enough sample rate to decode ADS-B in, so an external one is needed, and USB ADCs are readily available with built-in demodulators, for use as DVB-TV receivers.
No you don’t need an external one, it’s actually possible to sample parts of high bandwidth using a lower bandwidth because of the small buffer in most SDR. The problem is that you can’t freeze the buffer so have to gather multiple “sweeps” get parts of ADSB stitched together.
Maybe I post the Rust code after some cleanup. Now I am busy build a new database from scratch to compete with them all https://github.com/punnerud/mpedb
(But is is a cool project)