hackrf.js
JS port of libhackrf using usb. This module allows you to control HackRF devices (i.e. HackRF One, Jawbreaker, Rad1o) from Node.js.
Keep in mind this is mostly a direct API to the USB interface, so it's low level.
npm install hackrf.js
Usage
Use listDevices
to list HackRF devices, or open
to open the first device:
for await const info ofconsoleconsoleconst device = await
To select among multiple devices, open
can take a serial number or suffix:
const device = await
If successful, a HackrfDevice
instance is returned.
Then you'd usually configure the parameters:
await device // 20 Mspsawait device // tune to 2.451 GHzawait device // RF amplifier = off// for RX onlyawait device // IF gain = 8dBawait device // BB gain = 12dB// for TX onlyawait device // IF gain = 8dB
Finally, use receive
, sweepReceive
or transmit
to start streaming I/Q samples. These methods accept a callback that receives an Int8Array
to fill (TX) or read (RX):
await device
The array's buffer may be reused (overwritten) later, so avoid storing any references to it. Instead, copy the data somewhere else.
To request ending the stream, return false
from the callback (or call device.requestStop()
which has the same effect).
If you no longer need the device, you must call device.close()
to release it (the GC will not do this automatically). This is not needed if the process is going to exit.
See the reference for the full API.