Low power e-paper dashboard using ESP32

Similar projects worth following is a low power E-paper display with a wide array of possibilities. It can be a weather dashboard, To-do list, picture frame, basically anything that requires a display. It is developed completely using FOSS. Kicad for PCB design, Freecad for enclosure , Arduino for firmware and gimp for image processing.


  • ESP32 based low power e-paper display
  • WiFi and Bluetooth for connectivity
  • Under 75uA consumption in sleep mode
  • Onboard CP2104 USB-UART converter for programming
  • Micro SD Card slot for storing images, files, etc
  • Piezo buzzer for notifications and alerts
  • RGB LED for notifications and alerts
  • 2x Capacitive touch buttons for user input
  • Battery charger with a large 2000mAh battery
  • Extension header for interfacing and expanding capabilities

See it in action

  • Release v0.1

    Rohit Gujarathi02/08/2020 at 16:03 0 comments

    Software for this project is never ending. I find new enhancements and features that can be added almost everyday and I am sure you guys will come up with even more. This release contains a subset of basic features to call it a ‘smart clock’?

    Currently it shows the time, date, calendar, weather and to-do list. It fetches the time from a time server. The weather is fetched from weatherunderground and the to-do list from todoist. I have modified the wifimanager library for easy configuration of SSID, password, time zone, todoist and weatherunderground API keys. The configuration is saved to SPIFFS so it can persist across resets. The time is updated via partial refresh every minute and a full refresh every 5th minute to avoid ghosting. 

    The icons are from feathericons. The wifi symbol indicates if the device successfully connected to wifi when it had to update the weather and to-do list. This update interval is currently set to 6 hours.

    It is pretty low power at the moment.  Consumes under 75uA in deep-sleep mode and should run at least 30 days with update every minute. It will run much longer if updated once a day.

  • 3D printing an enclosure

    Rohit Gujarathi02/05/2020 at 02:23 0 comments

    I finally got around to making the 3D printed enclosure. If I may say so myself, it looks quite slick. I was going for a minimalist look with the thinnest bezels possible. It is completely designed using freecad and the files are available on github.

  • Building The GUI

    Rohit Gujarathi12/16/2019 at 10:16 0 comments

    Building the GUI was not difficult at all. I first designed it in gimp and then converted it to code. The GxEPD library has an easy to use interface for displaying text, images, and geometrical shapes. The font I used is the GoBold , and the weather icons are feather icons

    Adding the functionality was the difficult part. The plan is to use the weatherunderground API for weather, todoist for TO-DO list and a network time server for syncing time. All these details will be updated every six hours. The esp32 is in deep sleep for most of the time. It wakes up changes the time with a partial refresh and sleeps. Every 5 mins it does a full refresh to avoid ghosting.

    Full Image

  • Hardware

    Rohit Gujarathi12/16/2019 at 10:12 0 comments

    I always wanted a display on my office desk which showed time, tasks, calendar, etc and all I could find were devices with LCD displays. Their design did not appeal to me so I decided to make one myself with an e-paper display. The e-paper displays from good-display are very aesthetically pleasing if designed well and don’t need any power to display an image, which means the controller can update and go to sleep.

    The design of is very simple. It uses the esp32 as the main controller with wifi and bluetooth functionality, SD-card slot, GPIO expander (PCF8574), piezo buzzer, RGB LED and 2 capacitive touch buttons. And to program it I have added a CP2104 USB-UART chip which is powered through a solder bridge, so i can cut the trace for lower power consumption when required. The board does not have any sensors but can be added through the GPIO expander.

    The front panel contains the RGB LED and the two touch buttons. They are connected using a flat flex cable to the top side of the PCB. It wraps around the e-paper.

View all 4 project logs

Enjoy this project?



malkovich wrote 09/07/2020 at 14:28 point

Your post has been so helpful because it was clear and concise writing made it easy to understand. Thank you!

  Are you sure? yes | no

peter jansen wrote 02/14/2020 at 04:51 point

This is a great project!  I've been looking for something like this for 6 months.  Any idea when you'll be manufacturing them?

  Are you sure? yes | no

Rohit Gujarathi wrote 02/14/2020 at 05:38 point

Hi Peter,

Thank you for your interest. The manufacturing timeline and decision depends on the kind of response we get. So at the moment we cannot provide an exact date.

  Are you sure? yes | no

ostropest wrote 12/28/2019 at 22:24 point

very nice, but problematic power.

is possible add wifi and solar panel? offgrid or

many people (i too) searching a ssh+terminal+linux=offgrid machine

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates