Skip to content

sombriks/node-libgpiod

Repository files navigation

Native nodejs bindings for libgpiod

npm Build status MIT
downloads Sponsor

Quickstart

You need, to get started:

  • An SBC running a modern linux
  • Node.js (version 12 or newer) installed with devel headers
  • Linux libgpiod (version 1.5 or 1.6) installed with devel headers
  • C++ and Python tooling installed

Installing requirements

Install the dependencies on your system:

Fedora

sudo dnf install @development-tools g++ \
 libgpiod libgpiod-devel libgpiod-utils \
 nodejs nodejs-devel

OpenSUSE

sudo zypper in -t pattern devel_basis
sudo zypper in libgpiod libgpiod-devel libgpiod-utils
sudo zypper in nodejs-default nodejs-devel-default

Debian

sudo apt install build-essential gpiod libgpiod2 \
 libgpiod-dev libnode-dev nodejs npm

Install the npm dependency

Now, in your npm project, install the library:

npm i node-libgpiod

The native part will be compiled during the installation.

Blink a led

Do the hello world:

// blink.js
import gpio from 'node-libgpiod'

const chip = new gpio.Chip(0)
const led = chip.getLine(20)

led.requestOutputMode()

let count = 5

const interval = setInterval(() => {
  if(count > 0) {
    const v = count-- % 2
    led.setValue(v)
    console.log(`blink ${v}!`)
  } else {
  led.setValue(0)
    led.release() 
    clearInterval(interval)
  } 
}, 1000)

Further steps

Check out or complete documentation.