Pure Elixir driver for e-paper displays over SPI. Built on circuits_spi and circuits_gpio. Works on Nerves or any Elixir target with SPI/GPIO access.

Features

  • Direct SPI/GPIO control of e-paper controller chips
  • Full and fast (no blink) refresh
  • Deep sleep and wake
  • EInk.Driver behaviour for adding new controller chips

Installation

def deps do
  [
    {:eink, "~> 0.1.0"}
  ]
end

Usage

{:ok, eink} =
  EInk.new(EInk.Driver.UC8276,
    spi_device: "spidev0.0",
    reset_pin: 17,
    busy_pin: 24,
    dc_pin: 25
  )

EInk.clear(eink, :white)
EInk.draw(eink, image_binary)

image_binary is a 1-bit-per-pixel binary, row-major, sized to the panel's width * height.

Supported chips

ChipResolutionPalettePartial refresh
UC8179800x600B/Wyes
UC8276400x300B/Wyes