Skip to content

.NET Core library to manage RTL-SDR devices

License

Notifications You must be signed in to change notification settings

nandortoth/rtlsdr-manager

Repository files navigation

RTL-SDR Manager Library for .NET Core

Installation

RTL-SDR Manager Library is available via NuGet package manager. You can easily install it via the usual ways.

# dotnet CLI
dotnet add package RtlSdrManager

# nuget CLI
nuget install RtlSdrManager

Usage

Handling RTL-SDR device:

// Initialize the Manager instance.
var manager = RtlSdrDeviceManager.Instance;

// Open a managed device and set some parameters.
manager.OpenManagedDevice(0, "my-rtl-sdr");
manager["my-rtl-sdr"].CenterFrequency = new Frequency {MHz = 1090};
manager["my-rtl-sdr"].SampleRate = new Frequency {MHz = 2};
manager["my-rtl-sdr"].TunerGainMode = TunerGainModes.AGC;
manager["my-rtl-sdr"].AGCMode = AGCModes.Enabled;
manager["my-rtl-sdr"].MaxAsyncBufferSize = 512 * 1024;
manager["my-rtl-sdr"].DropSamplesOnFullBuffer = true;
manager["my-rtl-sdr"].ResetDeviceBuffer();

Asynchronous sample reading from the device:

// Start asynchronous sample reading.
manager["my-rtl-sdr"].StartReadSamplesAsync();

Read samples from the buffer:

// Dequeue from the buffer.
if (!manager["my-rtl-sdr"].AsyncBuffer.TryDequeue(out var data))
{
    Thread.Sleep(100);
    continue;
}

// Use the sample
Console.WriteLine(data);

Using KerberosSDR related functions:

// Enable KerberosSDR mode.
manager["my-rtl-sdr"].KerberosSDRMode = KerberosSDRModes.Enabled;

// Using frequency dithering and configuring GPIO directly.
manager["my-rtl-sdr"].FrequencyDitheringMode = FrequencyDitheringModes.Enabled;
manager["my-rtl-sdr"].SetGPIO(1, GPIOModes.Enabled);

Release Notes

v0.2.1 - January 10, 2020

  • Implement KerberosSDR related features (frequency dithering, direct GPIO control)
  • Implement Bias Tee settings
  • Minor fixes in the documentation

v0.2.0 - June 10, 2018

  • Bugfix in DeviceInfo handling
  • Implement singleton pattern for RtlSdrDeviceManager

v0.1.3 - June 9, 2018

  • First public NuGet package

v0.1.2 - June 3, 2018

  • Handling crystal frequencies (RTL2832, IC)
  • Support tuner bandwidth selection (Automatic, Manual)
  • Support direct sampling (I-ADC, Q-ADC)
  • Support offset tuning mode for zero-IF tuners

v0.1.1 - May 12, 2018

  • First public release of the RTL-SDR Manager
  • Supports most of the imporant functions of RTL-SDR device