Cinemagraph Display

A hackable digital picture frame optimized to display high quality animated gif's.

Similar projects worth following
I really like the idea of having a great looking, and animated, photograph on my wall. I looked around for a digital picture frame that could display animated GIF's. I found none.

I set about making my own.

I designed version 0.1 on (very cool site) and even ordered boards from OSH Park before realizing that a) I wanted it to be hackable and b) I'm gonna need a 4-layer board.

I am now using DesignSpark PCB to design the schematics and board layout for version 0.2.

Version 0.2 uses an Atmel ARM Cortex-M3 as the main microcontroller. It has integrated USB and several UART/USART that are needed to interface to the LCD, the LCD controller, the accelerometer, and talking to user add-ons.

The whole device is Lithium-Polymer battery powered with micro-USB charging. A huge part of my design strategy is low power. To this end, I hope to sleep the display after no movement is detected by the accelerometer and wake back up when someone walks near it. This is the largest unknown for my project. Will I be able to distinguish human activity from a large truck passing by the house? Is the accelerometer even sensitive enough? I will find out.

The accelerometer will also be the user interface controls. I have always hated fingerprints on my screens so by tapping the edges of the frame for controls, no greasy LCD! This also makes the LCD cheaper by eliminating the touchscreen.

The LCD controller has different methods of interfacing to the microcontroller. I'm trying SPI first but I have my doubts on if it will be fast enough to handle animations.

  • 1 × ATSAM3S1BB-AU Atmel ARM Cortex-M3 Microcontroller
  • 1 × S1D13781 LCD Controller
  • 1 × NHD-3.5-320240MF-ATXL#-1 TFT LCD 320x240

  • Competition

    theIdeaMen07/14/2014 at 19:31 0 comments

    Yay, I completed the routing of the new PCB yesterday. Today, I find a kickstarter for a wall hanging computer for art that will play animations. 

    Their display looks good but it will need to be plugged in at all times and it will be expensive. Maybe my device will find a niche.

  • The mess I'm dealing with

    theIdeaMen06/27/2014 at 00:02 0 comments

    What a rats nest.

    This is the kind of routing that makes me procrastinate.

  • Some notes on speed

    theIdeaMen06/06/2014 at 15:50 0 comments

    I want to be able to support 30 frames per second animated GIF's at 24-bit RGB. The LCD I chose for version 0.2 is max 320x240 pixels. 

    320 * 240 * 24 = 1843200 bits per frame. 

    The LCD controller supports paging, so I can load one animation frame in the background while one is being displayed.

    1843200 bits per frame * 30 frames per second = 55296000 bits per second.

    Let's see what my chosen microcontroller can do over SPI. 

    The SAM3S embeds high speed pads able to handle up to 32 MHz for HSMCI (MCK/2), 45 MHz for SPI clock lines and 35 MHz on other lines.

    Well, crap. 

    Because SPI is a serial interface, clock frequency is approximately equal to bits per second (there is some overhead because of the LCD controller commands before the pixel data). So what is my max frame rate?

    45 million bits per second / 1843200 bits per frame = 24.4 frames per second. 

    I guess that's not terrible, but I have to keep in mind this is best case. The real world frame rate will probably be around 10. In future iterations, I will use a bigger microcontroller in order to use 16-bit parallel interface to the LCD controller and eventually get to a bigger LCD. 320x240 is just too small for my cinemagraphs.

    EDIT: I realized I had enough pins leftover from I/O assignments that I could use an 8-bit indirect mode to interface to the LCD controller.

    Read more »

View all 3 project logs

Enjoy this project?



Neon22 wrote 06/27/2014 at 02:01 point
The STM32F4 series has display controller built in and is low cost... liek 429 - discovery board available

  Are you sure? yes | no

theIdeaMen wrote 06/27/2014 at 03:00 point
Yeah, I realize I'm doing a bit of re-inventing the wheel here. But, I'm also doing this as an exercise to improve my skills and gain experience with the design process.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates