rtljs
v3.0.0
Published
node.js interface for librtl-sdr, using FFI-NAPI. Works with newer versions of node (like v16)
Downloads
22
Maintainers
Readme
RTLjs
Node.js interface for librtlsdr, using FFI-NAPI
Works with modern versions of node, unlike alternate packages on NPM
Only tested on Linux, but if you ask me, I (think I) can very easily add windows/macos support.
Installation
Prerequisites
This module requires librtlsdr. This package in turn requires libusb.
Librtlsdr is a package on most package repositories.
Linux:
sudo apt-get install librtlsdr-dev
Windows:
you will need to install librtlsdr on your machine. DLLs are availble on the librtlsdr wiki. These will need to be inserted into a system path folder so that ffi-napi can access them.
Package
npm i rtljs
Usage
The package is written in ts and compiled to js, so ts typings are automatically provided with the package.
Using ES:
import * as rtljs from "rtljs";
Node require():
const rtljs = require("rtljs");
Sample Usage:
console.log(rtljs.getDeviceCount()); // 1
console.log(rtljs.getDeviceName(0)); // Generic RTL R820T2
let device = rtljs.open(0);
device.setCenterFreq(1090 * rtljs.mhz); // 1090000000
// raw IQ data
device.resetBuffer(); // reset buffer to prevent communication data from appearing as radio data
let data = device.readSync(512); // read 512b
console.log(JSON.stringify(data)); // [128, 127, 128... etc
rtljs.close(device);
Common Fixes
Nothing happening when i use readSync/Async, program just hangs
remember to use device.resetBuffer() before using read commands
Can't access device
you probably forgot to use close() in your code to end the device when the program ended. Reset your usb ports and this should now work fine.
API
TSDoc API available at https://arkanic.github.io/rtljs/
Broken Stuff
readAsync
is not currently implemented with the FFI library change, this is in progress.
About
Made by Arkanic
MIT License