Skip to content

RTL SDR Driver

hardcoreerik edited this page Aug 30, 2026 · 1 revision

RTL-SDR Driver

Status: Hardware-verified on the Tab5 path. OrcSDR uses the immutable esp_rtl_sdr v0.7.9 component with an RTL-SDR Blog V4.

The driver runs the RTL-SDR Blog V4 over USB High-Speed and delivers IQ data to OrcSDR through callbacks. The Tab5 integration uses three 32-KiB USB transfers, pins USB work to core 0, and consumes or copies borrowed IQ data inside the callback.

What the driver does

  • Detects the supported Blog V4 USB identity.
  • Streams IQ for the radio dashboards.
  • Accepts asynchronous frequency, sample-rate, gain, RTL digital AGC, PPM, and bias-tee requests when the device supports them.
  • Reports health and transport counters used by the RF Health views and RF Lab.

ESP_OK means a control request was accepted by the software path. It is not independent proof that a hardware register has latched. The driver keeps a software shadow for those controls.

Clean-room boundary

esp_rtl_sdr is an independently maintained, clean-room ESP-IDF component. OrcSDR does not copy the driver into its app tree or patch generated component files. Driver fixes are released upstream under a new immutable tag, then adopted by updating OrcSDR's manifest and lockfile.

The project does not use librtlsdr source, register tables, tuner tables, or GPL driver ports as its implementation base. Public hardware documentation and independently observed behavior define the supported path.

When reception is unhealthy

Start with one strong local FM station. Then check a dashboard's RF Health or RF Lab for rising USB overruns, consumer drops, or audio underruns. Those counters tell you whether the transport or processing path is falling behind.

For integration detail, see the repository's driver contract.

Clone this wiki locally