flipdisc
v0.0.17
Published
a javascript library for flipdot and flipdisc displays
Downloads
182
Maintainers
Readme
flipdisc
A javascript library for flip dot, flip disc, and flip digit displays.
Examples
- flip digit server draw elaborate visualizations on your flipdisc
- flipdot iOS app control your flipdisc from iOS
- depth camera
- flip digit canvas
Install
$ npm install flipdisc
Simple Usage
import { createDisplay } from 'flipdisc'
const device = '/dev/cu.usbserial-AB0OJSKG'
const display = createDisplay([[1], [2]], device)
display.send(frameData)
Advanced Usage
import { createDisplay, Panels } from 'flipdisc'
// layout as a 2D array of panel addresses
const layout = [[1, 3, 5], [2, 4, 6]]
// supports multiple RS485 devices
const dev = [{
path: '/dev/cu.usbserial-AB0OJSKG',
addresses: [1, 3, 5],
baudRate: 57600
}, {
path: '/dev/cu.usbserial-AB0ODKET',
addresses: [2, 4, 6],
baudRate: 57600
}]
// or network devices
const devices = [{
path: 'tcp://192.168.0.100:3000',
addresses: [1, 2, 3, 4, 5, 6],
}]
const opt = {
isMirrored: true,
rotation: 90,
panel: {
width: 28,
height: 7,
type: Panels.AlfaZetaPanel
}
}
// or flipdigit
const opt = {
panel: Panels.AlfaZetaSegmentPanel
}
const display = createDisplay(layout, dev, opt)
Methods
// send a single 2D array of frame data.
// (0 = not-flipped, 1 = flipped)
display.send(frameData)
// also accepts imageData buffer from a gl or canvas instance
display.sendSegmentData(verticalSegmentData, horizontalSegmentData)
// for segment displays: send array data for the vertical and/or horizontal aligned segments.
// get width
display.width
// get height
display.height
// get current display data
display.content
// set inverted
display.setInverted()
// get general display info
display.info
Requirements
- RS485 serial device. e.g. [USB to RS485] (https://a.co/d/7IHOosr) or [Ethernet to RS485] (https://a.co/d/1TIwvfq)
- A flipdisc panel. Currently AlfaZeta panels and Hanover panels supported. Reach out if you want me to support your panel.