hackrf

Control a HackRF device (e.g. Jawbreaker, HackRF One, or Rad1o) from node

Usage no npm install needed!

<script type="module">
  import hackrf from 'https://cdn.skypack.dev/hackrf';
</script>

README

node-hackrf

Control a HackRF device (e.g. Jawbreaker, HackRF One, or Rad1o) from node

This is a low-level binding to libhackrf. If you'd like a nice stream interface, try hackrf-stream.

npm install hackrf

API

var devices = hackrf()

Returns an array containing information about the connected HackRF devices. If no devices are connected, an empty array will be returned.

var device = devices.open(index)

Opens and returns the device in the array of devices with index index.

device.getVersion()

Returns the hackrf firmware version.

device.setFrequency(hz, [callback])

Set the frequency. hz should be an integer

device.setBandwidth(hz, [callback])

Set the bandwidth. hz should be an integer

device.setSampleRate(hz, [callback])

Set the sample rate. hz should be an integer

device.setLNAGain(val)

Set the lna gain. Should be between 0-40

device.setVGAGain(val)

Set the vna gain. Should be between 0-62

device.setTxGain(val)

Set the tx gain. Should be between 0-47

device.startRx(onrx)

Receive data. onrx is called with (data, cb).

device.startRx(function (data, cb) {
  console.log('read', data)
  cb() // done
})

device.stopRx([callback])

Stop receiving data.

device.startTx(ontx)

Transmit data. ontx is called with (data, cb). You should write the data you want to send to data.

device.startTx(function (data, cb) {
  for (var i = 0; i < data.length; i++) data[i] = 127
  cb() // write the data
})

device.stopTx([callback])

Stop transmitting data.

device.close([callback])

Release the resources for the device (allowing it to be used by another process).

License

MIT