slow-movie-player-7c

Public

@likeablob

Download board files

Files for version 1. Pick what you came for.

Share slow-movie-player-7c

Check access before sharing the link.

Who can open this board

Anyone can open this board. No sign-in is required.

This link opens the latest version. Copying it does not grant additional access.

Loading 3D model… large boards can take a moment.

README

From "Spirited Away (2001)" © 2001 Studio Ghibli・NDDTM.

https://user-images.githubusercontent.com/46628917/185350349-dca5a5df-3bee-4c23-829b-23d41562c1f2.mp4

slow-movie-player-7c

standard-readme compliant

Yet another "Slow Movie Player" implementation with 7-color E-Paper module and ESP32.

Features:

  • 7-color E-Paper
  • microSD (MMC_SD) as the main storage
  • Power management by the ESP32 ULP coprocessor
  • Battery operated (12 uA @ Deep Sleep. Runs 1.2 years on a 2000 mAh battery.)

Table of Contents

Background

A few years later from my previous EPD project SHIHEN, while being impressed on "Slow Movie" and forks ([1], [2]), I was wondering it would be fun if I could also have something bigger and more eye-catching than SHIHEN. One day I found a multi-color E-Paper module available and immediately made an impulse buy. At that time, in Endless Endless Eight I had just started learning how powerful ESP32 ULP co-processor is, especially for battery-powered devices. So I decided to make a yet another variant of slow movie player by combining the two components.

The 7-color EPD module has notoriously long refresh time (>= 30 sec), however by delegating BUSY signal handlings to the ULP co-processor, the ESP32 module itself can be stay in Deep Sleep at most of the time.

Given the ESP32 module in the Deep Sleep mode only draws a dozen uA (Actually 12 uA measured = 6 uA for the module + 6 uA for peripherals.), theoretically the device can survive over a year under a 2000 mAh rated battery and 2 hours of wake interval.

Install

BOM

WIP

  • ESP32 (ESP-WROOM-32)
  • Waveshare ACeP 7-Color E-Paper Display Module (600x448 5.65inch)
  • SMD microSD slot
  • microSD card
  • M2*5 screws * 4
  • AAA batteries * 3

Wire components

See ./kicad.

Print spacers

See ./openscad.

Build firmware

$ pio run || pio run # The very 1st run may fail due to ulptool-pio
$ pio run -t upload

Usage

Prepare video file

Your video file must get converted to a special format before being placed on the microSD. Simply put 1. Dump video frames to a bunch of PNG images. 2. Apply palette to the images. 3. Concat the images into a single file.

You have several options as follows. After obtaining index.bin and images.bin, place them onto the root of your FAT32-formatted microSD.

Option A: With Docker

$ cd converter
$ cp path/to/your_vid_file .
$ docker-compose run --rm converter your_vid_file

Option B: With .sh

  • Note that you have to install ffmpeg, ImageMagick, node(v16) beforehand.
$ cd converter
$ ./convert.sh path/to/your_vid_file

Option C: By your hand

  1. Dump video frames into .png files.
$ cd converter
$ mkdir -p vid

# -r 1/2 == 0.5 FPS
$ ffmpeg -i path/to/your_vid_file -r 1/2 -vf scale=-1:448,crop=600:448 vid/vid_%06d.png

As you may have noticed, you can use any kind of image sources here not only usual video files.

  1. Reduce colors with the following 7-color palette.
$ mogrify -monitor -dither FloydSteinberg -remap epaper_7c_palette.png vid/*
  1. Generate index.bin and images.bin.
$ npm ci
$ node generate-index-bin.js vid/

How it works

WIP

Maintainers

@likeablob

Contributing

PRs accepted.

Small note: If editing the README, please conform to the standard-readme specification.

License

MIT

Comments

No comments yet. Be the first to ask about this board.

Ask about this board

Sign in to BoardRepo

New here? Signing in creates your account; there is no separate sign-up.