UNPKG

rtljs

Version:

node.js interface for librtl-sdr, using FFI-NAPI. Works with newer versions of node (like v16)

71 lines (49 loc) 2.13 kB
# 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](https://github.com/steve-m/librtlsdr). This package in turn requires [libusb](https://libusb.info/). 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](https://osmocom.org/projects/rtl-sdr/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: ```js import * as rtljs from "rtljs"; ``` Node require(): ```js const rtljs = require("rtljs"); ``` Sample Usage: ```js 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/](https://arkanic.github.io/rtljs/) [Examples are available here](https://github.com/Arkanic/rtljs/tree/main/example) ## Broken Stuff `readAsync` is not currently implemented with the FFI library change, this is in progress. ## About Made by [Arkanic](https://github.com/Arkanic) MIT License