https://github.com/ziacik/ws-paper
Waveshare e-Paper high level display library
https://github.com/ziacik/ws-paper
e-paper raspberry-pi waveshare
Last synced: 10 months ago
JSON representation
Waveshare e-Paper high level display library
- Host: GitHub
- URL: https://github.com/ziacik/ws-paper
- Owner: ziacik
- Created: 2021-06-20T10:10:01.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-03-06T04:29:51.000Z (almost 3 years ago)
- Last Synced: 2023-08-18T04:24:58.887Z (over 2 years ago)
- Topics: e-paper, raspberry-pi, waveshare
- Language: TypeScript
- Homepage: https://ziacik.github.io/ws-paper/
- Size: 461 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# 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](https://github.com/waveshare/e-Paper/blob/04d4621789dd6832222e1c7be8f04f93f51df331/RaspberryPi_JetsonNano/c/examples/EPD_7in5b_HD_test.c).
Library documentation is at [https://ziacik.github.io/ws-paper/](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:
```typescript
import { Drawer, Paper75HDB } from "ws-paper";
const device = new Paper75HDB();
const drawer = new Drawer(device);
const svg = `Hello, world!`;
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 "Hello, world"`
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`