Skip to the content
PCBKitNew board
2 layers69.4 × 113 mmEpaper reader hw, the printed circuit board in 3D

An open-source e-paper reader

Size
69.4 × 113 mm
Copper layers
2
Thickness
1.2 mm
Parts
126
Nets
99
Pads
414
Tracks, vias
708, 99
Pours
7
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
23 May 2026
Updated
5 Nov 2026

Overview

Epaper reader hw is an open-source printed circuit board by mathias4833, from the mathias4833/epaper-reader-hw repository on GitHub, published under the CERN-OHL-W-2.0 licence. It is a 2-layer board of 69.4 × 113 mm with 126 parts on 99 nets, routed with 708 tracks and 99 vias.

It is built around the ESP32-C6-WROOM-1-N8, DM3AT-SF-PEJM5 and BQ24074RGTR, with the MAX17048G+T10, TPS63031DSK and MBR0530 among its other parts. Its parts include 41 resistors, 31 capacitors, 8 switches, 7 ICs and 6 diodes. It belongs with the lEDs and displays boards and the ESP32 and RISC-V boards of this library.

Main components

12

README

README.md

E-Paper Reader

A small battery-powered e-paper reader built around a custom PCB.

The reader displaying The Time Machine, held in one hand The assembled reader showing CrossPoint Reader settings

Quick demo of the UI and double-tap page turning:

https://github.com/user-attachments/assets/651f01a9-5495-4bea-b6eb-84c9eb2a8fab

The Xteink X4 was the starting point for this project. I liked the idea of a small reader with physical buttons, but wanted to design the electronics myself.

The board uses an ESP32-C6 and runs my fork of CrossPoint Reader.

This is very much a V1. It works, but I already have several changes planned for V2.

PCB

The schematic and PCB were designed in KiCad.

Assembled PCB with battery, next to the enclosure back cover

FrontBack
PCB render of the display sidePCB render of the component side

Specifications

MCUESP32-C6-WROOM-1-N8
Memory8 MB flash, 512 KB SRAM
Display4.26" Good Display GDEQ0426T82, 800 x 480
StoragemicroSD
Battery600 mAh Li-Po
USB-COf course :)
Charging controllerBQ24074
Voltage regulatorTPS63031 3.3 V buck-boost
Battery gaugeMAX17048
Controls6 physical side buttons
AccelerometerLIS3DHTR, 3-axis
PCB2 layers, 1.2 mm
DimensionsApprox. 116 x 72 x 7.5 mm, including enclosure

Hardware

Power comes from a single-cell Li-ion battery. A BQ24074 handles charging and powers the reader from USB when plugged in. A TPS63031 generates the 3.3 V rail, and a MAX17048 keeps track of the battery level.

The display and microSD card share the SPI bus and are both on switchable power rails. The fuel gauge and accelerometer stay powered, since their idle current is low enough that there wasn't much to gain from switching them off (3uA and 0.5uA).

Schematic

Complete KiCad schematic

Cost

In a batch of five, the parts and fabrication comes to roughly 60€ per reader.

PartApprox. cost per reader
PCB components20€
PCB fabrication and assembly~15€
4.26" e-paper display~17-19€
600 mAh battery~8€
3D-printed enclosure~0.50€
Total~60€

This is a rough estimate. Shipping and imports duties aren't included as they vary a lot depending on where you live, and you'll also need a microSD card and a soldering iron to attach the battery.

Design decisions

Layout

I wanted the reader to stay thin, so using through-hole parts was never really an option. I also wanted to avoid paying for assembly on both sides of the PCB (it's super expensive!), which meant keeping all components on the back. The buttons are thus on the sides. I used TPU for the button pieces in the enclosure, which makes them much nicer to press than rigid printed buttons.

I originally wanted the final assembly to be completely solderless. I looked for a low-profile battery connector on LCSC but couldn't find anything slim enough. Looking back, there were probably a few decent options I missed, but hey, it's the first version. In the end, I added two large solder pads and called it a day. The battery wires pass through two small metal loops first in order to provide strain relief before reaching the pads.

ESP32-C6

Obviously my first choice was the ESP32-C3. It is what the Xteink X4 uses, and its power consumption is very good.

The problem was flash. Recent CrossPoint builds are a little over 6 MB, and the Xteink's 16 MB flash is split into two 6.25 MB application partitions so that OTA updates can keep both the old and new firmware around. That wasn't going to work with the C3 modules I could find, which were limited to 4MB flash.

The ESP32-S3 would have solved that, but it also consumes more power than I wanted for an ereader that spends most of its life asleep.

I eventually found an ESP32-C6 module with 8 MB of flash. That's enough for CrossPoint, but not enough to keep two copies of the firmware around, so OTA updates had to go. USB flashing is good enough for me anyway.

Power gating

I was using a cheap microSD card and didn't know how much current it would draw while idle. Since standby power matters a lot I didn't want to rely on the SD card behaving well.

So I added a switchable power rail for peripherals that don't need to stay on. When the reader goes to sleep, the firmware can cut their power completely instead of depending on their own low-power modes.

Parts

126
QtyValueFootprintReferences
17TestPointTestPoint:TestPoint_Pad_D1.0mmTP1, TP2, TP4, TP5, TP6, TP7, TP8, TP10, TP12, TP13, TP14, TP15, TP16, TP17, TP18, TP20 +1
1610kResistor_SMD:R_0603_1608MetricR3, R14, R17, R18, R20, R21, R22, R23, R24, R26, R27, R29, R32, R33, R34, R38
74.7uF/25VCapacitor_SMD:C_0603_1608MetricC2, C3, C4, C5, C9, C10, C11
5100kResistor_SMD:R_0603_1608MetricR15, R28, R30, R42, R43
510uFCapacitor_SMD:C_0603_1608MetricC15, C17, C18, C25, C31
30RResistor_SMD:R_1210_3225MetricR25, R31, R35
3100nFCapacitor_SMD:C_0603_1608MetricC24, C29, C30
31MResistor_SMD:R_0603_1608MetricR1, R9, R16
3FiducialFiducial:Fiducial_1mm_Mask2mmFID1, FID2, FID3
3MBR0530Diode_SMD:D_SOD-123D1, D2, D3
3R0Resistor_SMD:R_1210_3225MetricR39, R40, R41
20.1uFCapacitor_SMD:C_0603_1608MetricC16, C20
210nFCapacitor_SMD:C_0603_1608MetricC26, C27
21nFCapacitor_SMD:C_0603_1608MetricC23, C28
21uF/50VCapacitor_SMD:C_0603_1608MetricC6, C7
222RResistor_SMD:R_0603_1608MetricR7, R8
23.3kResistor_SMD:R_0603_1608MetricR4, R19
24.7uFCapacitor_SMD:C_0603_1608MetricC21, C22
25.1k(1%)Resistor_SMD:R_0603_1608MetricR5, R6
11.5uHepaper-reader-hw:SPM3020-1R5MAL3
1100nF/50V(10%)Capacitor_SMD:C_0603_1608MetricC13
110uF/25V(20%)Capacitor_SMD:C_0603_1608MetricC8
11N4148WDiode_SMD:D_SOD-123D5
11uFCapacitor_SMD:C_0603_1608MetricC19
11uF/16V(10%)Capacitor_SMD:C_0603_1608MetricC1
11uF/25VCapacitor_SMD:C_0603_1608MetricC12
1200kResistor_SMD:R_0603_1608MetricR12
12N7002Package_TO_SOT_SMD:SOT-23Q2
12R2Resistor_SMD:R_0603_1608MetricR2
13.6kResistor_SMD:R_0603_1608MetricR10
13kResistor_SMD:R_0603_1608MetricR11
14.7nFCapacitor_SMD:C_0603_1608MetricC14
147kResistor_SMD:R_0603_1608MetricR13
1BAT+TestPoint:TestPoint_Pad_4.0x4.0mmTP3
1BAT-TestPoint:TestPoint_Pad_4.0x4.0mmTP11
1BQ24074RGTRepaper-reader-hw:BQ24074RGTRU3
1Battery_50x34x3mmepaper-reader-virtual:Battery_50x34x3mmBMECH1
1DM3AT-SF-PEJM5epaper-reader-hw:DM3AT-SF-PEJM5Card1
1EInk_Display_105p33x62p37x0p926mmepaper-reader-virtual:EInk_Display_105p33x62p37x0p926mmDMECH1
1ESP32-C6-WROOM-1epaper-reader-hw:ESP32-C6-WROOM-1U1
1FPC-05FB-24PH20epaper-reader-hw:FPC-05FB-24PH20FPC1
1LIS3DHTR_C15134epaper-reader-hw:LIS3DHTR_C15134U7
1MAX17048G_T10epaper-reader-hw:MAX17048G_T10U5
1SN74LVC1G74DCUR_C70285epaper-reader-hw:SN74LVC1G74DCUR_C70285U9
1STRAIN_RELIEF_RING1epaper-reader-hw:RH-5015SR1
1STRAIN_RELIEF_RING2epaper-reader-hw:RH-5015SR2
1SW_BOOTepaper-reader-hw:TS-1187A-B-A-BSW2
1SW_LEFT1epaper-reader-hw:TSB001A3526BSW4
1SW_LEFT2epaper-reader-hw:TSB001A3526BSW5
1SW_LEFT3epaper-reader-hw:TSB001A3526BSW6
1SW_POWERepaper-reader-hw:TSB001A3526BSW3
1SW_RESETepaper-reader-hw:TS-1187A-B-A-BSW1
1SW_RIGHT1epaper-reader-hw:TSB001A3526BSW8
1SW_RIGHT2epaper-reader-hw:TSB001A3526BSW9
1Si1308EDLPackage_TO_SOT_SMD:SOT-323_SC-70Q1
1TPD4E05U06QDQARQ1epaper-reader-hw:TPD4E05U06QDQARQ1D6
1TPD6E004RSERepaper-reader-hw:TPD6E004RSERD8
1TPS22918DBVRepaper-reader-hw:TPS22918DBVRU8
1TPS63031DSKPackage_SON:WSON-10-1EP_2.5x2.5mm_P0.5mm_EP1.2x2mmU4
1TYPE-C-31-M-12epaper-reader-hw:TYPE-C-31-M-12USBC1
1XRNR5020-47UH_Mepaper-reader-hw:XRNR5020-47UH_ML1

Questions

How big is the Epaper reader hw PCB?

It measures 69.4 × 113 mm and has 2 copper layers, 1.2 mm thick.

What parts does the Epaper reader hw use?

126 parts, built around the ESP32-C6-WROOM-1-N8, DM3AT-SF-PEJM5, BQ24074RGTR and MAX17048G+T10. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Epaper reader hw KiCad files?

From the mathias4833/epaper-reader-hw repository on GitHub, at the commit this page was made from: the board is epaper-reader-hw.kicad_pcb and its schematic epaper-reader-hw.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Epaper reader hw design in my own project?

Its repository publishes it under the CERN-OHL-W-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers35 × 45 mmAether, the printed circuit board in 3D

    Aether

    EnriqueNeyra/aether

    All-in-one home air quality monitor measuring Temp, Humidity, CO2, VOCs, Particulate Matter, and NOx. Powered by ESP32-C3 running esphome, and built with Home Assistant integration

    57 parts129
  • 2 layers41.5 × 44 mmMurmur, the printed circuit board in 3D

    Murmur

    dazed-16/Murmur

    An AI powered device that holds recording as your second brain.

    20 parts
  • 4 layers58 × 102 mmAi mobile reader, the printed circuit board in 3D

    Ai mobile reader

    beishan/ai-mobile

    生成脚本依赖 KiCad 自带的 Python 和 pcbnew 模块。本机命令如下:

    79 parts
  • 4 layers41.6 × 36 mmEpaper smart watch, the printed circuit board in 3D

    Epaper smart watch

    AeroX2/aerox2.github.io

    One repository and npm installation builds the workshop at jamesridey.dev and the professional site at cv.jamesridey.dev.

    102 parts
  • 4 layers100 × 90 mmOpentouch s3, the printed circuit board in 3D

    Opentouch s3

    JoeMighty/opentouch-s3

    A modern remake of the Bare Conductive Touch Board: 12 capacitive touch electrodes, MP3/WAV/MIDI audio, and now WiFi, Bluetooth LE, USB-C, a proper LiPo power path, a fuel gauge, line-in, MIDI out, Qwiic and an RGB LED.

    185 parts
  • 4 layers27 × 34 mmChild wereable, the printed circuit board in 3D

    Child wereable

    oyeniyihakeem08-blip/child-wearable-notification-bracelet

    Wi-Fi wristband that tells children what’s expected of them, with a caregiver dashboard and offline alerts. ESP32-S3 · MQTT · KiCad.

    42 parts
  • 4 layers74.1 × 130 mmBadge secsea V1 1, the printed circuit board in 3D

    Badge secsea V1 1

    cchaloin/HIP_SecSea

    Hack In Provence badge for SecSea

    132 parts
  • 4 layers78 × 36 mmNametag, the printed circuit board in 3D

    Nametag

    gumulka/nametag

    A simle project to show my name on an e-Paper

    71 parts