Options
All
  • Public
  • Public/Protected
  • All
Menu

ws-paper

Waveshare Paper

High-level javascript library and CLI for drawing on a Waveshare e-Paper using Raspberry PI GPIO.

Currently, only a single device support is implemented, EPD 7.5inch HD (B).

The source is inspired by original waveshare example code.

Library documentation is at https://ziacik.github.io/ws-paper/.

Prerequisites

Because the library uses SPI to write data to the device, SPI access need to be enabled on Raspberry.

To do that, run

sudo raspi-config

Then select Interface Options, and enable SPI.

Usage as a library

Install npm i ws-paper.

Import a specific implementation of Device, and a high-level class for drawing, Drawer.

Initialize the device, draw whatever you need to, and don't forget to finalize the device at the end, even in case of error.

Example:

import { Drawer, Paper75HDB } from "ws-paper";

const device = new Paper75HDB();
const drawer = new Drawer(device);

const svg = `<svg width="${device.width}" height="${device.height}"><text font-size="50" x="50%" y="20%" text-anchor="middle">Hello, world!</text></svg>`;

device.initialize();
drawer.drawSvg(svg).finally(() => device.finalize());

Usage as a CLI

Please note, the cli needs to be used as root because rpio needs access to /dev/mem which is not allowed for non-root users.

Install globally npm i -g ws-paper.

Run ws-paper --help to get list of available commands.

Example:

ws-paper draw "<svg viewBox='0 0 880 528'><text font-size='120' x='50%' y='50%' text-anchor='middle'>Hello, world</text></svg>"

The svg can be piped to the ws-paper from file or internet:

curl https://upload.wikimedia.org/wikipedia/commons/a/ad/24_petal_lotus_circle.svg | ws-paper draw

Generated using TypeDoc