ElixirConf 2023 - Jason Axelson - Drawing to 7-color e-ink screens with Scenic and Nerves

Learn how to draw vibrant 7-color images on e-ink displays using Scenic and Nerves, exploring the challenges and solutions for multi-color displays in this ElixirConf 2023 talk.

Key takeaways
  • E-ink displays are great for single-color displays, but can be challenging for multi-color displays.
  • Multiple-color displays use electro-phoretic particles that are controlled by electric fields.
  • The Inky Impression 7.3 inch display is an example of a multi-color e-ink display.
  • Nerves is a framework that allows you to create firmware for embedded devices, including e-ink displays.
  • Scenic is a library for creating user interfaces for embedded devices.
  • To use Scenic with Nerves, you need to create a custom config.txt file and a edited.dat file.
  • The config.txt file specifies the font and layout of the display, while the edited.dat file specifies the data to be displayed.
  • The Nerves framework uses the ScenicDriver to draw images to the display.
  • The ScenicDriver uses the microcapsule technology in the e-ink display to draw images.
  • To draw images, the ScenicDriver uses a frame buffer to store the pixels and then transfers the pixels to the e-ink display.
  • The frame buffer is important because it allows the ScenicDriver to draw images quickly and efficiently.
  • The pixel data is then read from the frame buffer and applied to the e-ink display, which is controlled by electric fields.
  • The display uses sub-pixel hinting to reduce the appearance of jagged edges.
  • The Nerves framework uses the fwup.conf file to specify how the firmware is built and loaded.
  • The fwup.conf file is used to specify the files that are used to build the firmware, including the edited.dat file and the custom config.txt file.
  • The edited.dat file contains the data to be displayed, while the config.txt file specifies the layout and font of the display.