blitface

0.1.1 • Public • Published

Blitface

Note, this is experimental software, requiring final testing & docs before release and production usage.

Blitface is a unified, configurable interface for LED and light control. It is designed to be an adapter between various inputs and outputs and javascript. The following protocols are supported:

Examples

Javascript

const Blitface = require('blitface')

let config = {
  output: {
    // Fake output to 40 columns of terminal.
    terminal: {
      length: 120
    }
  },
  input: {
    // Fake input, starting 9 addresses in,
    // representing 3 RGB pixels.
    rainbow: {
      offset: 3,
      length: 111 
    }
  },
}

let root = new Blitface( config )

root.open()
.then( function () {
  // Blit Red, Green and Blue to first 3 pixels of output. 
  root.blit('ff0000 00ff00 0000ff')
})

Command Line

# Install module globally
npm install -g blitface

# Load configuration file
blitface config.yaml

# Configuration straight from command line
blitface --input.rainbow true --output.fadecandy.path ../fadecandy

Configuration

Common

input:
  foo:
    name: foo
    type: rainbow
    offset: 0
    length: 0

output:
  bar:
    name:  

Art-Net

  • Lengths longer than universeSize are sent to incrementing universes.
  • Tested with MadMapper 3.6.2. universeSize should be set to 510 in most cases.
input:
  artnet:
    port: 6454
    universe: 0
    physical: 0
    universeSize: 512

  
output:
  artnet:
    host: localhost
    length: 512
    universe: 0
    physical: 0    
    port: 6454
    universeSize: 512

Fade Candy

output:
  fadecandy:
    # Required! Path to root directory of fadecandy install
    path: ''

    # Useful server config 
    pinsPerDevice: 8
    pixelsPerPin: 64
    interpolate: false
    dither: false
    order: 'rgb'

    #
    # Everything below is pretty pedantic
    #
    binary: fcserver-osx
    searchPath: ['.','bin']
    keepOpen: true
    retry: 500
    
    # Log server output to console
    verbose: true
    # Set host to 0.0.0.0 to allow outside use.
    public: false
    host: localhost
    port: 7980
    led: true
    tmp: /tmp
    file: ''
    keepFile: false

OPC

  • OPC output may be used when a Fade Candy server is created elsewhere.
  • OPC input server only accepts raw OPC pixel data. It does not emulate a real Fade Candy server instance, and as such is incompatible with many OPC implementations.

Pixel Pusher

output:
  pixelpusher:

    strips: 8
    pixels: 60
    controllers:
      - d8:80:xx:xx:xx:xx
      - 1

Terminal

terminal outputs RGB data straight to the console. Useful for debugging.

  • For best results with iTerm2, turn down 'Minimum contrast' in Preferences / Profiles / Colors.
output:
  terminal:
    # Width of display. Defaults to console width on startup.
    width: 0 
    char: ""
    channels: 3

Similar Projects

  • Open Lighting Architecture is a very powerful, mature project.
  • PixelNode seems to be a similar project, with a variety of interfaces and features such as filters. It is still under development.

Acknowledgements

Development of this module is supported by HFour Studio.

Pixel Pusher code adapted from heroic-pixel-pusher by ajones.

Readme

Keywords

none

Package Sidebar

Install

npm i blitface

Weekly Downloads

1

Version

0.1.1

License

ISC

Unpacked Size

83.2 kB

Total Files

52

Last publish

Collaborators

  • koopero