MaxIntel Scout · acoustic module
Last updated:
Scout Doppler: aircraft flyover scanner and logger
Every plane that passes leaves a falling engine tone in the air, usually too low or faint to notice. This module shows it live and fits a Doppler curve to estimate the aircraft’s speed and closest distance. It names the plane from ADS-B when it can, and keeps a log. It also checks your own recordings for the same signatures before you share them.
How it fits the Scout
The Scout’s radios see the aircraft; this page hears them. It runs in your browser next to the Scout and is passive: it only listens. Audio stays on this device. Nothing is flashed to the Scout and no commands are sent to it. The optional Scout link reads its synced clock and the Remote ID drones it hears.
Background: how inaudible Doppler curves can locate a recording, and why we built the defensive half of that, not the locating half.
Live scanner
tone being tracked fitted Doppler curve of a logged flyover predicted pass of an aircraft or drone from ADS-B or Remote ID
Getting a clean signal
- Use a laptop’s built-in microphone or a USB microphone. Phone browsers and Bluetooth headsets often cut the lowest frequencies.
- Indoors near a window works; outdoors is better. Wind on the microphone shows as a smear at the bottom; shelter it.
- Propeller aircraft and helicopters give the clearest curves at 50–300 Hz. Jets at cruise height are faint and flat.
- Steady tones from fridges, fans and mains hum (50 or 60 Hz) are ignored: only falling tones become events.
- An event is logged a few seconds after the sound fades, once the whole curve is in.
Your position (for matching and predicted passes)
Filled from Scout settings if you saved a position there. Kept in this browser only.
Aircraft and drones (optional)
Give the scanner a live picture of what is overhead. It marks each predicted pass on the spectrogram, then names the aircraft behind a logged curve.
API mode needs a small proxy
adsb.lol and similar APIs send no CORS header, so a browser cannot read them directly. Run this, then set the API base to http://localhost:8788. It sends your rounded position to the API each poll.
// node proxy.js
const http=require('http');
http.createServer(async(q,r)=>{const d=await fetch('https://api.adsb.lol/v2'+q.url).then(x=>x.text());
r.setHeader('access-control-allow-origin','*');r.setHeader('content-type','application/json');r.end(d);}).listen(8788);| Aircraft | Distance now | Altitude | Speed | Predicted pass | Closest |
|---|
0 with a position.
Scout link (optional, read-only)
Close Scout Studio’s live monitor first: only one page can hold the serial port. Remote ID needs the Scout in a mode that decodes it.
Flyover log (live log)
| # | Heard | Length | Tone | Speed | Closest | Fit quality | Matched to | Fit error |
|---|
“+2” after a tone means two more harmonics of it were heard too; hover for the list. “Closest” is the slant distance at the moment of closest approach, not distance along the ground. Speed is through the air, so a headwind or tailwind shifts it from the ADS-B ground speed.
How the estimate works
- The audio is low-pass filtered and reduced to about 4,000 samples a second. It is analysed every 0.128 s with a 4,096-point FFT, in steps of about 1 Hz.
- Each frequency has its own slowly adapting noise floor, so steady hums sink into the background and new tones stand out.
- Peaks are linked frame to frame into tracks. A track that falls steadily in pitch for at least five seconds is a flyover candidate.
- The candidate is fitted with a model of a source moving in a straight line at constant speed. It uses the time each sound was emitted, not just heard. The fit gives the tone, the speed, the closest distance and the moment of closest approach.
- For a match, each aircraft’s track is projected past your position. Its closest approach, as heard after the sound’s travel time, is compared with the fit.
The speed of sound comes from the air temperature box: 331.3 + 0.606 × °C m/s.
Frequently Asked Questions
What does Scout Doppler do?
It listens through your browser's microphone and draws a live spectrogram of the low frequencies where aircraft engines sit. It spots the falling tone a plane makes as it passes. It fits a Doppler curve to each flyover to estimate the aircraft's speed and how close it came, and logs the event. With an RTL-SDR stick, an ADS-B API or a connected Scout, it names the aircraft or drone that made the sound.
Does it send my audio anywhere?
No. All analysis runs in this page. The audio is never recorded to a server or uploaded. The log is kept in your browser until you export or clear it. Only the optional ADS-B API mode makes a network request, and that sends your position rounded to about 100 metres to the API you choose.
How accurate are the speed and distance?
On a clean flyover of a propeller aircraft, expect speed within about 10 to 20 percent and closest distance within roughly a factor of 1.5. Wind, temperature, echoes from buildings, changes of speed or heading and a weak tone all add error. The simulated flyover recovers its known values closely; real skies are messier.
Why do I need to turn off the phone's audio processing?
Echo cancellation, noise suppression and automatic gain are designed to remove steady tones, which is exactly what an engine is. The page asks the browser to switch them off. Some phones and headsets still filter frequencies below about 100 Hz, so a laptop's built-in microphone or a USB microphone usually works better.
Can I use it to find where a recording was made?
No. That needs a nationwide search through a day of flight data and is not something this tool does or will do. The file mode is the defensive check. It tells you whether your own recording carries aircraft signatures before you share it, so you can trim it first.
Does this change anything on the Scout?
No. Nothing is flashed and no commands are sent. The Scout link is read-only over Web Serial. It takes the Scout's synced clock for timestamps and the Remote ID drones it hears. A drone's propeller tone can then be matched like an aircraft.