JSPM

@danielgjackson/ble-uart

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4
  • Score
    100M100P100Q29204F
  • License BSD-2-Clause

Bluetooth BLE Nordic UART Client (Node.js, using noble)

Package Exports

  • @danielgjackson/ble-uart

Readme

Bluetooth BLE Nordic UART Client

BLE UART client using noble.

To use the package:

npm i -s @danielgjackson/ble-uart

Example code for demo.mjs (substitute A1:B2:C3:D4:E5:F6 with your device's address):

import BleUart from '@danielgjackson/ble-uart'

async function demo(address) {

    console.log('Scanning...')
    const bleUart = await BleUart.scanForBleUart(address)

    bleUart.addLineReader((line) => {
        console.log(`Received: ${line}`)
    })

    console.log('Connecting...')
    await bleUart.connect()

    console.log('Connected!')
    bleUart.write('connected\n')
}

demo('A1:B2:C3:D4:E5:F6')

To run the example:

sudo $(which node) demo.mjs

To run this without needing sudo access each time, you can give the current node binary permission to use Bluetooth at a low level (and this must be repeated if you change the node version, e.g. with nvm):

sudo setcap cap_net_raw+eip $(eval readlink -f $(which node))

...after which, you should be able to run using:

node demo.mjs