Project Nayuki

Pervasive Displays e-paper panel hardware driver


This project contains the following C++ code by Nayuki:

Source code repository at GitHub:

Usage pseudocode

#include <cstdint>
#include "EpaperDriver.hpp"

EpaperDriver epd(Size::EPD_2_71_INCH);
epd.panelOnPin = (...);
(... assign other pins ...)
epd.dischargePin = (...);

// Memory must be initialized to avoid undefined behavior when reading
uint8_t prevImage[264 / 8 * 176] = {};
epd.previousPixels = prevImage;

const uint8_t *image = (...);  // The image we want to draw
Status st = epd.changeImage(image);  // The main functionality
if (st != Status::OK)
    print(st);  // Diagnostic info

Software features

Supported features:

Unsupported features:

Included demo programs:

Hardware support

These combinations of hardware are tested to work:

Unsupported hardware: