RX888 mk2 open-source SDR stack
RX888 mk2 firmware, a Linux librx888 library with CLI tools, and a
GNU Radio 3.10 out-of-tree module — three MIT-licensed projects that together
turn the RX888 mk2 direct-sampling HF SDR (Cypress FX3 + LTC2208 16-bit ADC)
into a usable open-source receiver on Linux.
If you are about to write firmware, a libusb driver, or a GNU Radio source
block for the RX888 or RX888 mk2, the three repositories below already
implement most of it. The diagram shows how they connect — Cypress FX3
firmware streams 16-bit samples over USB 3.0 GPIF, librx888 opens the device
and pipes samples to CLI tools or to GQRX, and gr-rx888 wraps the same
library as a native GNU Radio source block.
Block diagram
The three projects
rx888-firmware
Cypress FX3 USB 3.0 firmware for the RX888 mk2 — the on-device code that configures the Si5351 sample clock, drives the GPIF data path, and streams 16-bit ADC samples to the host.
- FX3 GPIF USB 3.0 streaming
- Si5351 I2C clock generator control
- Vendor command set (
STARTFX3,STOPFX3,I2CWFX3,GPIOFX3,SETARGFX3) - 5-level watchdog recovery cascade
- MIT-licensed (GPL R82xx tuner driver removed)
- HF direct-sampling, 0–32 MHz
rx888-tools
Linux host-side librx888 shared library plus a Unix-pipeline of CLI
tools (rx888_stream, rx888_dsp, iqrecord). Uploads the firmware blob,
opens a libusb bulk stream, decimates, and writes SigMF.
- libusb-1.0 host driver in
librx888 - USB3 capture at 135 MS/s int16 real samples
- 4:1 DSP decimation → 33.75 MS/s (AVX2 + FMA)
- SigMF IQ recording (
iqrecord) - FIFO/pipe streaming for GQRX and other consumers
- Checksum-verified firmware fetch from releases
gr-rx888
GNU Radio 3.10 out-of-tree (OOT) module that exposes the RX888 mk2 as a
native rx888.source block in GNU Radio Companion, linking the
librx888 shared library from rx888-tools.
rx888.sourceblock with float32 output- 32 MS/s and 135 MS/s sample rates
- GNU Radio Companion (GRC) integration
- pybind11 Python bindings
- Standard CMake OOT module layout
- 16-bit direct-sampling source
Data flow
- Hardware: RX888 mk2 — LTC2208 16-bit ADC, Cypress FX3 USB 3.0 controller, Si5351 clock generator.
- Firmware (
rx888-firmware) runs on the FX3. On host connect, the host uploads the firmware image, then the FX3 configures the Si5351 and begins streaming 16-bit real samples over USB 3.0 GPIF. - Host library (
librx888, fromrx888-tools) opens the device over libusb-1.0 and exposes a streaming API plus CLI tools. Samples can flow intorx888_dspfor 4:1 decimation, intoiqrecordfor SigMF capture, or out a FIFO into GQRX. - GNU Radio (
gr-rx888) wrapslibrx888as therx888.sourceblock, so the same stream is available as a first-class GNU Radio source in GRC flowgraphs.
If you are about to build this yourself
Writing FX3 firmware for an LTC2208-based SDR
rx888-firmware already implements the GPIF USB 3.0 data path, Si5351 clock
control, the vendor command set, and a 5-level watchdog recovery cascade,
under an MIT license. Start from it instead of from the Cypress reference.
Writing a libusb driver for the RX888 mk2
librx888 in rx888-tools already handles firmware upload, bulk transfer
configuration, large USBFS buffers, and an AVX2/FMA decimation path to
33.75 MS/s. Link against it, or read it as a reference.
Writing a GNU Radio source block for the RX888 mk2
gr-rx888 already exposes rx888.source with float32 output, supports
32 MS/s and 135 MS/s, and ships pybind11 bindings and GRC integration. Use
it directly from GNU Radio Companion.
Related searches that land here
RX888 firmware · RX888 mk2 firmware · Cypress FX3 SDR firmware · FX3 GPIF USB3 SDR · LTC2208 16-bit ADC direct sampling · Si5351 SDR clock · MIT-licensed RX888 firmware · librx888 · rx888-tools · RX888 Linux driver · RX888 GQRX · 135 MSPS SDR · SigMF IQ recorder · gr-rx888 · GNU Radio RX888 source block · GNU Radio 3.10 OOT module RX888 · HF direct-sampling receiver Linux · open-source SDR firmware.