# Haunted Portrait

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/046/534/medium800thumb/projects_mainLoopWPark.jpg?1505438250)

You can make&nbsp;a seemingly innocuous portrait come to life using an ornately framed flat panel TV powered by a Raspberry Pi. With proper lighting, it will look just like a painting, but every so often, the portrait subject's eyes will shift their gaze ever so slighting, sending chills up the spines of your unsuspecting victims, er, friends.

You'll use a hidden Raspberry Pi Zero as the&nbsp;image playback device to drive the TV over HDMI. Plus, you'll have a set of controls available using the buttons and thumbstick of the Joy Bonnet so you can pause and start the show, and more!

![](https://cdn-learn.adafruit.com/assets/assets/000/046/350/medium800/projects_wepMain.jpg?1505403447)

![](https://cdn-learn.adafruit.com/assets/assets/000/046/539/medium800/projects_IMG_4837_2k.jpg?1505455966)

![](https://cdn-learn.adafruit.com/assets/assets/000/046/537/medium800/projects_IMG_4834_2k.jpg?1505455883)

https://www.youtube.com/watch?v=SUYVrdYs8YI&amp;t=2s

## Parts and Materials

Most of&nbsp;the parts you'll need for the image player are provided in the Adabox 005 kit -- you'll just need to supply an OTG Ethernet hub or WiFi dongle, plus a keyboard and mouse. Here are the individual parts:

![](https://cdn-learn.adafruit.com/assets/assets/000/046/351/medium800/projects_P9130013_2k.jpg?1505405228)

### Raspberry Pi Zero - Version 1.3

[Raspberry Pi Zero - Version 1.3](https://www.adafruit.com/product/2885)
At first glance, the Pi Zero isn't much. &nbsp;It just looks like a slimmed down version of the Raspberry Pi we know and love. &nbsp;But when we started to think of the possibilities - [and what a well-chosen set of accessories could add](https://www.adafruit.com/product/2816) -...

Out of Stock
[Buy Now](https://www.adafruit.com/product/2885)
[Related Guides to the Product](https://learn.adafruit.com/products/2885/guides)
![Angled shot of Raspberry Pi Zero computer](https://cdn-shop.adafruit.com/640x480/2885-06.jpg)

### Adafruit Joy Bonnet for Raspberry Pi

[Adafruit Joy Bonnet for Raspberry Pi](https://www.adafruit.com/product/3464)
Pocket-sized fun is the name of this game, with the **Joy Bonnet** &nbsp;–&nbsp;our most fun Bonnet ever (no, we didn't even think that was possible, either!). This Bonnet fits perfectly on top of your Raspberry Pi Zero (any kind) and gives you adorable hand-held arcade...

In Stock
[Buy Now](https://www.adafruit.com/product/3464)
[Related Guides to the Product](https://learn.adafruit.com/products/3464/guides)
![Video of a white hand playing a DIY gaming console on a small monitor.](https://cdn-shop.adafruit.com/product-videos/640x480/3464-07.jpg)

### Adafruit Raspberry Pi Zero Case

[Adafruit Raspberry Pi Zero Case](https://www.adafruit.com/product/3252)
This is a basic, classic **Pi Zero enclosure** with a black base and a clear top.&nbsp;The case is as minimal as it gets, coming in just two pieces of polycarbonate that snap snugly together. This case will keep your&nbsp;Pi Zero safe and secure while also looking super sleek. You...

In Stock
[Buy Now](https://www.adafruit.com/product/3252)
[Related Guides to the Product](https://learn.adafruit.com/products/3252/guides)
![Angled shot of a rectangular black and clear acrylic case.](https://cdn-shop.adafruit.com/640x480/3252-00.jpg)

### Mini HDMI to HDMI Cable - 5 feet

[Mini HDMI to HDMI Cable - 5 feet](https://www.adafruit.com/product/2775)
Connect a device with a&nbsp;Mini HDMI port to a regular sized HDMI port together with this basic HDMI cable. It has nice molded grips for easy installation, and is 1.5 meter long (about 5 feet). [Perfect for use with your new Raspberry Pi...](https://www.adafruit.com/pizero)

Out of Stock
[Buy Now](https://www.adafruit.com/product/2775)
[Related Guides to the Product](https://learn.adafruit.com/products/2775/guides)
![Coiled bundle of HDMI extension cable.](https://cdn-shop.adafruit.com/640x480/2775-00.jpg)

### GPIO Hammer Headers - Solderless Raspberry Pi Connectors

[GPIO Hammer Headers - Solderless Raspberry Pi Connectors](https://www.adafruit.com/product/3413)
If your soldering isn't quite up to scratch, or you just don't own a soldering iron yet, then these nifty **hammer headers** &nbsp;from [Pimoroni](https://shop.pimoroni.com/) might be just what you need. They come in both male and female, and use crafty...

In Stock
[Buy Now](https://www.adafruit.com/product/3413)
[Related Guides to the Product](https://learn.adafruit.com/products/3413/guides)
![GPIO Hammer Header kit - Solderless Raspberry Pi Connectors with installation hardware](https://cdn-shop.adafruit.com/640x480/3413-01.jpg)

or

### Break-away 0.1" 2x20-pin Strip Dual Male Header

[Break-away 0.1" 2x20-pin Strip Dual Male Header](https://www.adafruit.com/product/2822)
If we could eat headers, we'd have them for breakfast, lunch, and dinner. &nbsp;But we can't :( So&nbsp;we're making the best of it and selling them!

This **2x20-pin strip&nbsp;male header** is a great way to add pins to 2x20 0.1" holes in a PCB....

In Stock
[Buy Now](https://www.adafruit.com/product/2822)
[Related Guides to the Product](https://learn.adafruit.com/products/2822/guides)
![Angled shot of a 0.1" 2x20-pin dual plug header strip.](https://cdn-shop.adafruit.com/640x480/2822-00.jpg)

### 5V 2.5A Switching Power Supply with 20AWG MicroUSB Cable

[5V 2.5A Switching Power Supply with 20AWG MicroUSB Cable](https://www.adafruit.com/product/1995)
Our all-in-one 5V 2.5 Amp + MicroUSB cable power adapter is the perfect choice for powering single-board computers like Raspberry Pi, BeagleBone, or anything else that's power-hungry!

This adapter was specifically designed to provide 5.25V, not 5V, but we still call it a 5V USB...

In Stock
[Buy Now](https://www.adafruit.com/product/1995)
[Related Guides to the Product](https://learn.adafruit.com/products/1995/guides)
![MicroUSB power supply with bundled cable and U.S. plugs.](https://cdn-shop.adafruit.com/640x480/1995-02.jpg)

### USB OTG Host Cable - MicroB OTG male to A female

[USB OTG Host Cable - MicroB OTG male to A female](https://www.adafruit.com/product/1099)
This cable looks like a USB micro cable but it isn't! Instead of a USB A Plug, it has a USB A Socket on the end. This cable is designed for use with OTG (On the Go) host devices (like the Arduino Due or many tablets) so you can connect a mouse, keyboard, or any other USB device. You'll...

In Stock
[Buy Now](https://www.adafruit.com/product/1099)
[Related Guides to the Product](https://learn.adafruit.com/products/1099/guides)
![USB OTG Host Cable with Micro B OTG male to A female in black](https://cdn-shop.adafruit.com/640x480/1099-00.jpg)

### Ethernet Hub and USB Hub w/ Micro USB OTG Connector

[Ethernet Hub and USB Hub w/ Micro USB OTG Connector](https://www.adafruit.com/product/2992)
One can never have enough socks, or USB ports.&nbsp;Add some more USB and Ethernet&nbsp;capability to your Raspberry Pi Zero or, really, any kind of tablet or computer with an OTG connector with this **USB 2.0 and Ethernet Hub**!

This handy combo-hub has 3 USB 2.0 ports, and...

Out of Stock
[Buy Now](https://www.adafruit.com/product/2992)
[Related Guides to the Product](https://learn.adafruit.com/products/2992/guides)
![Angled shot of White hub with USB micro-B cable and Ethernet socket.](https://cdn-shop.adafruit.com/640x480/2992-10.jpg)

You can save some money and add some convenience by getting the Pi Zero budget pack instead of some of the individual parts above:

For the digital portrait you'll need:

- Flat panel TV with HDMI input
- Ornate frame, large enough to fit TV, or
- Framing material or crown molding (a cheaper alternative) to make your own
- VESA mounting hardware to hang the TV
- Miscellaneous hardware to affix the frame to the TV, such as small wood screws and angle brackets&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/046/353/medium800/projects_tv.jpg?1505407090)

![](https://cdn-learn.adafruit.com/assets/assets/000/046/355/medium800/projects_frambuild_7_2k.jpg?1505407274)

## Tools

If you're going to cut a matte for your TV to fit a&nbsp;frame, you'll need a long straight edge or framing square, and a utility&nbsp;knife.

To cut a&nbsp;frame to exact dimensions or make&nbsp;one from framing or molding,&nbsp;you'll need a tape measure, hand saw and miter box, or a miter saw, as well as fasteners and wood glue, and some corner clamps.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/535/medium800/projects_frambuild_12_2k.jpg?1505449810)

Let's get started setting up the Pi Zero.

# Haunted Portrait

## Raspberry Pi Zero Setup

![](https://cdn-learn.adafruit.com/assets/assets/000/046/356/medium800/projects_P9130014_2k.jpg?1505407366)

## Pi Prep

First, prep the Raspberry Pi Zero so that you can attach the Joy Bonnet to it. You'll do this by attaching male&nbsp;headers to the Raspberry Pi Zero's GPIO pins. You have a couple of options here: you can solder on a standard 2x20-pin strip dual male header, or you can use the provided GPIO Hammer Header and jig.

To solder on the the standard pins, [follow this guide](../../../../introducing-the-raspberry-pi-zero/a-tour-of-the-pi-zero?view=all#go-classic-with-2x20-male-header).

![](https://cdn-learn.adafruit.com/assets/assets/000/046/280/medium800/projects_raspberry_pi_zero_iso_demo_1B_ORIG.jpg?1505193906)

If you don't want to solder on the headers, here's a great alternative!:&nbsp;[Hammer Headers.](https://www.adafruit.com/product/3413)

Hammer headers are special friction fit headers that include a little jig to hold everything in place, while you smash away at it with a hammer! OK, you may want to be a bit gentle with it, but not too gentle. You know, "hammer gentle".

&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/046/281/medium800/projects_hammer-header-tut-6.jpg?1505194163)

Once you've be-headered your Pi Zero, go ahead and fit it into its case. &nbsp;Then, align&nbsp;the Joy Bonnet's female headers over&nbsp;the Pi Zero's male headers and squeeze them together snugly.

![projects_P9130015_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/358/medium640/projects_P9130015_2k.jpg?1505407421)

![projects_P9130016_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/359/medium640/projects_P9130016_2k.jpg?1505407434)

![projects_P9130018_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/360/medium640/projects_P9130018_2k.jpg?1505407442)

![projects_P9130019_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/361/medium640/projects_P9130019_2k.jpg?1505407457)

# OS Installation

## SD Card

The Pi Zero can't do much without an operating system, so let's give it one. Insert the 8GB NOOBS (New Out of Box Software) micro-SD card into the Pi Zero's micro-SD card slot. NOOBS&nbsp;is an interface that makes it easy to install your operating system, in this case we'll install Raspbian Linux, once we get everything else plugged in.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/362/medium800/projects_P9130020_2k.jpg?1505407515)

## Display

Plug the micro-HDMI to HDMI cable into&nbsp;the Pi Zero on one end, and your TV or monitor on the other.

## &nbsp;
![projects_P9130021_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/363/medium640/projects_P9130021_2k.jpg?1505407556)

![projects_P9130022_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/364/medium640/projects_P9130022_2k.jpg?1505407563)

## Input

While you won't need a keyboard and mouse connected when once your Pi Zero is configured as an image player for your haunted&nbsp;portrait, you'll need&nbsp;to connect those now on order to&nbsp;configure things.&nbsp;

&nbsp;

You can use a wireless keyboard/mouse combo, such as [this one](https://www.adafruit.com/product/2876), or use&nbsp;wired input devices via a hub plugged into&nbsp;the Pi Zero using the OTG host cable. That particular&nbsp;hub is a great choice, because it allows you to plug in multiple USB devices as well as an Ethernet cable, which we'll need for some additional software installation later.

&nbsp;

Note that the Pi Zero's data micro-USB port is the one near the center of the board, marked " **USB**", and this is the one into which your OTG cable must be plugged. The other micro-USB port, marked " **PWR**", is for power only.

![projects_P9130023_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/366/medium640/projects_P9130023_2k.jpg?1505407654)

![projects_P9130025_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/367/medium640/projects_P9130025_2k.jpg?1505407663)

![projects_P9130026_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/368/medium640/projects_P9130026_2k.jpg?1505407682)

Info: 

## Power

You can now power up the Pi. Make sure the TV is turned on, then plug the power supply into the wall, and the other end into the Pi's **PWR** micro-USB port. The green power indicator LED on the Pi Zero will light up, and then you'll see signs of life on the TV.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/369/medium800/projects_P9130028_2k.jpg?1505407767)

## Install Raspbian

After your Pi Zero boots up, and you will&nbsp;use the NOOBS interface to install Raspbian.&nbsp;

You'll want to choose the language and keyboard from the dropdown menus at the bottom (for example, English (US) and US), then check the Raspbian OS checkbox, then click "Install".

[This is a great resource](https://www.raspberrypi.org/help/noobs-setup/2/) for more information on NOOBS and Raspbian installation. (Skip ahead to the section called "First Boot"), here are some highlights:

### FIRST BOOT

1. Plug in your keyboard, mouse, and monitor&nbsp;cables.
2. Now plug the USB power cable into your Pi.
3. Your Raspberry Pi will boot, and a window will appear with a list of different operating systems that you can install. We recommend that you use Raspbian – tick the box next to Raspbian and click on&nbsp;`Install`.
4. Raspbian will then run through its installation process. Note that&nbsp;this can take a while.
5. When the install process has completed, the Raspberry Pi configuration menu (raspi-config) will load. Here you are able to set the time and date for your region, enable a Raspberry Pi camera board, or even create users. You can exit this menu by using&nbsp; **Tab** &nbsp;on your keyboard to move to&nbsp;`Finish`.

The default login for Raspbian is username&nbsp;`pi`&nbsp;with the password&nbsp;`raspberry`.&nbsp; **Note that you will not see any writing appear when you type the password.&nbsp;** This is a security feature in Linux.

To load the graphical user interface, type&nbsp;`startx`&nbsp;and press&nbsp; **Enter**.

![projects_P9130029_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/370/medium640/projects_P9130029_2k.jpg?1505407843)

![projects_P9130030_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/371/medium640/projects_P9130030_2k.jpg?1505407852)

![projects_P9130031_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/372/medium640/projects_P9130031_2k.jpg?1505407860)

![projects_P9130032_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/373/medium640/projects_P9130032_2k.jpg?1505407867)

![projects_P9130033_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/374/medium640/projects_P9130033_2k.jpg?1505407875)

![projects_P9130034_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/375/medium640/projects_P9130034_2k.jpg?1505407882)

![projects_P9130035_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/376/medium640/projects_P9130035_2k.jpg?1505407890)

Congratulations, you've installed your operating system!&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/046/377/medium800/projects_P9130039_2k.jpg?1505407920)

## Keyboard Layout

In case you didn't choose this during setup (I occasionally forget), now's a good time to adjust the internationalization of your system and keyboard to match your region. [Here's a great guide](https://www.raspberrypi.org/documentation/configuration/raspi-config.md#change-keyboard-layout) on&nbsp;adjusting internationalization and keyboard layout, as well as some other useful configs.

## Get Online

One nice feature of Linux&nbsp;is the ability to easily install software from online repositories by using simple commands. To access these, plug in an&nbsp;Ethernet cable from your local network router to the OTG hub on the Pi Zero. Alternately, you can use a[USB WiFi dongle](https://www.adafruit.com/product/814) to get online. [Here's a guide](https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md) on setting up WiFi on the Pi.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/378/medium800/projects_ethernet.jpg?1505408178)

## Update&nbsp;Application&nbsp;List

&nbsp;

Once online, you can update the "apt-get" software. This will update the list of available software. To do so, you'll open a command line window by clicking the "Terminal" icon at the top of the screen.

&nbsp;

Then, on the Terminal window's command line, type&nbsp;

&nbsp;

`sudo apt-get update`

&nbsp;

And then press **return**. This will run for a little bit as it reads the available package lists, and then finish, reporting that it is done.

&nbsp;

Now you'll be able to install software in later steps, including the image player, called&nbsp; **feh,&nbsp;** and know that you're getting the latest version.&nbsp;&nbsp;

![projects_P9130040_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/379/medium640/projects_P9130040_2k.jpg?1505408262)

![projects_P9130041_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/380/medium640/projects_P9130041_2k.jpg?1505408269)

![projects_P9130042_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/381/medium640/projects_P9130042_2k.jpg?1505408277)

![projects_P9130043_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/382/medium640/projects_P9130043_2k.jpg?1505408286)

Primary: 

Next, we'll set up the Pi Zero for image playback. [This guide](https://pimylifeup.com/raspberry-pi-photo-frame/)&nbsp;on building a Pi-based digital picture frame is an excellent resource, which I followed closely while building my&nbsp;Haunted&nbsp;Portrait.

I'll cover all of the crucial&nbsp;steps here, but you can head to the link for other&nbsp;details, such as setting up SSH, which we won't be doing here.

Info: 

## Keep the Screen On

&nbsp;

First thing to do is prevent the screen from turning "off" (actually just going black) after your Pi Zero has been idle for too long. This is normally a good thing, but not when you're making a Haunted Portrait! You can do this by editing the&nbsp; **lightdm.conf&nbsp;** file. In the Terminal, type:

&nbsp;

`sudo nano /etc/lightdm/lightdm.conf`

&nbsp;

This opens the&nbsp; **lightdm.conf&nbsp;** file in a&nbsp;text editor called&nbsp; **nano**.

Once this opens in&nbsp; **nano** , use the arrow keys (or mouse wheel for faster scrolling) to navigate down to the line that reads:

&nbsp;

`[SeatDefault]`

&nbsp;

Add a new line below that one, and type this in:

&nbsp;

`xserver-command=X -s 0 -dpms`

&nbsp;

That line tells the screen to never "blank" or darken.

&nbsp;

To save and exit from&nbsp; **nano&nbsp;** type&nbsp; **ctrl+x&nbsp;** on the keyboard, which will lead to the question to save the file (modified buffer) or not, to which you'll reply yes by typing a **&nbsp;Y&nbsp;** for "yes". Then press&nbsp; **return&nbsp;** to accept the existing file name, overwriting the old version.

&nbsp;

![projects_P9130044_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/383/medium640/projects_P9130044_2k.jpg?1505408449)

![projects_P9130045_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/384/medium640/projects_P9130045_2k.jpg?1505408456)

![projects_P9130046_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/385/medium640/projects_P9130046_2k.jpg?1505408463)

![projects_P9130047_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/386/medium640/projects_P9130047_2k.jpg?1505408472)

![projects_P9130048_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/387/medium640/projects_P9130048_2k.jpg?1505408480)

This file's parameters are read at system startup, so in order to invoke them, you must&nbsp;now restart the Pi Zero by typing:&nbsp;

`sudo reboot`

in the Terminal window and then pressing&nbsp; **return.**

Once your Pi Zero reboots, we can move on to installing the image player software.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/388/medium800/projects_P9130049_2k.jpg?1505408521)

Now, let's install the image player!

# Haunted Portrait

## Image Software Setup

## Test Images

&nbsp;

Before we start installing the image software, grab a few images to use as a test. You can use the Pi Zero's web browser to save some test images. Click the browser icon (a little Earth with cursor) to view this page on your Pi Zero (in case you're following along and a different device) and then download the three images shown below.

&nbsp;

Do so by first clicking an image, which brings up the image asset page.

&nbsp;

Then, right-click on the link marked **Original&nbsp;** and save the full-sized&nbsp;image to the **Pictures** &nbsp;directory in your user directory (the user directory is **/home/pi** by default).

&nbsp;

Repeat these steps for all three images.

![projects_P9130050_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/389/medium640/projects_P9130050_2k.jpg?1505408789)

![projects_P9130053_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/390/medium640/projects_P9130053_2k.jpg?1505408796)

![projects_P9130054_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/391/medium640/projects_P9130054_2k.jpg?1505408807)

![](https://cdn-learn.adafruit.com/assets/assets/000/046/393/medium800/projects_testImg3.jpg?1505409104)

![](https://cdn-learn.adafruit.com/assets/assets/000/046/394/medium800/projects_testImg2.jpg?1505409112)

![](https://cdn-learn.adafruit.com/assets/assets/000/046/395/medium800/projects_testImg1.jpg?1505409119)

Info: 

You can now close the web browser.

 **NOTE:** Another great way to get images onto your Pi Zero is by setting up the Pi as a Samba server. This allows it to be discovered on your network, and then you can drag files onto it from another machine! Here's a great [guide to setting up Samba](https://www.raspberrypi.org/magpi/samba-file-server/).

## Install and Configure feh

**Feh** is a very nice command line image viewer, that happens to be perfect for running a slide show with specific parameters. It also allows key commands to be used while running, which is how we'll be able to use the Joy Bonnet to trigger different events.

&nbsp;

&nbsp;Let's install&nbsp; **feh**! Type this into the Terminal window, and then press **return** :

&nbsp;

`sudo apt-get install feh`

&nbsp;

This will download the necessary files and then install the application. When prompted, type&nbsp; **Y&nbsp;** and press **return** to continue.

![projects_P9130057_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/396/medium640/projects_P9130057_2k.jpg?1505409241)

![projects_P9130059_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/397/medium640/projects_P9130059_2k.jpg?1505409249)

![projects_P9130060_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/398/medium640/projects_P9130060_2k.jpg?1505409256)

Let's try out&nbsp; **feh&nbsp;** as a slide show viewer. Type this in the Terminal window (it may be easier to copy and paste it) and then press **return** :

&nbsp;`DISPLAY=:0.0 XAUTHORITY=/home/pi/.Xauthority /usr/bin/feh --quiet --preload --randomize --full-screen --hide-pointer --slideshow-delay 5.0 /home/pi/Documents/testPics &`

&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/046/399/medium800/projects_P9130061_2k.jpg?1505409336)

This will display&nbsp;the images in your&nbsp; **/**** testPics **&nbsp;directory, with the cursor hidden, fullscreen, and a with few other options. If you're curious about all of the options, you can press&nbsp;** esc&nbsp;**on the keyboard to stop the slideshow, and then type:

&nbsp;

`man feh`

&nbsp;

in your Terminal window and press return to read the manual page for&nbsp; **feh**. You can press&nbsp; **q&nbsp;** when you're done to quit&nbsp; **man.**

![projects_P9130062_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/400/medium640/projects_P9130062_2k.jpg?1505410012)

![projects_P9130063_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/401/medium640/projects_P9130063_2k.jpg?1505410019)

![projects_P9130070_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/402/medium640/projects_P9130070_2k.jpg?1505410026)

One thing you can do to clean up your code is to use short versions of the option flag names, as seen here:

`DISPLAY=:0.0 XAUTHORITY=/home/pi/.Xauthority /usr/bin/feh -q -p -F -Y -D 5.0 /home/pi/Pictures &`

&nbsp;This will do the same thing as the more verbose version above.

## Script It

&nbsp;

Instead of retyping that command every time you want to run a slideshow, you can create a special type of text file, known as a shell script, to store the command (or many commands). This shell script can then be invoked any time you want to run the commands contained within.

&nbsp;

Create a new shell script with this command:

&nbsp;

`sudo nano /home/pi/start-picture-frame.sh`

&nbsp;

Once again, this will launch the&nbsp; **nano&nbsp;** text editor. Type this into the file:

&nbsp;

`#!/bin/bash`

&nbsp;

`DISPLAY=:0.0 XAUTHORITY=/home/pi/.Xauthority /usr/bin/feh --quiet --preload --full-screen ---hide-pointer --slideshow-delay 15.0 /home/pi/Pictures &`

&nbsp;

The first line tells the system to run the rest of it as a bash shell command, so it knows what to expect.&nbsp;

![projects_P9130071_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/403/medium640/projects_P9130071_2k.jpg?1505410076)

![projects_P9130072_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/404/medium640/projects_P9130072_2k.jpg?1505410082)

![projects_P9130073_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/405/medium640/projects_P9130073_2k.jpg?1505410089)

![projects_P9130074_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/406/medium640/projects_P9130074_2k.jpg?1505410096)

![projects_P9130075_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/407/medium640/projects_P9130075_2k.jpg?1505410107)

Info: 

Close and save the shell script by pressing&nbsp; **ctrl-x&nbsp;** and then&nbsp; **Y&nbsp;** and&nbsp; **return.**

Now, run the shell script -- which will in turn run all of the contents of the file&nbsp;-- by typing this:

`bash /home/pi/start-picture-frame.sh`

That just ran your slideshow with a much shorter command. Much easier!

![](https://cdn-learn.adafruit.com/assets/assets/000/046/408/medium800/projects_P9130076_2k.jpg?1505410122)

Now, we'll set up the Joy Bonnet to use as a slideshow controller.

# Haunted Portrait

## Joy Bonnet Setup

![](https://cdn-learn.adafruit.com/assets/assets/000/046/409/medium800/projects_P9130108_2k.jpg?1505410218)

## Install the Joy Bonnet

The Joy Bonnet is a terrific little board! Originally designed to play video games in emulation, it's actually incredibly useful for adding a small set of controls to embedded projects as well.

Let's install the Joy Bonnet software so that the system can use it. You should already have the Joy Bonnet attached to the Pi Zero&nbsp;-- if not, do so now.

Installation is as simple as entering two lines in the Terminal, but you can read more details here in the&nbsp;[Joy Bonnet Learn Guide](../../../../adafruit-joy-bonnet-for-raspberry-pi/install-and-use).

Type this in to your Terminal to load the install script on your system:

```terminal
cd ~
sudo apt-get install python3-pip
sudo pip3 install --upgrade adafruit-python-shell
wget https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/joy-bonnet.py
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/448/medium800/projects_P9130078_2k.jpg?1505430033)

Then, type this in your Terminal to run the install script:

`sudo python3 joy-bonnet.py`

then press&nbsp; **return** , then:&nbsp;

- enter **Y** &nbsp;to agree to install
- enter&nbsp; **Y&nbsp;** again to disable overscan, and then enter:
- enter&nbsp; **N** &nbsp;to not install the GPIO-halt utility
- finally enter&nbsp; **Y&nbsp;** one last time to continue

Once installation is complete (it takes a few minutes), you'll be asked if you want to reboot. You can go ahead and type&nbsp; **Y&nbsp;** and press&nbsp; **return.&nbsp;** Or, you can reboot the system later by entering this in the Terminal:

**`sudo reboot`&nbsp;**

![projects_P9130078_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/449/medium640/projects_P9130078_2k.jpg?1505430110)

![projects_P9130081_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/450/medium640/projects_P9130081_2k.jpg?1505430156)

![projects_P9130082_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/451/medium640/projects_P9130082_2k.jpg?1505430168)

![projects_P9130086_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/452/medium640/projects_P9130086_2k.jpg?1505430204)

![projects_P9130089_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/453/medium640/projects_P9130089_2k.jpg?1505430223)

![projects_P9130090_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/454/medium640/projects_P9130090_2k.jpg?1505430270)

## Joy Bonnet Button Configuration

Now, we can set up the buttons on the Joy Bonnet to run particular commands for our slideshow by sending keystrokes to&nbsp; **feh.**

![](https://cdn-learn.adafruit.com/assets/assets/000/046/455/medium800/projects_P9130092_2k.jpg?1505430330)

First, let's open the joy-bonnet.py script which contains the key bindings by typing:

`sudo nano /boot/joy-bonnet.py`

![](https://cdn-learn.adafruit.com/assets/assets/000/046/456/medium800/projects_P9130091_2k.jpg?1505430348)

Scroll down to the section that starts with:

```auto
KEYES= { # EDIT KEYCODES IN THIS TABLE TO YOUR PREFERENCES:
```

Then change the key assignments to the following:

```auto
BUTTON_A: e.KEY_N,        # next image
BUTTON_B: e.KEY_P,        # previous image
BUTTON_X: e.KEY_Z,        # unassigned
BUTTON_Y: e.KEY_M,        # toggle menu
SELECT:   e.KEY_Q,        # quit feh
START:    e.KEY_H,        # pause/continue slideshow
PLAYER1:  e.KEY_ESC,      # escape key  to close menus       
PLAYER2:  e.KEY_ENTER,    # enter key for menus
1000:     e.KEY_UP,       # Analog up for menu nav
1001:     e.KEY_DOWN,     # Analog down for menu nav
1002:     e.KEY_LEFT,     # Analog left -- menu nav and next image
1003:     e.KEY_RIGHT,    # Analog right - menu nav and previous image
```

Primary: 

![](https://cdn-learn.adafruit.com/assets/assets/000/046/460/medium800/projects_P9130093_2k.jpg?1505431945)

Once edited, save the file by pressing **ctrl-x&nbsp;** followed by **Y&nbsp;** and&nbsp; **return.**

Info: 

![](https://cdn-learn.adafruit.com/assets/assets/000/046/462/medium800/projects_P9130104_2k.jpg?1505431998)

Reboot the Pi Zero so the changes take effect. Then, try out the Joy Bonnet buttons by opening a Terminal and pressing the buttons to "type" the assigned letters.

Now, let's use them as intended! Run the frame player script by typing this in your Terminal:

`bash start-picture-frame.sh`

Once the slideshow has begun, try pausing with the Joy Bonnet&nbsp; **Start&nbsp;** button, and then advancing or going back through the images with the&nbsp; **A&nbsp;** and&nbsp; **B&nbsp;** buttons **.**

![projects_P9130106_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/463/medium640/projects_P9130106_2k.jpg?1505432030)

![projects_P9130107_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/464/medium640/projects_P9130107_2k.jpg?1505432038)

Next, let's change the system to portrait orientation.

# Haunted Portrait

## Portrait Mode Setup

![](https://cdn-learn.adafruit.com/assets/assets/000/046/465/medium800/projects_P9130122_2k.jpg?1505432094)

## Rotate the Display

A large part of the visual impact of this project comes from hanging the TV vertically in portrait orientation. We're so used to seeing TVs in their horizontal landscape position, that the portrait orientation is novel and unexpected. This, plus the frame that we'll use, and careful lighting really sell the gag.

To rotate the orientation of the data sent to the TV, you'll add a single line to the Pi Zero's configuration text file. Type this in a terminal to edit the file:

&nbsp;

`sudo nano /boot/config.txt`

&nbsp;

and then press&nbsp; **return.**

&nbsp;

You can add the new line at the very bottom of the file. Type this in on a new line:

&nbsp;

`#rotate the display: 0=normal, 1=right vertical, 2=upside down, 3=left vertical`

&nbsp;

That line is a comment, which won't be read by the machine, just us humans. Comment lines are preceded by the # symbol.

&nbsp;

On the next line, type this:

&nbsp;

`display_rotate=1`

&nbsp;

![projects_P9130109_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/466/medium640/projects_P9130109_2k.jpg?1505432170)

![projects_P9130110_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/467/medium640/projects_P9130110_2k.jpg?1505432179)

![projects_P9130112_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/468/medium640/projects_P9130112_2k.jpg?1505432191)

Now, you can save the file ( **ctrl-x, Y** es,&nbsp;**return)** and then **restart** the Pi Zero by typing:

`sudo reboot`

Get ready to turn your neck sideways or rotate your monitor to continue! If you ever need to go back to regular orientation, change the config.txt file's display\_rotate value to 0.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/469/medium800/projects_P9130119_2k.jpg?1505432324)

![](https://cdn-learn.adafruit.com/assets/assets/000/046/470/medium800/projects_P9130121_2k.jpg?1505432326)

## Autostart the feh Script

In the final Haunted Portrait, you won't have a keyboard or mouse connected (unless you use a wireless setup), so you'll want to set up the Pi Zero to automatically run your slideshow script on startup. This also means that if there is a loss of power, the system will not spend a long time stuck on a Linux screen!

To set the script to automatically run on startup, there are just two simple steps. First, we'll set the file permissions of the script to be "executable" by the system, not just the user who created it. Then, we'll add a line to the desktop environment configuration script that &nbsp;automatically runs our picture frame shell script upon launch.

Info: 

## Permissions

Let's have a look at the current file permissions. In your Terminal, type this in to list the directory contents with verbose info:

`ls -l /home/pi`

![](https://cdn-learn.adafruit.com/assets/assets/000/046/474/medium800/projects_P9130126_2k_a.jpg?1505432964)

That list of letters on the left side in front of each file shows you what type of permissions exist for the file.

Possible permissions are read, write, and execute for three types of accounts: owner, group, and user. [Here's](https://glug.nith.ac.in/blog/file-permissions-in-linux-chown-and-chmod-explained/) a very good primer on the subject.

For the slideshow script we see:&nbsp;

`-rw-r--r--`

which means the file can be read and written by the owner ("root"), and only read (not executed or written) by groups and by users. This means the system (user "pi") doesn't have execution permission. So, we want to adjust that so the system can actually run the script without user intervention.

This simplest way to adjust this in our case is to grant execution&nbsp;permissions to all users. The **chmod** &nbsp;command is used to do so. Type this in your Terminal:

`sudo chmod 755 /home/pi/start-picture-frame.sh`

&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/046/475/medium800/projects_P9130126_2k_b.jpg?1505432982)

Now, list the file contents and you'll see the new permissions.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/476/medium800/projects_P9130127_2k.jpg?1505433001)

## Autostart

Next, you will add a line to the desktop environment autostart file&nbsp;so it run the script after booting. Open the autostart file for editing by typing:

`sudo nano ~/.config/lxsession/LXDE-pi/autostart`

![](https://cdn-learn.adafruit.com/assets/assets/000/046/477/medium800/projects_P9130128_2k.jpg?1505433110)

Add a new line at the bottom and enter this text:

`@./start-picture-frame.sh`

![](https://cdn-learn.adafruit.com/assets/assets/000/046/478/medium800/projects_P9130130_2k.jpg?1505433125)

As is by now the familiar routine, save and exit the file with&nbsp; **ctrl-x, Y, return.**

Once again, you'll need to restart the Pi Zero to see the effects of your changes, so type:&nbsp;

`sudo reboot`

This time, once the Pi Zero reboots, it will launch the LXDE desktop, and then start the slideshow! How automagical!

![projects_P9130132_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/479/medium640/projects_P9130132_2k.jpg?1505433216)

![projects_P9130134_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/480/medium640/projects_P9130134_2k.jpg?1505433224)

![projects_P9130135_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/481/medium640/projects_P9130135_2k.jpg?1505433232)

![projects_P9130136_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/482/medium640/projects_P9130136_2k.jpg?1505433240)

![projects_P9130137_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/483/medium640/projects_P9130137_2k.jpg?1505433246)

When you tire of watching your test slideshow, you can press&nbsp; **Esc&nbsp;** on the keyboard, or the&nbsp; **Select&nbsp;** button on your&nbsp;Joy Bonnet to stop it. You can relaunch at any time by typing this into a Terminal window:

`bash /home/pi/start-picture-frame.sh`

Now, let's prepare some proper portrait images!

# Haunted Portrait

## Image Prep & Modification

![](https://cdn-learn.adafruit.com/assets/assets/000/046/536/medium800/projects_photoEdit.jpg?1505452033)

Now that your frame playback software is up and running, let's replace the test images with something more thematically appropriate.

How about Master Gracey, from the Haunted Mansion? This image was painted by character artist&nbsp;Corwin Webb, and is made available here with his permission. Thanks!

Check out [&nbsp;Corwin's illustration site](http://corwinwebb.tumblr.com/) for more excellent work! (I modified the painting in the second image to change Master G's gaze a bit, and to remove the pupils and irises in the third one.)

![](https://cdn-learn.adafruit.com/assets/assets/000/046/620/medium800/projects_mgThreeUp.jpg?1505720271)

Info: 

You can make modifications to any portrait in an image editor such as Photoshop or GIMP. One simple trick is to paint out the irises and pupils, leaving behind only a haunting set of scleras (sclerae?).&nbsp;

Or, you can paint them entirely black. Creepy.

How about red eyes!

A slightly more advanced technique is to use an image deformer lattice or "puppet warp" in Photoshop to make the eyes squint or look in a slightly different direction.

Or, turn your own photographs into portraits using filters.

I took photographs of a&nbsp;family portrait, that&nbsp;of my great-great-grandfather, the Rev. William Park. I'm sure he&nbsp;was&nbsp;a very nice guy, but for some reason I think he&nbsp;makes for an excellent subject of&nbsp;a Haunted Portrait.

In order to amp up the spooky factor, I made a couple of copies of the&nbsp;portrait and modified his&nbsp;eyes so that his&nbsp;expressions change just enough to make viewers question their own eyes.

Here's the original.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/330/medium800/projects_park1.jpg?1505337106)

In this one I image warped his eyes to change his&nbsp;gaze and expression slightly.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/331/medium800/projects_park2.jpg?1505337124)

Finally, I repainted this image so his eyes are closed.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/332/medium800/projects_park3.jpg?1505337136)

&nbsp;

Once you're happy with your images,&nbsp;save them as .jpg files and place them in your **/home/pi/Pictures** &nbsp;folder on the Pi Zero. Remove any images you don't want played, such as our original test images, and then restart the slideshow.

![projects_P9130139_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/484/medium640/projects_P9130139_2k.jpg?1505434158)

![projects_P9130140_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/485/medium640/projects_P9130140_2k.jpg?1505434166)

![projects_P9130141_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/486/medium640/projects_P9130141_2k.jpg?1505434173)

Now we're ready to frame the TV.

# Haunted Portrait

## Frame, Mount, and Light the Display

![](https://cdn-learn.adafruit.com/assets/assets/000/046/501/medium800/projects_P9130215_2k.jpg?1505434447)

To finalize your Haunted Portrait, you'll want to place the TV inside an ornate picture frame, hang it from the wall, and adjust the lighting. Ideally, you'll also hide the wiring of the TV and Pi Zero power supplies by hanging the portrait over a wall outlet, or disguising the wires with a wall mount kit, color matched to the wall.

## Framing

Here you can see one extreme -- where I removed the LCD panel and electronics from the plastic case and bezel in order to get the thinnest possible profile with a tight fit.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/502/medium800/projects_frambuild_1_2k.jpg?1505434463)

![](https://cdn-learn.adafruit.com/assets/assets/000/046/503/medium800/projects_frambuild_2_2k.jpg?1505434476)

![](https://cdn-learn.adafruit.com/assets/assets/000/046/504/medium800/projects_frambuild_3_2k.jpg?1505434486)

Danger: 

![](https://cdn-learn.adafruit.com/assets/assets/000/046/507/medium800/projects_frambuild_4_2k.jpg?1505434546)

Next, I resized an existing frame from a thrift store so that it is a nearly perfect, edge to edge fit. I did so by carefully measuring the LCD panel and then cutting the existing frame at 45 degree angels on a miter saw to size.

I then glued and fastened the corners back together, clamped them, and let it dry.

![projects_frambuild_7_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/505/medium640/projects_frambuild_7_2k.jpg?1505434512)

![projects_frambuild_8_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/511/medium640/projects_frambuild_8_2k.jpg?1505434728)

![projects_frambuild_10_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/512/medium640/projects_frambuild_10_2k.jpg?1505434768)

![projects_frambuild_11_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/513/medium640/projects_frambuild_11_2k.jpg?1505434788)

![](https://cdn-learn.adafruit.com/assets/assets/000/046/514/medium800/projects_P9130217_2k.jpg?1505434833)

The fit was tight enough that I didn't need any fasteners to connect the frame to the LCD TV panel -- it simply stays on by friction, and the TV will bear the load when hung from the wall with it's built in VESA mounting points.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/515/medium800/projects_framed.jpg?1505435222)

Attached the pre-existing power/input/volume button strip to the backside of the frame with double-stick foam tape.

I was also able to power the Pi Zero from the TV's built-in USB port, so one less power adapter to worry about hiding!

![](https://cdn-learn.adafruit.com/assets/assets/000/046/516/medium800/projects_P9130210_2k.jpg?1505435362)

A less involved, but very attractive way to fit your TV to a frame is to buy a frame that is oversized and then cut (or have a framing store cut) a matte to match the TV screen dimensions. Or, how about an oval matte to further enhance the illusion?

![projects_P9130224_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/520/medium640/projects_P9130224_2k.jpg?1505436908)

![projects_matted.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/521/medium640/projects_matted.jpg?1505437046)

A less involved, but very attractive way to fit your TV to a frame is to buy a frame that is oversized and then cut (or have a framing store cut) a matte to match the TV screen dimensions. Or, how about an oval matte to further enhance the illusion?

Of course, portraits come in all sizes, so there's probably an old, small monitor kicking around somewhere in the back of your tech graveyard closet -- if you've got one with an HDMI input, why not turn it into a Haunted Portrait?!

## Mount the Haunted Portrait

&nbsp;

Use a VESA mount to hang the portrait, it's much stronger and safer than a picture hook! Here, you can see the VESA mount in action on a wall where the portrait will cover the power outlet.

![projects_IMG_4847_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/525/medium640/projects_IMG_4847_2k.jpg?1505437264)

![projects_IMG_4846_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/526/medium640/projects_IMG_4846_2k.jpg?1505437269)

![projects_IMG_4848_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/527/medium640/projects_IMG_4848_2k.jpg?1505437278)

![](https://cdn-learn.adafruit.com/assets/assets/000/046/528/medium800/projects_wepMain.jpg?1505437329)

## Final Touches

Here are some thing you may be able&nbsp;do in your TV's control menus to maximize the quality of the effect:

- Turn off LCD backlight -- the less the image looks like it is transmissive light the better
- Adjust brightness and contrast &nbsp;until the dark and bright portions of the image look realistic for a painting
- Turn off adaptive screen dimming
- Turn off automatic power down or screen saver

## Tuning the Image

Here are some thing you may be able&nbsp;do in your TV's control menus to maximize the quality of the effect:

- Turn off LCD backlight -- the less the image looks like it is transmissive light the better
- Adjust brightness and contrast &nbsp;until the dark and bright portions of the image look realistic for a painting
- Turn off adaptive screen dimming
- Turn off automatic power down or screen saver

![projects_P9130199_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/529/medium640/projects_P9130199_2k.jpg?1505437369)

![projects_P9130200_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/530/medium640/projects_P9130200_2k.jpg?1505437376)

![projects_P9130195_2k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/531/medium640/projects_P9130195_2k.jpg?1505437392)

## Tuning the Lighting

If you've seen digital portraits at theme parks, such as the living painting in the World of Harry Potter, there are a few things they've done that really make the effect work well. One of the most important is to control the lighting.

- You want to try to light the frame at the same level as is apparent in your digital portrait, and use small side lights to lift the frame without washing out the display
- At odds with this, you also want to avoid glare! Place the portrait in a place with limited viewing angles, such as the end of a short hallway
- Another trick is to use a matte finish screen if possible, or for the hardcore, even cover the screen in a thin level of thin, transparent gel medium or a matte film. Be careful, however: the matte effect work amazingly well when viewed straight on, but at oblique angles it can quickly reduce the amount of light visible from the screen and will go hazy gray
- Most of all, have fun figuring out the best ways to delight and spook your guests with your Haunted Portrait!

![](https://cdn-learn.adafruit.com/assets/assets/000/046/532/medium800/projects_P9130169_2k.jpg?1505437450)

Another great spooky frame project to check out is [this one](../../../../creepy-face-tracking-portrait) on making a reactive, face tracking CG picture frame. Just in time for Halloween!

![](https://cdn-learn.adafruit.com/assets/assets/000/046/533/medium800thumb/projects_mainLoopWPark.jpg?1505438132)


## Guide Products

### Raspberry Pi Zero - Version 1.3

[Raspberry Pi Zero - Version 1.3](https://www.adafruit.com/product/2885)
At first glance, the Pi Zero isn't much. &nbsp;It just looks like a slimmed down version of the Raspberry Pi we know and love. &nbsp;But when we started to think of the possibilities - [and what a well-chosen set of accessories could add](https://www.adafruit.com/product/2816) -...

Out of Stock
[Buy Now](https://www.adafruit.com/product/2885)
[Related Guides to the Product](https://learn.adafruit.com/products/2885/guides)
### Adafruit Joy Bonnet for Raspberry Pi

[Adafruit Joy Bonnet for Raspberry Pi](https://www.adafruit.com/product/3464)
Pocket-sized fun is the name of this game, with the **Joy Bonnet** &nbsp;–&nbsp;our most fun Bonnet ever (no, we didn't even think that was possible, either!). This Bonnet fits perfectly on top of your Raspberry Pi Zero (any kind) and gives you adorable hand-held arcade...

In Stock
[Buy Now](https://www.adafruit.com/product/3464)
[Related Guides to the Product](https://learn.adafruit.com/products/3464/guides)
### Adafruit Raspberry Pi Zero Case

[Adafruit Raspberry Pi Zero Case](https://www.adafruit.com/product/3252)
This is a basic, classic **Pi Zero enclosure** with a black base and a clear top.&nbsp;The case is as minimal as it gets, coming in just two pieces of polycarbonate that snap snugly together. This case will keep your&nbsp;Pi Zero safe and secure while also looking super sleek. You...

In Stock
[Buy Now](https://www.adafruit.com/product/3252)
[Related Guides to the Product](https://learn.adafruit.com/products/3252/guides)
### Mini HDMI to HDMI Cable - 5 feet

[Mini HDMI to HDMI Cable - 5 feet](https://www.adafruit.com/product/2775)
Connect a device with a&nbsp;Mini HDMI port to a regular sized HDMI port together with this basic HDMI cable. It has nice molded grips for easy installation, and is 1.5 meter long (about 5 feet). [Perfect for use with your new Raspberry Pi...](https://www.adafruit.com/pizero)

Out of Stock
[Buy Now](https://www.adafruit.com/product/2775)
[Related Guides to the Product](https://learn.adafruit.com/products/2775/guides)
### GPIO Hammer Headers - Solderless Raspberry Pi Connectors

[GPIO Hammer Headers - Solderless Raspberry Pi Connectors](https://www.adafruit.com/product/3413)
If your soldering isn't quite up to scratch, or you just don't own a soldering iron yet, then these nifty **hammer headers** &nbsp;from [Pimoroni](https://shop.pimoroni.com/) might be just what you need. They come in both male and female, and use crafty...

In Stock
[Buy Now](https://www.adafruit.com/product/3413)
[Related Guides to the Product](https://learn.adafruit.com/products/3413/guides)
### Break-away 0.1" 2x20-pin Strip Dual Male Header

[Break-away 0.1" 2x20-pin Strip Dual Male Header](https://www.adafruit.com/product/2822)
If we could eat headers, we'd have them for breakfast, lunch, and dinner. &nbsp;But we can't :( So&nbsp;we're making the best of it and selling them!

This **2x20-pin strip&nbsp;male header** is a great way to add pins to 2x20 0.1" holes in a PCB....

In Stock
[Buy Now](https://www.adafruit.com/product/2822)
[Related Guides to the Product](https://learn.adafruit.com/products/2822/guides)
### 5V 2.5A Switching Power Supply with 20AWG MicroUSB Cable

[5V 2.5A Switching Power Supply with 20AWG MicroUSB Cable](https://www.adafruit.com/product/1995)
Our all-in-one 5V 2.5 Amp + MicroUSB cable power adapter is the perfect choice for powering single-board computers like Raspberry Pi, BeagleBone, or anything else that's power-hungry!

This adapter was specifically designed to provide 5.25V, not 5V, but we still call it a 5V USB...

In Stock
[Buy Now](https://www.adafruit.com/product/1995)
[Related Guides to the Product](https://learn.adafruit.com/products/1995/guides)
### 8 GB MicroSD Card with full PIXEL desktop NOOBS

[8 GB MicroSD Card with full PIXEL desktop NOOBS](https://www.adafruit.com/product/3259)
NooBs is the fastest way to have a variety of operating systems on your Pi. Available on an 8G microSD card, you can now boot multiple OS's such as Raspbian, Kodi, OSMC, Windows 10 IoT, etc. There's a boot up menu for selecting which one you like. **This card has PIXEL on it with...**

No Longer Stocked
[Buy Now](https://www.adafruit.com/product/3259)
[Related Guides to the Product](https://learn.adafruit.com/products/3259/guides)

## Related Guides

- [LED Drone Matrix](https://learn.adafruit.com/led-matrix-drone.md)
- [Control an LED With Your Voice using Watson and Raspberry Pi](https://learn.adafruit.com/tjbot-control-an-led-with-your-voice-watson-on-raspberry-pi.md)
- [Moon Phase Clock for Adafruit Matrix Portal](https://learn.adafruit.com/moon-phase-clock-for-adafruit-matrixportal.md)
- [Your First Power Switch Relay Project - Circuit Playground Smart Plug](https://learn.adafruit.com/beginner-first-project-power-switch-relay-circuit-playground-smart-plug.md)
- [Feather + Raspberry Pi Weather Monitoring Network with LoRa or LoRaWAN](https://learn.adafruit.com/multi-device-lora-temperature-network.md)
- [Using the RockBLOCK Iridium Modem](https://learn.adafruit.com/using-the-rockblock-iridium-modem.md)
- [No-Code IoT Door Alarm with WipperSnapper](https://learn.adafruit.com/no-code-iot-door-alarm-with-wippersnapper.md)
- [Boomy Pi Airplay Boombox](https://learn.adafruit.com/boomy-pi-airplay.md)
- [Milk Jug Glow Skull](https://learn.adafruit.com/milk-jug-glow-skull.md)
- [Set up Home Assistant with a Raspberry Pi](https://learn.adafruit.com/set-up-home-assistant-with-a-raspberry-pi.md)
- [PiGlass v2](https://learn.adafruit.com/piglass-v2-wearable-raspberry-pi-computer.md)
- [NeoTrellis M4 MIDI File Synthesizer](https://learn.adafruit.com/neotrellism4-midi-file-player-synthesizer.md)
- [Dancing Inflatables: Make your Holiday Display Move](https://learn.adafruit.com/dancing-inflatables-make-your-holiday-display-move.md)
- [Weather Display Matrix](https://learn.adafruit.com/weather-display-matrix.md)
- [Adafruit IO Basics: Schedule Actions](https://learn.adafruit.com/adafruit-io-basics-scheduled-triggers.md)
