Little application to drive Led matrix displays on your raspberry pi
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Martijn de Boer 26209e9fab Resolve security warnings 4 months ago
__tests__ Add cleanup to driver, for tests. Add forceExit flag for jest because it doesn't close otherwise. 11 months ago
controllers Add cleanup to driver, for tests. Add forceExit flag for jest because it doesn't close otherwise. 11 months ago
drivers Add cleanup to driver, for tests. Add forceExit flag for jest because it doesn't close otherwise. 11 months ago
www Remove unused snippets 1 year ago
.codeclimate.yml Configure codeclimate plugins 1 year ago
.eslintrc.json Add eslint-plugin-security and config 1 year ago
.gitignore Tests and Travis 1 year ago
.sidekickrc Add sidekick 1 year ago
.travis.yml Add eslint 1 year ago
CODE_OF_CONDUCT.md Add the code of conduct file 1 year ago
CONTRIBUTING.md docs:minor grammar changes 6 months ago
LICENSE.md First work in progress app 1 year ago
README.md docs:minor grammar changes 6 months ago
config.example.json Working implementation of drivers, and drawing application. Things light up! 1 year ago
package-lock.json Resolve security warnings 4 months ago
package.json Resolve security warnings 4 months ago
pixdisp.js Add preliminary support for writing sandboxed javascript for animation purposes. Renders a single frame now. 1 year ago

README.md

MIT Licence Known Vulnerabilities Maintainability Test Coverage Build Status

A small application to drive LED matrix displays, such as the Pimoroni Unicorn, from nodejs. My intention is to create a digital graffiti/guestbook system and a general animation system. This is a project for fun, so if you have a feature just request it! Or add it and I’ll review it. Social coding ftw.

Make sure you are on a recent nodejs version. Raspbian has an old version. Use Nodesource ;).

Also, use a decent modern browser. I wrote recent syntax, so probably works best in Chrome 62+. Firefox is known to have some issues, Edge works, Safari is a PITA. Just wait for your browser to play catch up then with recent standards. If you dislike Chrome, you can put this through Babel. But you’re on your own there.

Copy config.example.json to config.json and pick a driver + display size.

execute:

npm install
nodejs pixdisp.js

Navigate to http://localhost:8080/

Matrix driver & Unicorn Hat HD driver inspired by https://github.com/vesteraas/node-unicornhathd

JPEG encoding by https://github.com/eugeneware/jpeg-js

mjpeg-server by https://www.npmjs.com/package/mjpeg-server

Unit tests

This application has some unit tests, making use of Jest. Jest is configured as a dev dependency.

execute:

npm test

Some code linting practices and security tests can be executed by running the lint task:

npm run lint

Drawing

Device drawing

Simple clicking on the canvas in the responsive webinterface makes things light up; when you press submit it will get sent to the device.

Camera

Using your camera

The webinterface allows you to capture your camera and submit images from there.

Webinterface

Web interface

A simple web interface is included for drawing on the device. Defaults to port 8080.

Coding

Coding

Demo (Click for youtube)

With an advanced editor you can write simple animations in the browser using a secure sandboxed javascript. Documentation will follow here once the API is final.