The Wi-Fi adapter that can show you the radio signal underneath

Image: Raspberry Pi
A USB Wi-Fi adapter normally hands the computer packets. BirriaSDR takes a different route through the hardware and brings out the samples that exist before the receiver turns a radio signal into useful network traffic.
The open-source project uses an internal capture engine in supported MediaTek hardware, originally intended for debugging and calibration. Its documented COMFAST configuration combines an MT7961 digital die with an MT7972 analogue die and produces 40 million complex samples per second. Each sample contains 14-bit in-phase and quadrature values, carried to the host in two 16-bit words.
Those two values preserve information about a signal’s amplitude and phase. Software can use them to plot a spectrum or process a received waveform without first having to interpret it as a Wi-Fi transmission. That is the useful change: a specialised network peripheral becomes an accessible source of radio measurements.
The data has to move quickly. Four bytes per complex sample at 40 MSps amount to 160 MB/s of sample payload. The project’s receiver documentation describes a 256 KiB circular capture buffer holding only about 1.64 milliseconds of data at that rate. USB transfer scheduling and device-side servicing therefore matter just as much as the host’s ability to draw a waterfall display.
BirriaSDR loads its own small program into volatile device memory and uses libusb for access. Nothing is written to flash or eFuse. The interface belongs to the receiver software while it is in use, so this is not a background spectrum analyser running alongside an ordinary Wi-Fi connection.
The published tuning range extends from 2156 to 2610 MHz on the tested COMFAST board, but it is a programming range, not a promise of uniform sensitivity. Gain and frequency accuracy remain uncalibrated. The project also records finite filter roll-off and incomplete rejection outside the sampled band, where strong signals can alias into the capture.
The software also checks the continuity of the sample stream. Overruns are reported rather than concealed by discarding data without a warning. An application can opt into recovery, but the resulting gap remains part of the recording: restarting capture cannot recover samples already overwritten inside the receiver.
Sources: BirriaSDR project and supported hardware; Receiver configuration, buffering and data path; Acquisition and ownership behaviour.



