E-ink digital photo frame

A battery driven photo frame showing random Google Photo images in three colors using a resolution of 104x212 pixels
In the contest Picture Frames
6
8
0
584
updated March 8, 2022

Description

PDF

This is a small wifi powered photo frame that runs on battery (for a long time). For showing the photos, it uses a three color (black, white, red) 2.13" e-ink display with a resolution of 104x212 pixels.

The e-ink display only need power when updating the photo, which mean that the photo frame is running in deep sleep most of the time. It works as follows:
 

  1. Wakes up every 3.1 hours, or when touching a small hidden touch pin on the side of the frame (can be seen in one of the photos).
  2. Enables WiFi and connects to a local server that hosts the photo to show.
  3. Downloads the photo (two bitmaps, one with the pixels that should be drawn with black, and one with pixels that should be drawn in red).
  4. Draw the image (first black, then red).
  5. Go back to deep sleep.
     

This is how a drawing looks like. Updating the display is quite slow which is a characteristics of the e-ink/ePaper display. You can see that it first draw black followed by red. This is in real time: 

Design wise, there is not much happening. The box is sized to fit the 2.13" e-ink, a LiPo 3.7V 3000mAh battery, the ESP-32-S2 mini and a DC-DC step up converter.

Server side, there is a bunch of stuff happening.
Parodically (a couple of times a month), a index of all my Google Photo are downloaded. Not the photos themselves, but just the index. When the photo frame is requesting a photo (using http), in short this is what is happening:

  1. A random photo is picked from the index, and downloaded.
  2. The downloaded photo is resized and the colors are remapped to white, black and red (using that palette).
  3. Then two different bitmaps are extracted, one for only the black pixels, and one for only the red ones. Step 2 and 3 are using imagemagick.
  4. Each bitmap is then converted into bitmap format that the e-ink library understands.
  5. These are then packaged in one payload that the esp-32 receives.
  6. The esp-32 draws each bitmap, first black then red, and then go back to sleep.

 

I will upload all the source code! There are a bunch of different things and scripts going on to make all of this work. I need to document and format them a bit first, so stay tuned.

Tags



Model origin

The author marked this model as their own original creation.

License