Pilot your rgb led matrix with Nodejs ! Nodejs binding of rpi-rgb-led-matrix library https://github.com/hzeller/rpi-rgb-led-matrix
C++ JavaScript Python
Latest commit 2c35fcf Sep 18, 2016 @zeitungen committed on GitHub Merge pull request #10 from hzeller/fix-logical-and-compile-errors
Fix a couple of compile errors and logical problems.
Permalink
Failed to load latest commit information.
external Update package.json and git submodule Feb 7, 2016
include
src o ledmatrix.cc: include unistd.h to be able to use usleep(). Sep 18, 2016
.gitignore add submodule rgb ledmatrix lib Oct 26, 2015
.gitmodules add submodule rgb ledmatrix lib Oct 26, 2015
LICENSE
README.md Update README.md Jan 30, 2016
binding.gyp o ledmatrix.cc: include unistd.h to be able to use usleep(). Sep 18, 2016
index.js add scroll feature Mar 28, 2016
package.json Update package.json and git submodule Feb 7, 2016

README.md

node-rpi-rgb-led-matrix

Pilot your rgb led matrix with Nodejs on Raspberry Pi ! Nodejs binding of rpi-rgb-led-matrix library https://github.com/hzeller/rpi-rgb-led-matrix

Compatibility

NOTE: node-rpi-rgb-led-matrix should work across Node.js versions 0.8, 0.10, 0.12, 4 and 5 as it uses Native Abstractions. HOWEVER there is a problem with the Node.js version 0.10.29 packaged with Raspbian Jessie 2015-11-21 which breaks Native Abstractions. The easiest fix is to make a minor edit to your v8.js file; this and other solutions outlined on this Raspberry Pi Forum post.

Installation with npm

$ npm i node-rpi-rgb-led-matrix

Installation with git

$ git clone --recursive https://github.com/zeitungen/node-rpi-rgb-led-matrix.git
$ cd node-rpi-rgb-led-matrix
$ npm i

Get some Fun

var LedMatrix = require("node-rpi-rgb-led-matrix");

var matrix = new LedMatrix(16);
matrix.fill(255, 50, 100);
matrix.setPixel(0, 0, 0, 50, 255);

LedMatrix API

  • Constructor: LedMatrix(rows, chainedDisplays, parallelDisplays) default values are rows=32, chainedDisplays=1, parallelDisplay=1
  • getWidth() return current led matrix width
  • getHeight() return current led matrix height
  • fill(red, green, blue) fill the led matrix with color specified by red, green and blue. red, green and blue must be between 0 and 255
  • setPixel(x, y, red, green, blue) set the color pixel at the position x,y with color specified by red, green and blue. red, green and blue must be between 0 and 255. x must be between 0 and getWidth(). y must be between 0and getGeight()
  • clear() reset the led matrix display (shut down all leds)

Add specific defines for rpi-rgb-led-matrix

You can add specific defines for the rpi-rgb-led-matrix compilation.

You have to modify the binding.gyp file. In the rpi-rgb-led-matrix target add definesarray like this:

...
  {
            "target_name": "rpi-rgb-led-matrix",
            "type": "static_library",
            "sources": ["external/matrix/lib/bdf-font.cc",
                "external/matrix/lib/framebuffer.cc", "external/matrix/lib/gpio.cc",
                "external/matrix/lib/graphics.cc", "external/matrix/lib/led-matrix.cc",
                "external/matrix/lib/thread.cc"],
            "libraries": ["-lrt", "-lm", "-lpthread"],

            "defines": ["RGB_CLASSIC_PINOUT", "ONLY_SINGLE_CHAIN"],

            "include_dirs": [ "external/matrix/include" ],
            "direct_dependent_settings": {
                "include_dirs": [ "external/matrix/include" ]
            }
        }
...

You have this defines possibility:

  • INVERSE_RGB_DISPLAY_COLORS
  • SHOW_REFRESH_RATE
  • RGB_SLOWDOWN_GPIO=1 or RGB_SLOWDOWN_GPIO=2
  • ADAFRUIT_RGBMATRIX_HAT
  • ADAFRUIT_RGBMATRIX_HAT_PWM
  • RGB_CLASSIC_PINOUT
  • ONLY_SINGLE_CHAIN

Look at rpi-rgb-led-matrix Makefile for more details of this defines.

Don't forget to recompile:

$ cd /path/to/node-rpi-rgb-led-matrix
$ node-gyp build

or run npm i.