Tips & Tricks

Temperature Dependence

The display refresh speed depends on the environmental temperature. Thus, if your room temperature is significantly different from ~22°C, grayscale accuracy might be affected when using the builtin waveform. This can be mitigated by using a different timing curve, but this would require calibrating the display timings at that temperature. If you did this for some temperature other than room temperature, please submit a pull request!

Deep Sleep Current

Board Revision V5 is optimized for running from a battery thanks to its low deep sleep current consumption. In order to achieve the lowest possible deep sleep current, call


before going to deep sleep. This will de-initialize the I2S peripheral used to drive the diplay and bring the pins used by epdiy to a low-power state. You should be able to achieve a deep-sleep current of less than 13µA. If your deep-sleep current is much higher, please check your attached peripherals. With some modules, you have to isolate GPIO 12 before going to deep sleep:


Adding a New Display

This section is work-in-progress.

  • Add display definitions in displays.c and epd_display.h.

  • Include waveform in bulitin_waveforms.c

  • Calibrate timing curve in scripts/

  • Add to the list of displays to build waveforms for in Makefile

  • Document