Pub Package Build Status GitHub Issues GitHub Forks GitHub Stars GitHub License

Dart bindings for Software Defined Radio

This library provides a simple Dart interface to devices supported by the RTL-SDR project. It wraps much of the functionality provided by the librtlsdr library in a convenient and typesafe way.

This library is open source, stable and well tested. Development happens on GitHub. Feel free to report issues or create a pull-request there. General questions are best asked on StackOverflow.

The package is hosted on dart packages. Up-to-date class documentation is created with every release.

Installation

First, make sure you have the most recent version of librtlsdr installed on your system, either through the developer or your favorite package manager. Make sure the library is accessible to Dart.

Then follow the installation instructions on dart packages.

import 'package:rtlsdr/rtlsdr.dart';

Tutorial

import 'package:rtlsdr/rtlsdr.dart';
import 'dart:io';

void main() async {
  // Grab the first RTLSDR device and print its name.
  final device = RtlSdr.devices.first;
  stdout.writeln(device.name);

  // Open device.
  device.open();
  try {
    // Tune in.
    device.centerFrequency = 105800000;
    device.sampleRate = 2048000;

    // Print some samples from the first chunk.
    final data = await device.stream.first;
    stdout.writeln(data.take(25));
  } finally {
    // Close the device at the end.
    device.close();
  }
}

License

I am not a fan of the GNU General Public License, but it looks like that is the only option for code using librtlsdr. All the code contained here is thereby licensed by the GNU General Public License v3.

Libraries

rtlsdr