Skip to the content
PCBKitNew board
2 layers80 × 21.6 mmEInkPicFrame, the printed circuit board in 3D

Battery powered picture frame using color E-Ink display

Size
80 × 21.6 mm
Copper layers
2
Thickness
1.6 mm
Parts
33
Nets
36
Pads
114
Tracks, vias
226, 0
Pours
1
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
2 Dec 2021
Updated
23 Dec 2025

Overview

EInkPicFrame is an open-source printed circuit board by nhjschulz, from the nhjschulz/EInkPicFrame repository on GitHub, published under the BSD-3-Clause licence. It is a 2-layer board of 80 × 21.6 mm with 33 parts on 36 nets, routed with 226 tracks and 0 vias.

It is built around the ATMEGA328P-PU. Its parts include 11 resistors, 7 capacitors, 6 connectors, 2 transistors and 1 IC. It belongs with the lEDs and displays and power boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

1

README

README.md

EInkPicFrame

The project builds an electronic picture frame using a 7 color E-Ink display. It updates after an adjustable time period by reading images from an SD-Card. The frame is powered from a battery and mimics a real picture frame by requiring no power cable or a backlight. The software and hardware implements various power saving methods to run for a long time without recharging.

Frame One

This is a hobbyist project. I have >20 years background in software development, but lack the electronic engineering background. I'm using this project to clear the fog in these mysterious regions below a HAL software layer. The project therefore includes a hardware design as well.

Requirements

A set of project requirements is collected here: Requirements

Concept

Block diagram of the system:

Context

Used Tools

The project is build using open source tools only. All of them are available for free. The following table shows the tools and versions used during development:

ToolUsageVersionLink
Visual Studio CodeEditor and IDE1.63.2https://code.visualstudio.com/
PlatformIOSoftware build tools5.2.4https://platformio.org/
PythonScript programming3.10.1https://www.python.org/
GIMPImage Manipulation2.10.30https://www.gimp.org/
ImageMagickImage Manipulation7.1.0https://imagemagick.org/
GITVersion Control2.19https://git-scm.com/
KiCad EDAHardware Design5.1.12https://www.kicad.org//

Software Architecture

The implemented software architecture design is shown on the Software Architecture page.

Hardware

The system is assembled using the following parts: Partlist.

A description of the PCB developed for this project is described here: PCB.

Image Generation

The images to show on the frame must be in a special raw format. The process to generate this format is described on the ImageConverter page.

File System

The SD Card must be formated using a FAT file system. The software expects a folder with the name "epd" on it. This folder contains the following data:

text
  [epd]
   |---- [err]
   |---- [img]
   |---- epd.cfg
  • The folder "err" holds error images that are displayed in case of a problem, like "low battery".
  • The folder img holds your images in epd format.
  • The file epd.cfg are the parameters for the display. See Parameter File for instructions to create it.

An example file system can be copied from the example File System folder.

Prototype Progress

  • 2021-12-11: System functional on breadboard (V1 hardware) breadboard

  • 2021-01-22: V1 PCBs arrived and work PCBv1

  • 2022-02-01: First frame starts long run test in the living room Frame One

    Back side:

    Back

Parts

33
QtyValueFootprintReferences
41MResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P2.54mm_VerticalR1, R3, R9, R10
4330Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P2.54mm_VerticalR4, R5, R6, R11
30.1 uFCapacitor_THT:C_Disc_D5.1mm_W3.2mm_P5.00mmC2, C7, C8
2180Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P2.54mm_VerticalR7, R8
222 pFCapacitor_THT:C_Disc_D5.1mm_W3.2mm_P5.00mmC5, C6
110 uHResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P2.54mm_VerticalL1
1100 nFCapacitor_THT:C_Disc_D5.1mm_W3.2mm_P5.00mmC1
110KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P2.54mm_VerticalR2
12N7000Package_TO_SOT_THT:TO-92L_Inline_WideQ1
12N7000Package_TO_SOT_THT:TO-92_Inline_WideQ2
1ATmega328P-PUPackage_DIP:DIP-28_W7.62mmU1
1AVR-ISP-6Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ2
1CPCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC3
1CrystalCrystal:Crystal_C38-LF_D3.0mm_L8.0mm_VerticalY1
1DebugConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ7
1EPDConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ3
1JumperConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP1
1LEDLED_THT:LED_D4.0mmD1
1PORTCConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ5
1PowerConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ4
1SDConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ1
1SW_PushButton_Switch_THT:SW_PUSH_6mmSW1

The 32 most common of 33 parts.

Questions

How big is the EInkPicFrame PCB?

It measures 80 × 21.6 mm and has 2 copper layers, 1.6 mm thick.

What parts does the EInkPicFrame use?

33 parts, built around the ATMEGA328P-PU. 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 EInkPicFrame KiCad files?

From the nhjschulz/EInkPicFrame repository on GitHub, at the commit this page was made from: the board is hw/EinkPicFrame.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the EInkPicFrame design in my own project?

Its repository publishes it under the BSD-3-Clause 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 layers68.8 × 53.6 mmZArduino, the printed circuit board in 3D

    ZArduino

    zmaker/arduino_cookbook

    gli sketch del nuovo progetto Arduino Cookbook e dei video di YouTube

    46 parts269
  • 2 layers76.3 × 122.8 mmDiscipad pcb, the printed circuit board in 3D

    Discipad pcb

    coseyfannitutti/discipad

    17-key numpad assembled with only through hole components, including usb type-c

    63 parts221GPL-3.0
  • 2 layers111.3 × 106.4 mmSuper Sixteen v1, the printed circuit board in 3D

    Super Sixteen v1

    matthewcieplak/super-sixteen

    Code and schematics for the Super Sixteen Eurorack sequencer

    141 parts171
  • 2 layers247.6 × 99.2 mmRomeo pcb, the printed circuit board in 3D

    Romeo pcb

    coseyfannitutti/romeo

    Staggered 40% keyboard pcb that can be assembled with only through hole components, including USB Type-C

    138 parts148GPL-3.0
  • 2 layers90 × 140 mmDrumkid, the printed circuit board in 3D

    Drumkid

    mattybrad/drumkid

    Version 4 was the first successful working design, with full code, schematics, Gerbers, etc available on GitHub.

    70 parts137
  • 2 layers238.1 × 375.5 mmFramework, the printed circuit board in 3D

    Framework

    stevennguyen/framework

    Ortholinear keyboard with a knob

    197 parts131
  • 2 layersLM80C R6, the printed circuit board in 3D

    LM80C R6

    leomil72/LM80C

    A Z80-based homebrew computer withTMS9918, AY-3-8910, Z80 CTC, Z80 PIO, and Z80 SIO

    153 parts123GPL-3.0
  • 2 layers145.3 × 44.5 mmScout, the printed circuit board in 3D

    Scout

    oskitone/scout

    3D-printed, Arduino-compatible, 17-key mono synth. Squeeeee!

    48 parts114