GitPedia

Inky

A library for managing Inky e-ink displays from Elixir.

From pappersverk·Updated February 12, 2025·View on GitHub·

This is a port of Pimoroni's [python Inky library](https://github.com/pimoroni/inky) written in Elixir. This library is intended to support both Inky pHAT and wHAT, but since we only have pHATs, the wHAT support may not be fully functional. The project is written primarily in Elixir, distributed under the Apache License 2.0 license, first published in 2018. Key topics include: elixir, inky, nerves, pimoroni, scenic.

Inky

CircleCI
hex.pm

This is a port of Pimoroni's python Inky
library
written in Elixir. This library is
intended to support both Inky pHAT and wHAT, but since we only have pHATs, the
wHAT support may not be fully functional.

See the API reference for details
on how to use the functionality provided.

Host Development

An inky host development library
is underway for allowing host-side development, but until that is finished you
can not see results without using a physical device.

Scenic Driver

A basic driver for scenic
is in the works, check it out, to follow how it is progressing.

Getting started

Inky is available on Hex. Add inky to your mix.exs deps:

elixir
{:inky, "~> 1.0.1"},

Run mix deps.get to get the new dep.

Usage

A sample for Inky only, both host development and on-device is available as pappersverk/sample_inky.

A sample for using it with Scenic both for host development and on-device is available as pappersverk/sample_scenic_inky.

Brief example

In typical usage this would be inside a nerves project. If Inky is installed in
your application you can do the following to test it and your display (note the
config in init, adjust accordingly):

elixir
# Start your Inky process ... {:ok, pid} = Inky.start_link(:phat, :red, %{name: InkySample}) painter = fn x, y, w, h, _pixels_so_far -> wh = w / 2 hh = h / 2 case {x >= wh, y >= hh} do {true, true} -> :red {false, true} -> if(rem(x, 2) == 0, do: :black, else: :white) {true, false} -> :black {false, false} -> :white end end Inky.set_pixels(InkySample, painter, border: :white) # Flip a few pixels Inky.set_pixels(pid, %{{0,0}: :black, {3,49}: :red, {23, 4}: white})

Contributors

Showing top 5 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from pappersverk/inky via the GitHub API.Last fetched: 6/28/2026