/ fridayfun

Friday Fun: DIY Harry Potter Animated Frame

JK Rowling's Harry Potter is famous the world over, and in her world of wizards, witches and sorcery we have little details that make the world rich with magic and mystery.

One of the little details are the animated newspapers and posters dotted around the world. They turn everyday items into objects of wonder.

Mrs Pounder is a big Harry Potter fan and her favourite is Harry Potter and the Prisoner of Azkaban and Sirius Black (Gary Oldman). So for a recent birthday I wanted to make her something special so I made her a special animated frame from a Raspberry Pi and a Pimoroni Hyperpixel.

This was a mixed medium project, in that I used

  • Laser cutter
  • Vector Graphics
  • Electronics
  • Video Editing

To achieve the finished result.

Here is what you need to make one

  • A photoframe (£7 Dunelm Mill)
  • A Raspberry Pi Zero
  • Raspbian SD card
  • A Hyperpixel from Pimoroni
  • Micro USB power supply
  • Laser cutter (Ok you can print the frame on nice thick paper but I had access to a laser cutter...so yeah I used it)
  • A nice stand to keep the frame upright, I used a brass door stop from Wilkinsons £1 and some adhesive pads to ensure the frame sat correctly.

The Frame

Purchased from Dunelm Mill for £7, this frame fit the theme of Harry Potter quite well, but I had one problem, in that I would have to completely remove the back to accommodate the poster and electronics...so it wouldn't stand up! I found a nice brass effect door stop at Wilkinsons and drilled a small pilot hole ready for me to screw the door stop to the frame. While centred correctly it introduced a slight wobble that I did not want.

So I used some self adhesive transparent protectors at the end points of the frame to stop the wobble and ensure the frame was true.

The poster

The wanted poster is laser cut from an A4 piece of 3mm thick plywood. The words are engraved into the wood, and a space for the HyperPixel is cut from the wood so that it is just big enough to provide a snug friction fit. I also included a small frame that will go over the screen, hiding the metallic bezel of the screen, and keeping the animation framed and in theme.
The poster is also measured so that it just fits into the frame, bought from Dunelm Mill for £7.

Here is a link to the poster, saved as an SVG file ready for cutting / editing in Inkscape.


I used a font called MuggleNews as this was a close match to what I wanted.

With the poster cut, I test fitted the poster into the frame, and then the HyperPixel was gently inserted into the space cut for it. Some light sanding may be required.


HyperPixel is awesome! It is a tiny 3.5" screen that has an 800x480 resolution, sure not high def but high quality!
It connects to all 40 pins of the Pi GPIO, so unfortunately there can be no other devices connected to the GPIO. But for this project, no problemo! Oh and it is a touch screen!


Many thanks to Dave Wirth for sharing his video under the Standard Youtube Licence

So my animated frame needed a video and after a little GoogleFu I found a YouTube video that met my needs, it just needed a little tweaking.

So using Openshot, a video editor for Linux, I set about rotating the video, changing the resolution to match the 800x480 of the HyperPixel, and applied a slightly yellow opaque layer that would colour the video slightly to match the frame.

And here is the result!

Playing the video

You would expect me to say

"Yeah I whipped up a quick Python script to control the video!"

And for the first hour of the project, yeah I did that.

#!/usr/bin/env python3
import subprocess
subprocess.call(["omxplayer","--win","' 0 0 800 480'","--no-osd","--loop","SiriusY.mp4"])

But then I realised that I could accomplish this without Python, a simple one line command in cron would do the job, so I edited crontab

crontab -e

So that the last line read

@reboot omxplayer --win 0 0 800 480 --no-osd --loop SiriusY.mp4

Save and reboot!

It works?...Yup!!!

So there we have it, my own Harry Potter inspired animated frame and a happy MrsP.