Weather satellite capture
METEOR-M2 passes overhead a few times a day broadcasting imagery on 137 MHz. A wire dipole on a painter's pole and a thirty-dollar USB radio can hear it.
- Antenna
- V-dipole on a backyard mast, 137 MHz low-noise amp
- Floor
- Below about 40 degrees elevation, nothing usable comes down
- First real one
- 74 degrees, 8 June 2026, 3.3 MB of frames
- Since then
- 371 passes published, 1,898 captures on disk
How a pass is handled
A pass lasts about fifteen minutes and does not come back. If the decoder has not synchronized ninety seconds in, a monitor kills it and relaunches with the next combination of signal polarity, channel swap and filtering, ordered by how often each has previously worked.
Decoding runs on its own thread so it cannot block the scheduler's main loop, and a file lock stops a second scheduler starting. The scheduler fetches orbital elements itself and writes a timestamp into the decoder's settings, because the decoder otherwise retries a server it cannot reach forever rather than proceeding.
A DC block is required
The radio leaks a little of its own local oscillator back into its input, which puts a sharp spike exactly at the frequency being listened to. Without a DC blocking filter the decoder locks onto that spike and reports synchronization, zero bit errors and 23 dB of signal-to-noise while producing no image.
With the filter on, an empty sky correctly reads as no signal and a bit error rate near random.
Also in the repository
A web tracker with a Scan now button, mobile apps for Android and iOS, a desktop extension, and a server that lets an AI agent drive the radio. The daemon runs the scheduled captures unattended.