epd-waveshare-async

Crates.ioepd-waveshare-async
lib.rsepd-waveshare-async
version0.2.0
created_at2025-06-05 10:00:38.062134+00
updated_at2025-08-12 21:35:08.08769+00
descriptionAsync drivers for Waveshare's e-paper displays.
homepage
repositoryhttps://github.com/MorganR/epd-waveshare-async
max_upload_size
id1701309
size145,053
Morgan Roff (MorganR)

documentation

README

epd-waveshare-async

build-status

Async drivers for Waveshare's e-paper displays.

This is inspired by both the existing (sync) epd-waveshare crate, and the e-Paper code published by Waveshare directly.

However, it diverges significantly in the public interface for the displays, with a focus on clarity, correctness, and flexibility.

Drivers

This library only supports a small set of screens for which I have confirmed all functionality. Drivers should all be tested on real displays using a sample program (see below). Each driver should go in its own module.

Samples

Sample code should exist for each display driver, to both demonstrate its use and to act as a test case that can be easily run. These live in the samples folder, with one subfolder per microcontroller. A sample just needs to be provided for at least one microcontroller per display driver.

Development

Set up

  1. Install Rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

We also use Husky to run formatters and linters on git push, which requires NPM. The suggested set up is the following:

  1. Install NVM: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
  2. Run nvm install to get a consistent version of node
  3. Run npm ci
  4. If needed, install rustfmt: rustup component add rustfmt. You can run cargo fmt to see if this is already installed.
Commit count: 0

cargo fmt