An analog 5.8 GHz FPV receiver usually needs a dedicated receiver module, a video demodulator and some RF plumbing. A new open-source project called C5VRX uses almost none of that. Developer Twotoz runs the whole receive chain on one Seeed Studio XIAO ESP32-C5. The microcontroller's own Wi-Fi radio receives the signal, firmware demodulates it, and six resistors turn the result into composite video that FPV goggles can display.

The project's GitHub README describes it in one line: "Analog 5.8 GHz FPV receiver on one Seeed Studio XIAO ESP32-C5 with a passive 6-bit resistor DAC: live FM video in, composite PAL/NTSC out for goggles." Hackaday covered it on October 20-21, 2026. We did not find other independent coverage.

How It Works

The trick is that the ESP32-C5 has a 5 GHz radio. Seeed's getting-started wiki lists the chip as a RISC-V 32-bit single-core processor running at up to 240 MHz. It supports 2.4 GHz and 5 GHz dual-band Wi-Fi 6 plus Bluetooth 5 (LE). The XIAO board adds 8 MB of PSRAM and 8 MB of flash, I2C/UART/SPI, 11 PWM pins, 5 analog pins, and Reset and Boot buttons.

C5VRX does not use that radio for Wi-Fi. It works from IQ samples taken from the chip's Wi-Fi PHY and demodulates the wideband FM video signal used by analog FPV transmitters. The README says the project "uses the ESP32-C5's own Wi-Fi radio; no extra RF parts." The demodulator, which the author calls U85Q, runs in the chip's TX BitScrambler. The README lists "Fixed ultrafine IQ" at 40 MS/s with "no CPU in the sample path." Samples move through hardware rather than being processed one at a time by the RISC-V core, which matters on a single-core chip running at up to 240 MHz.

The README also credits Espressif for a GDMA EOF fix, tracked as espressif/esp-idf#19091. The project depended on an upstream DMA change to work, which shows how close to the edge of the silicon this design runs.

The Six-Resistor DAC

On the output side, C5VRX skips a video encoder chip. The demodulated signal goes out through a passive 6-bit resistor DAC on pins D4 to D9, which are GPIO 23, 24, 11, 12, 8 and 9, listed LSB first. The README gives these resistor values, LSB to MSB:

  • 8.2k
  • 3.9k
  • 2k
  • 1k
  • 470R
  • 240R

The summed node drives a 200R load to ground. Each resistor is roughly half the value of the one before it, so each GPIO pin carries about twice the weight of the previous bit. The output is composite video in PAL or NTSC; the menu's video standard item cycles AUTO, NTSC and PAL, and AUTO follows the camera.

Hackaday described the build as using "a simple resistor-ladder DAC." It also noted the simple button interface for picking channels and a serial link for more in-depth options.

Features and Firmware

The receiver scans 48 channels. Its on-screen menu has these options: band, channel, scan, video standard, calibrate, output level, gain, flywheel and exit.

Firmware is installed from the project site, c5vrx.com, using a browser web flasher. The flasher needs Web Serial, so the site specifies a desktop browser such as Chrome or Edge. If connecting fails, the site says to hold BOOT, tap RESET, then release BOOT.

The current release is C5VRX-5. The site lists these features:

  • an untrained U85Q demodulator
  • fixed ultrafine IQ
  • KEEL-1 gain control
  • an analog filter that calibrates itself on the first boot

The calibration notes on the site include the line "VTX off is best." Archived C5VRX-3 releases are no longer developed.

What Is Still Unfinished

The README does not overstate the project. It marks several items as "board test pending," including a 16 MHz wide-filter class and live switching between VTX profiles. It also says that camera and monitor acceptance "remains experimental." In other words, the author does not yet promise that every pair of goggles or every monitor will lock onto the composite signal.

Hackaday raised a practical question too. Analog FM video is still popular on drones because latency is extremely low and there is no digital "cliff-edge" where the picture is lost. Hackaday said it would be interested to know whether the latency of the SDR affects usability. The sources we reviewed publish no latency figures, so for now that question is open.

The Hackaday comments also pointed out that the repo's AGENTS.md file is longer than its README, which commenters took as a sign of LLM assistance. Using AI tools is not a defect by itself. But this is a signal-processing project whose README uses its own coined names (U85Q, KEEL-1, "ultrafine IQ"), and we found no independent measurements. Treat the performance claims as unverified until other builders report results on their own hardware.

What It Means for Makers

Who it is for: FPV hobbyists and RF experimenters who want a cheap, hackable analog video receiver. It should also appeal to embedded engineers curious about using a Wi-Fi PHY as a general-purpose receiver. The design suggests that a modern Wi-Fi SoC's IQ path, combined with a hardware engine like the BitScrambler, can handle wideband analog demodulation without CPU involvement in the sample path. Six resistors replace a video encoder chip.

What it replaces or enables: Per the README, the receiver uses the ESP32-C5's own Wi-Fi radio with no extra RF parts; the DAC is the XIAO ESP32-C5 plus the six resistors and the 200R load. That makes it a candidate for a spare or ground-station receiver, a teaching example of SDR techniques on a microcontroller, or a starting point for other experiments with the ESP32-C5's IQ path. Because the firmware is GPL-3.0-only, modified versions you distribute must also be passed on as source under the same license.

Price and availability: The firmware is free and open source (GPL-3.0-only). The C5VRX-5 build is available now from the c5vrx.com web flasher, and the source is on GitHub. None of the sources we reviewed gives a price for the Seeed XIAO ESP32-C5, so check current pricing with Seeed or a distributor. The README describes camera and monitor acceptance as experimental, and several features are still "board test pending."

For anyone building one: flashing needs a desktop browser with Web Serial, such as Chrome or Edge, and if the connection fails the board can be put into download mode by hand with its BOOT and RESET buttons.

Sources