/epaper-circuitpython

An ePaper display driver for use on CircuitPython running on microcontrollers with a demo that draws a fractal.

Primary LanguagePythonApache License 2.0Apache-2.0

e-Paper Display driver code for CircuitPython with a fractal demo

An e-Paper display library for CircuitPython, a MicroPython variant, with a demo that draws a Julia or Mandlebrot fractal on the display.

Photo of an m4 displaying a Julia fractal as tweeted

Hardware and Software Requirements

This code was written and tested on an Adafruit Metro M4 running CircuitPython 3.0. The e-Paper display code should work on anything capable of running CircuitPython. The fractal demo requires floating point; it'll be extremely slow if you get it running on an M0.

The e-Paper displays are the monochrome SPI varities from Waveshare. Six digital I/O pins are required.

Supported e-Paper Displays

  • The monochrome 2.7" Waveshare e-Paper display module (no hardware partial update support, ~6 seconds to update).
  • The monochrome 2.13" and 2.9" Waveshare e-Paper display modules (these have partial update support and take ~1-2 seconds to update).
  • The duochrome 2.13" color Waveshare e-Paper display modules (these take ~20 seconds to update; sorting microscopic pigmented balls is not a fast).

Based on my reading I suspect the interfaces for the above cover all of the SPI connected Waveshare display types but others have not yet been tested.

Connections

This library assumes the jumper on the displays remains in 8-bit mode with a dedicated data/command (DC) pin which is how the ones I purchased were shipped.

  1. Digital input for Busy.
  2. Digital output for Reset.
  3. Digital output for Chip Select.
  4. Digital output for SPI MOSI.
  5. Digital output for SPI CLK
  6. Digital output for Data / Command.

By default the epdif code uses the hardware SPI bus for SPI MOSI and SPI CLK.

Licenses

Apache 2.0 for top level code. The third_party/ tree contains code from other sources which carries its own licenses. In particular the Waveshare code has a MIT style license on it so the ported code retains that license.

Disclaimer

This is not an official Google product.