moxon-frame-generator
simple generator for 3D-printed frames for a moxon rectangle antenna
Cross-platform FPV decoding and visualization
git clone https://github.com/lukeswitz/fpv-sdr.gitlukeswitz/fpv-sdr
Receive and decode analog 5.8 GHz FPV video (the analog NTSC or PAL link in many drones and FPV cameras) with common software-defined radios. Runs on Linux, macOS, and Windows.
git clone https://github.com/lukeswitz/fpv-sdr.git cd fpv-sdr ./setup.sh
Tip
Run ./setup.sh --check to report what's already installed
./setup.sh just confirms it../setup.sh installs via apt. Fedora / Arch: prints the packages to install./setup.sh does the rest.Updating:
git pull, then restart the scanner— no rebuild needed (re-run./setup.shonly if it ever reports a missing component).
The tool runs inside Ubuntu (WSL). From the project folder in PowerShell:
.\setup.cmd # install (run as Administrator the first time; reboot if asked, then run again) .\run.cmd --sdr hackrf # run (leave off --sdr for ANTSDR / USRP)
./fpv_scanner.sh # ANTSDR / USRP (default) ./fpv_scanner.sh --sdr hackrf # or --sdr bladerf ./fpv_scanner.sh --standard pal # PAL camera (625/50); default is NTSC
| Command | Does |
|---|---|
scan |
search once; open the video if a signal is found |
scan loop [SEC] |
keep searching until a signal; ENTER / Ctrl-C stops, SEC auto-stops |
sweep |
signal-strength table for all channels, no video |
spectrum [live|CH|MHz] |
live spectrum in the terminal |
set <CH> / freq <MHz> |
tune + view a channel (set R6) or frequency (freq 5843) |
sdr <name> |
switch radio (uhd, hackrf, bladerf, pluto) |
gain <dB> / lna <dB> / vga <dB> |
RX gain (HackRF default 36; gain sets both LNA+VGA) |
samp-rate <Msps> |
capture bandwidth — auto per SDR; raise/lower if needed (samp-rate 14) |
margin <dB> |
how far over the noise floor counts as a signal (default 12) |
rotate / contrast / record <file> |
adjust + capture video |
standard <ntsc|pal> (or pal / ntsc) |
switch video standard — pal = 625/50, 360×288 (EU cameras); default ntsc |
list / log / stop / quit |
channels / history / stop / exit |
Default is NTSC; use
--standard pal(or typepalat the prompt) for 625/50 PAL cameras.
scan to search every channel; if it finds a real FPV signal it opens the video on that
channel, use scan loop for constant monitoring.The spectrum command takes args for channel, use spectrum live to keep it updating:
A weak vertical or horizontal sync makes the picture roll or tear (common on PAL).
When the scanner opens the video (after scan, set <CH>, or freq <MHz>), tune it
live from the same terminal with the arrow keys:
The terminal shows the live V / H offset and a lock meter (0–100%; 0 = noise,
~100% = real synced picture). This is a hold (it repositions a split/offset frame) —
not needed once the picture sits right.
> prompt| If you see… | Type this |
|---|---|
| weak / grainy picture, black flicker at the top | lna 36 then gain 40 (more sensitivity) |
| washed-out / too bright | gain 16 (less gain) |
choppy video or OsO text spamming |
samp-rate 10 (lower bandwidth so the PC keeps up) |
| sharp signal, want more detail | samp-rate 16 (higher bandwidth) |
| a known channel isn't being found | margin 8 (detect weaker signals) |
| picture too dark / too washed | contrast 0.9 (brighter) or contrast 0.6 (flatter) |
| PAL camera | pal |
| frame split by a black bar | hold ↓ until the bar rolls off the bottom |
Defaults per radio are auto-set (e.g. HackRF: gain 36, samp-rate 12); the commands above just override them.
64 channels across 8 bands: Raceband, A, B, E, Fatshark, ImmersionRC, DJI, Low (5362–5945 MHz).
Type list to see them all.
| SDR | --sdr |
Notes |
|---|---|---|
| ANTSDR E200 | uhd |
recommended |
| USRP B210 / B200mini | uhd |
|
| BladeRF 2.0 micro | bladerf |
needs its FPGA image (setup loads it) |
| HackRF One | hackrf |
8-bit — fine for FM video, slower fps than the rest |
| ADALM-Pluto | pluto |
SoapySDR; needs the 5.8 GHz firmware mod; USB 2.0 caps it to ~8 Msps |
| CaribouLite | cariboulite |
SoapySDR; reaches 5.8 but only 2.5 MHz BW — too narrow for a usable picture |
| LimeSDR · RTL-SDR · Airspy · SDRplay | — | can't reach 5.8 GHz |
Capture bandwidth is set automatically per radio (HackRF 12, bladeRF 18, ANTSDR/USRP 20, Pluto 8 Msps); override with
samp-rate <Msps>.
Important
Ensure the gain settings are correct for your device before running. Keep that hackRF amp off ;)
margin 10; or if the level sits near −10…−20 dBFS the
gain is too high (gain 16).export DISPLAY=:0.lna 36, a better 5.8 antenna, or move closer.OsO text spamming the terminal — the PC can't keep up at that rate; samp-rate 10.lock near 100% confirms a real signal.SoapySDRUtil --find; ANTSDR: ping 192.168.1.10 && uhd_find_devices../setup.sh --check reports it. Use a USB 3.0 port.For lawful reception of 5.8 GHz FPV video only — you are responsible for the rules in your
jurisdiction. Provided as is, no warranty. The bundled NTSC decoder
(gr-ntsc-rc, in vendor/) is GPLv3; the rest is MIT. Author assumes no liability for anything this code does.
fpv-sdr is provided for lawful, educational, and authorized-testing purposes
only — e.g. receiving signals you own, operate, or have explicit permission to
receive.
You are solely responsible for ensuring your use complies with all applicable laws, which may include radio-interception, wiretap, privacy, and aviation statutes. In the United States these may include the Electronic Communications Privacy Act (18 U.S.C. § 2511) and the Communications Act (47 U.S.C. § 605); other jurisdictions impose their own rules. Intercepting, decoding, recording, or divulging communications you are not authorized to receive may be a criminal offense.
This project does not endorse or support using the software to intercept, monitor, or interfere with systems operated by third parties — including government, law enforcement, commercial, or private operators — without their authorization. Requests for help doing so will be declined.
The software is provided "as is," without warranty of any kind. The authors accept no liability for misuse. This notice is not legal advice; consult a qualified attorney in your jurisdiction.
more like this
simple generator for 3D-printed frames for a moxon rectangle antenna
search projects, people, and tags