Blueprint

E-Ink Info Display

I’m building a compact e-ink dashboard using a 2.66" Waveshare E-Paper display and an ESP32 microcontroller. The dashboard shows: The current time and date Local weather (temperature, conditions) via the OpenWeatherMap API Upcoming events from my Google/Apple calendar Optional extra info like a daily quote or fun fact The goal is to create a low-power, always-on display that consolidates important information at a glance.

Created by Ethan Ethan

Tier 3

36 views

0 followers

Timeline

CAN CAN ⚡🚀 approved E-Ink Info Display ago

Tickets awarded: 440 tickets

Tier: 3

CAN CAN ⚡🚀 submitted E-Ink Info Display for review ago

Ethan Ethan submitted E-Ink Info Display for review ago

technical_. technical_. requested changes for E-Ink Info Display ago

Please make sure to have wiring diagrams/CADs in your Github repo. Also make sure that you have a read.me that contains a short description of your project, as well as a picture of the final render/built project.

Ethan Ethan submitted E-Ink Info Display for review ago

Iamalive Iamalive 🚀 requested changes for E-Ink Info Display ago

Same problem as before - you're requesting $0 and but have an amazon cart screenshot? Are you saying that you built this project by yourself and want tickets or want money for the parts that you already bought?

Ethan Ethan submitted E-Ink Info Display for review ago

technical_. technical_. requested changes for E-Ink Info Display ago

You requested zero dollars, but put a cart screenshot?

Ethan Ethan submitted E-Ink Info Display for review ago

Ethan Ethan added to the journal ago

Got it!

I've finally figured out the code, and a working version is now available on GitHub.
took a while but I've finished!!! Yay, so happy this took too long. I don't like WaveShare anymore.

Screenshot 2025-11-19 1.41.39 PM

Ethan Ethan added to the journal ago

BRUH

This took me 10 hours, the data just wont display correctly i have no idea whats wring but its kinds driving me crazy.
the main issue is that the frame of the system wants to be one size but the way it displays things makes the margin size collect at the top and if you don't include margins than it auto displays in portrait mode.

image

Ethan Ethan added to the journal ago

Phase 1 Done

After some issues with the sizeing of the screen while displaying lost of information Ive figured it out:
the disply now has the correct bounds and looks ok working on live data now
386C69CC-789C-4FC5-A316-473CE09D2DFA_1_105_c
Ive olso continued to troubleshoot and get things working but the esp just decides sometimes that the screen needs to be filled with random lines instead of what i want

Ethan Ethan added to the journal ago

Real Time Data

The next step in this project is to display real-time data on the dashboard. I plan on using free open source information as well as my own live air quality system.(https://blueprint.hackclub.com/projects/611)

Screenshot 2025-11-12 8.28.44 AM

Ethan Ethan added to the journal ago

I figured it out

Ive managed to get a stable image onto the display its not great but it works seeps a bit squished however.
I will continue to develop and make better.

IMG_0280

Ethan Ethan added to the journal ago

Caseing

Working on the Case/stand and calculating the right angle for the system to be at.
This version will use some pins to keep the back cover of the stand on and has mounts for the display and esp. I ran into an issue with the ESP because it has pins, and I don't want to do a ton of soldering. The case has to fit the pins as well, 11mm

Screenshot 2025-11-10 11.55.05 AM

Ethan Ethan added to the journal ago

Still Troubleshooting

Over the weekend, I went over ALL the documentation on Waveshare's website with little progress. I've also tried using the Examples in the provided library

On Saturday, I spent 6 Hours, andon Sunday, I had 4 Hours

Screenshot 2025-11-10 11.33.18 AM

Ethan Ethan added to the journal ago

Progress?

Ive spent many hours today between classes and after school trying to get just some simple text displayed on the screen and this is what i have so far:

0F5BA566-D2B9-4462-B682-6B1B059E08F2_1_105_c

Ethan Ethan added to the journal ago

Testing

Testing not going well

A39807F9-C044-412D-82BE-DEA5CA239CF5_1_102_o
E9C6F83E-0571-4EC4-A870-2EA976B0E229

Ethan Ethan added to the journal ago

Parts Received testing Has Begun

Ive received the parts and so far have wired them all together;


EPaper Pin | ESP32 Pin
-- | --
VCC | 3V3
GND | GND
DIN | GPIO23
CLK | GPIO18
CS | GPIO5
DC | GPIO17
RST | GPIO16
BUSY | GPIO4

I've also begin testing with code ect

image

Ethan Ethan added to the journal ago

Setbacks

The parts came today, finally. The ESP board works great; however, the display has a software bug. I've found another display, 3.7 Inch E-Paper Display Module (G), E-Ink Screen 416×240, Red/Yellow/Black/White, SPI Interface, Low Power, for Raspberry Pi, Arduino, Jetson Nano, 40PIN GPIO Compatible. This option should be cheaper without sacrificing too much quality or size, and more importantly, it's on sale at a great deal.

image

Ethan Ethan added to the journal ago

On The Way

Screenshot 2025-10-21 3.30.25 PM.png

Screenshot 2025-10-21 3.30.42 PM.png

They are on the way home they come soon
i tried to find the best combo possible for under $30 with shipping and tax so that this is a very doable project

Ethan Ethan added to the journal ago

THE PARTS

found some parts that will work together for $25 total from 2 websites to get the best deals and the best components

Type-C ESP32 ESP-WROOM-32
E-INK Display

image.png

Ethan Ethan added to the journal ago

LAYOUT

1. Color Usage Ideas

Element | Suggested Color | Reason / Notes -- | -- | -- Time & Date | Black | Always readable, primary info Weather | Black / Red | Red for extreme conditions (hot/cold alerts), black for normal Calendar Events | Black / Red | Red for urgent events, black for normal Optional Quote | Yellow | Adds highlight / attention without overpowering Icons / separators | Yellow / Red | Can highlight weather type (sun, cloud, alert)

Note: E-paper tri-color displays usually use Black + Red/Yellow + White (background). You can only set one “non-black” color per pixel, so plan carefully.

+------------------------------------------------+
| TIME (Black) |
| HH:MM |
| Day, Date |
+------------------------------------------------+
| WEATHER |
| [Weather Icon: Black/Sun, Red/Alert] Temp°C |
| Condition |
+------------------------------------------------+
| CALENDAR EVENTS |
| Event 1 (Black) |
| Event 2 (Red if urgent) |
| Event 3 |
+------------------------------------------------+
| OPTIONAL QUOTE (Yellow) |
| "Have a great day!" |
+------------------------------------------------+

  1. Suggested Color Strategy for Dashboard

Time / Date: Black

Weather Temp: Black

Weather Alerts: Red (if temp > 30°C or < 0°C, etc.)

Upcoming Calendar Events: Red if urgent (like “Meeting in 1 hr”), Black otherwise

Fun Fact / Quote: Yellow

Optional Icons / Borders: Yellow highlights for separation

render(1).png

Ethan Ethan added to the journal ago

Wireing

`
E-Paper Pin | ESP32 Pin | Notes
-- | -- | --
VCC | 3.3V | Power
GND | GND | Ground
DIN (MOSI) | GPIO 23 | SPI MOSI
CLK (SCK) | GPIO 18 | SPI Clock
CS | GPIO 5 | Chip Select
DC | GPIO 17 | Data/Command
RST | GPIO 16 | Reset
BUSY | GPIO 4 | Busy/ready

`

  1. Required Arduino Libraries

Install these via Library Manager:

GxEPD2 → For e-paper display

WiFi → ESP32 Wi-Fi

HTTPClient → Fetch API data

ArduinoJson → Parse JSON from weather & calendar APIs

NTPClient → Get network time

Screenshot 2025-10-21 11.26.38 AM.png

Ethan Ethan added to the journal ago

THE PLAN

Today I spent time researching the components and setup for my Personal E-Ink Dashboard project. I finalized the hardware:

  • ESP32-WROOM-32 Development Board – handles Wi-Fi, time synchronization, and API requests.

  • Waveshare 2.66" E-Paper Module B – SPI e-paper display that shows text and basic graphics, perfect for a low-power always-on dashboard.

I reviewed the libraries and software I’ll need:

  • GxEPD2 for controlling the e-paper display

  • WiFi.h and HTTPClient.h for internet connectivity and API requests

  • ArduinoJson for parsing JSON from the weather and calendar APIs

  • NTPClient for keeping the clock accurate

I also researched data sources:

  • Weather: OpenWeatherMap API (free tier)

  • Calendar: Google Calendar or Apple iCloud public ICS feed

  • Optional extras: daily quotes or fun facts


Planned Wiring / Schematic

Here’s the intended wiring for connecting the ESP32 to the 2.66" e-paper display:

E-Paper Pin | ESP32 Pin | Notes -- | -- | -- VCC | 3.3V | Power GND | GND | Ground DIN (MOSI) | GPIO 23 | SPI MOSI CLK (SCK) | GPIO 18 | SPI Clock CS | GPIO 5 | Chip Select DC | GPIO 17 | Data/Command RST | GPIO 16 | Reset BUSY | GPIO 4 | Busy/Ready Signal
     +------------------+
     |   ESP32          |
     |                  |
     | 23(MOSI) --------> DIN
     | 18(SCK)  --------> CLK
     | 5(CS)    --------> CS
     | 17(DC)   --------> DC
     | 16(RST)  --------> RST
     | 4(BUSY)  --------> BUSY
     | 3.3V     --------> VCC
     | GND      --------> GND
     +------------------+
              |
              v
       2.66" E-Paper Display

SPI communication allows fast updates of the e-paper screen.

I will start by displaying just the time to verify wiring and libraries work before integrating weather and calendar APIs.

The ESP32 will enter deep sleep between updates to save power.

Next Steps:

Assemble the hardware and verify the wiring

Write test code to display text and graphics on the e-paper display

Connect to Wi-Fi and fetch the current time

Plan the layout for time, weather, and calendar events on the 2.66" screen

image.png

Ethan Ethan started E-Ink Info Display ago