Blueprint

ESP32 E-Ink Display

A E-Ink display driver board that has an ESP32 and Battery Charging IC on board.

Created by Rudy Rudy 🚀

Tier 3

8 views

0 followers

Rudy Rudy 🚀 submitted ESP32 E-Ink Display for review ago

Rudy Rudy 🚀 requested changes for ESP32 E-Ink Display ago

user request

Rudy Rudy 🚀 submitted ESP32 E-Ink Display for review ago

Tanuki Tanuki ⚡🚀 requested changes for ESP32 E-Ink Display ago

Hey! Did you use CDN for the journal? If so, you might want to use the saver prefix nora talked about, because the journal does not have the images :pf: REALLLYYY polished project though!!! Please check out https://blueprint.hackclub.com/about/submission-guidelines, and ping me if you have any questions in #blueprint-drafts!

Rudy Rudy 🚀 submitted ESP32 E-Ink Display for review ago

Tanuki Tanuki ⚡🚀 requested changes for ESP32 E-Ink Display ago

Hey! Your readme images dont render for me, and I think more elaboration would be nice. Check https://blueprint.hackclub.com/about/submission-guidelines!

"YOUR README.md FILE CONTAINS THE FOLLOWING:
A short description of what your project is
A couple sentences on why you made the project
A couple sentences on how to use your project!

PICTURES OF YOUR PROJECT\
A screenshot of a full 3D model with your project
A screenshot of your PCB, if you have one
A wiring diagram, if you're doing any wiring that isn't on a PCB
A BOM in table format at the end of the README, with links"

Additionally, I cant find the E-Ink Display from Alibaba in the BOM.md (which should be .csv)

Rudy Rudy 🚀 submitted ESP32 E-Ink Display for review ago

koeg koeg 🚀 requested changes for ESP32 E-Ink Display ago

Hi! This is a really clean board! But you should check on C32, you chose a capacitor that is only rated for 10V, but it will be under 20-25V, you should choose a capacitor that is rated for these voltages

Everything else if fine!

Rudy Rudy 🚀 submitted ESP32 E-Ink Display for review ago

Shadow Shadow requested changes for ESP32 E-Ink Display ago

Hey! Cool Project but you need to have a BOM.csv file rather than the markdown file. Also you need to make a case to put everything together.

Rudy Rudy 🚀 submitted ESP32 E-Ink Display for review ago

Rudy Rudy 🚀 added to the journal ago

Journal

29/12/25

Saw this really cool thing on reddit a while ago and I knew right at that moment that I had to make one for myself.

image

It's basically just an E-Ink display with an ESP32 on the back; seems pretty simple to make at first glance; and so I started my journey.

I started off by just searching what main MCU I want to use and eventually ended up selecting the ESP32-C3 as it can be programmed over USB, has 4mb of internal flash, and is very power efficient. It had everything I needed!

Moving on to designing the actual schematics now. Espressif provides nice hardware design guidelines for the C3 chips so that's what I've referred to for this project.

image

This was my minimal schematic for the ESP32-C3 It's got some power filtering for the VDD3P3, and got an RF matching circuitry in which for now I've just used the recommended values for the matching circuitry provided in the guide (I will most likely change this later).

Now after setting up the minimal schematics I though I was actually cooked because I needed 4 free GPIO pins for SPI and I initially thought I could not use the JTAG pins as GPIO, so yeah I uh basically just gave up for 5 minutes and then realized that these pins can have an alternate function of GPIO so I was safe; I could actually assign SPI on those pins and drive the E-Ink display.

Oh and I also decided to add an external clock source for the RTC clock to decrease average power consumption. I figured that since I'm going to be putting the ESP32 in deep sleep most of the time, having an external crystal would be helpful.

For my power I decided to use a buck boost convertor because I'm actually planning to power this from a battery and would like for it be as efficient as it possibly can. I used the TPS63001 as the chosen convertor as it's high efficiency and tiny.

image

Time Spent: 2.5 Hours


30/12/25

I added circuitry for driving an E-ink display today. For this I mainly referred to a few different websites; some of which are adafruit, waveshare,alibaba page (for pinout and information about drivers).

In the end I ended up with the circuitry down below; looks pretty complex but all it really does is take 3.3v In and boosts it using the mosfet circuitry you see on the left side to power itself up.

image

final schematic

image

Moving on I assigned everything temporary footprints (I hate assigning footprints), went with 0402s components and moved onto the actual PCB design.

image

I started off with assigning some net classes and color coding them to get a better visual

image

I then drew a rectangle using the dimensions of the E-Ink display just to get a sense of scale and see how I should place everything. (I didn't make a board edge layer yet)

image

Started off with laying out the E-Ink circuitry as it was pretty easy

image

And then moved onto the ESP32 which was way harder

image

The ESP32 pinout is questionable I would say. The 40Mhz crystal is like pretty close to the LNA pin and fitting the decoupling capacitors close is really hard when they are in 0402 package; which is why I'm considering switching to 0201s. But that's a job for tomorrow as I was pretty tired at this point.

Here's how my final PCB look at the end of today

image

Time Spent: 3 Hours


10/01/26 and 11/01/26

FYI this journal entry is for what I've done yesterday and today.

I first started off by adding a LiPo charger IC on board, I did some research and ended up using the BQ24074R. To be honest I spent way to much time reading the datasheet to figure out how to configure this thing properly.

I wanted to set the current input limit to 500mA because I plan on powering it from USB 2.0 sources, so I connected my EN pins appropriately to set USB500 mode.

image

Other configurations were easy and pretty straightforward, I used the formula given by TI to set the fast charge current to 0.5A or 500mA.

image

But the ILIM pin is was confused me a lot, because in the datasheet it said to never leave it floating, where as since I'm in USB500 mode it shouldn't matter and that's what a design reference said.

image

image

So I spent a good 30 minutes trying to figure this out but in the end I gave up and just connected a resistor going to ground from ILIM anyways, I figured let's just be safe rather than sorry later.

image

After finishing up my schematics I moved onto the PCB layout.

image

image

Now routing was relatively straightforward for this board. The only place where I needed to put some effort was the LNA line, where I had to impedance match it to 50 Ohms. For this I referred to JLCPCB's Impedance calculator and found what trace width I would need with a specific board stackup.

I went with JLC04161H-3313 stackup as it doesn't require any extra charge and It has a reasonable trace width for a 50 Ohms microstrip.

image

I set up my a net class for the antenna traces to follow the required width and while routing out the antenna lines I decided to make use of the kicad RF-Tools plugin. I used it to round my tracks and also add fencing vias.
I had to do a bit of math to get the offset for fencing vias. To get the distance between the vias, I used the formula:

distance between vias = wavelength/8

I used Saturn PCB toolkit to calculate the wavelength based on the frequency and dielectric constant.

image

I set my via fence according to the calculations

image

Here's how the rest of my board looked when I finished routing

image

I decided to not use these square test pads and instead add footprint for Keystone's test points, which are cool little things which can basically plug into the hole and then you can attach a test probe onto them. No soldering or anything is required.

image
image

The PCB was finished at this point, all I needed to do was assign component values. And so I spent like the next 30 minutes copy pasting LCSC part numbers into KiCad.

image

I also made a few changes such as switching to a smaller footprint crystals, and getting a better inductor with minimal DCR. This caused a few footprints to change, so I quickly had to reroute a few things.

image

This was pretty much it for this project, after finishing the PCB I spent some time on LCSC making a cart and then setting up the repository for this project.

Time Spent: 7.5 Hours

Rudy Rudy 🚀 started ESP32 E-Ink Display ago

1/11/2026 - Journal

29/12/25

Saw this really cool thing on reddit a while ago and I knew right at that moment that I had to make one for myself.

image

It's basically just an E-Ink display with an ESP32 on the back; seems pretty simple to make at first glance; and so I started my journey.

I started off by just searching what main MCU I want to use and eventually ended up selecting the ESP32-C3 as it can be programmed over USB, has 4mb of internal flash, and is very power efficient. It had everything I needed!

Moving on to designing the actual schematics now. Espressif provides nice hardware design guidelines for the C3 chips so that's what I've referred to for this project.

image

This was my minimal schematic for the ESP32-C3 It's got some power filtering for the VDD3P3, and got an RF matching circuitry in which for now I've just used the recommended values for the matching circuitry provided in the guide (I will most likely change this later).

Now after setting up the minimal schematics I though I was actually cooked because I needed 4 free GPIO pins for SPI and I initially thought I could not use the JTAG pins as GPIO, so yeah I uh basically just gave up for 5 minutes and then realized that these pins can have an alternate function of GPIO so I was safe; I could actually assign SPI on those pins and drive the E-Ink display.

Oh and I also decided to add an external clock source for the RTC clock to decrease average power consumption. I figured that since I'm going to be putting the ESP32 in deep sleep most of the time, having an external crystal would be helpful.

For my power I decided to use a buck boost convertor because I'm actually planning to power this from a battery and would like for it be as efficient as it possibly can. I used the TPS63001 as the chosen convertor as it's high efficiency and tiny.

image

Time Spent: 2.5 Hours


30/12/25

I added circuitry for driving an E-ink display today. For this I mainly referred to a few different websites; some of which are adafruit, waveshare,alibaba page (for pinout and information about drivers).

In the end I ended up with the circuitry down below; looks pretty complex but all it really does is take 3.3v In and boosts it using the mosfet circuitry you see on the left side to power itself up.

image

final schematic

image

Moving on I assigned everything temporary footprints (I hate assigning footprints), went with 0402s components and moved onto the actual PCB design.

image

I started off with assigning some net classes and color coding them to get a better visual

image

I then drew a rectangle using the dimensions of the E-Ink display just to get a sense of scale and see how I should place everything. (I didn't make a board edge layer yet)

image

Started off with laying out the E-Ink circuitry as it was pretty easy

image

And then moved onto the ESP32 which was way harder

image

The ESP32 pinout is questionable I would say. The 40Mhz crystal is like pretty close to the LNA pin and fitting the decoupling capacitors close is really hard when they are in 0402 package; which is why I'm considering switching to 0201s. But that's a job for tomorrow as I was pretty tired at this point.

Here's how my final PCB look at the end of today

image

Time Spent: 3 Hours


10/01/26 and 11/01/26

FYI this journal entry is for what I've done yesterday and today.

I first started off by adding a LiPo charger IC on board, I did some research and ended up using the BQ24074R. To be honest I spent way to much time reading the datasheet to figure out how to configure this thing properly.

I wanted to set the current input limit to 500mA because I plan on powering it from USB 2.0 sources, so I connected my EN pins appropriately to set USB500 mode.

image

Other configurations were easy and pretty straightforward, I used the formula given by TI to set the fast charge current to 0.5A or 500mA.

image

But the ILIM pin is was confused me a lot, because in the datasheet it said to never leave it floating, where as since I'm in USB500 mode it shouldn't matter and that's what a design reference said.

image

image

So I spent a good 30 minutes trying to figure this out but in the end I gave up and just connected a resistor going to ground from ILIM anyways, I figured let's just be safe rather than sorry later.

image

After finishing up my schematics I moved onto the PCB layout.

image

image

Now routing was relatively straightforward for this board. The only place where I needed to put some effort was the LNA line, where I had to impedance match it to 50 Ohms. For this I referred to JLCPCB's Impedance calculator and found what trace width I would need with a specific board stackup.

I went with JLC04161H-3313 stackup as it doesn't require any extra charge and It has a reasonable trace width for a 50 Ohms microstrip.

image

I set up my a net class for the antenna traces to follow the required width and while routing out the antenna lines I decided to make use of the kicad RF-Tools plugin. I used it to round my tracks and also add fencing vias.
I had to do a bit of math to get the offset for fencing vias. To get the distance between the vias, I used the formula:

distance between vias = wavelength/8

I used Saturn PCB toolkit to calculate the wavelength based on the frequency and dielectric constant.

image

I set my via fence according to the calculations

image

Here's how the rest of my board looked when I finished routing

image

I decided to not use these square test pads and instead add footprint for Keystone's test points, which are cool little things which can basically plug into the hole and then you can attach a test probe onto them. No soldering or anything is required.

image
image

The PCB was finished at this point, all I needed to do was assign component values. And so I spent like the next 30 minutes copy pasting LCSC part numbers into KiCad.

image

I also made a few changes such as switching to a smaller footprint crystals, and getting a better inductor with minimal DCR. This caused a few footprints to change, so I quickly had to reroute a few things.

image

This was pretty much it for this project, after finishing the PCB I spent some time on LCSC making a cart and then setting up the repository for this project.

Time Spent: 7.5 Hours