3D Digital Photo Frame

3D Digital Photo Frame controller - pcDuino


I need a way to show my 3D photos to family and friends. Not finding any inexpensive large 3D digital photo frames available, besides a 3D TV, I decided to build my own photo frame and chose a 3D monitor that works with passive polarized glasses. Here's my DIY (do-it-yourself) 3D photo frame project.


The digital photo frame should present stored photos automatically as a slide show without connecting a computer with keyboard or mouse. My photo frame does not have a remote control and is intended for continuous repeating shows. I found there are large display monitor photo frames on the Internet you can purchase for slide shows, for example, a 21.5 inch at Displays To Go, but these are not 3D capable yet. Their cost is about the same as my 3D photo frame setup and are ready to use, unlike my project here. Also available are glasses free 3D monitors that are relatively more expensive than my frame, but have smaller displays with lower resolutions.

For the 3D display I chose the 23 inch LG Electronics Cinema 3D D2343 IPS LED monitor. This monitor requires the viewer to wear inexpensive passive polarized glasses to see the stereo effect. The stereo image is best viewed by one person centered in front of the screen at a distance of about 3 ft. To see a ghost free image I find it best to move forward or back slightly from this distance. Wide lateral movement by a viewer can keep the stereo image intact without ghosting as long as the distance from the screen is constant. IPS displays are known for accurate color and have capability to be viewed from wide angles, which is why I picked this inexpensive monitor. This monitor is not great as a 2D monitor if used for photo editing for example, there are better IPS LED monitors available. However, it is acceptable for 2D photo slideshows.

For a display controller, I chose the pcDuino embedded computer board running Linux Ubuntu software. I added a WIFI adapter to upload photos that allows me to change the software operation from a remote computer, should I decide to mount the picture frame on a wall. Photos can be stored on either an on-board  micro SD card or a memory stick plugged into the board's 2nd USB port. I use the open source "feh" photo slideshow software for the presentations at 1080P (1920x1080 pixels).

To see 3D photos correctly on the LG monitor, they must be adjusted to fit the monitor's screen resolution and format for 3D. If this is not done the display  will not show the image correctly. Until I discovered this fact (there was little documentation), I was frustrated getting my photos to show correctly. This monitor is not smart like a 3D TV that can automatically and correctly display MPO files and resize high resolution photos to fit the display resolution.

I use SPM software (Stereo Photo Maker) to prepare my 3D photos for the monitor. After aligning the left and right photos in SPM to construct the stereo image, I cropped the stereo photo to a 16x9 ratio and re-sized it to 1920x1080. I then save the photo as a half-width side-by-side JPG file that the LG 3D monitor will display properly using the pcDuino. This works well when the photo composition has a 16x9 aspect ratio and this aspect ratio is suitable for my photo subject. Here are the SPM custom cropping settings I used:




When an image cannot be cropped to 16x9 aspect ratio due to the subject composition or other reasons, here is what I do. After aligning the image and cropping my subject, I then resize the photo to 1920x1080, and specify keep the aspect ratio with border. As before I then save the photo as a half-width side-by-side JPG file. Here are the SPM resize settings I used:




To build this photo frame with the pcDuino computer, I did not have to write any software. The work involved configuring the pcDuino software and loading packages not already installed on the purchased board. This requires knowledge of Linux. The whole process I went through is only recommended for a Linux enthusiast. Here are some helpful links I used to help configure the software I needed:

pcDuino from sparkfun.com
https://learn.sparkfun.com/tutorials/getting-started-with-pcduino
http://www.the-greathouses.net/blog/2013/03/setting-pcduino-display-resolution
http://www.pcduino.com
http://man.finalrewind.org/1/feh/
http://www.circuitsathome.com/mini-pc/installing-ssh-server-on-pcduino
http://archlinuxarm.org/platforms/armv7/pcduino
Miniature Wifi Adapter Module from Adafruit.com

I disabled the screen saver and set up an autostart script to start a slideshow when the controller powers up. I also changed the default resolution of the board from 720p to 1080p. I delayed showing the slides on power up by 20 seconds to allow the OS to automatically mount my USB memory.

Prior to this project, I tried using the Raspberry PI computer for a slide show viewer project, and mentioned  the PI in a previous post in my blog here. The problem with my PI is that it became unreliable after powering off. I think the file system on the memory card can become corrupted after abruptly turning off power, and the board would not fully boot up when switched on again. One time I shutdown the PI using a terminal command and the card still was corrupted. Not sure of the root cause or solution of this problem, it could be hardware defect. I decided to use the pcDuino instead. My one gripe about the pcDuino is the board is longer than the PI. I would have liked a smaller board.

To show a complete set of photos grouped in subfolders (-r topfolder) at 5 seconds per photo (-D5) , full screen (-F), no mouse pointer (-Y), I used this feh command line:

feh  -F  -Y  -D5  -r  topfolder

I am very pleased with the way my 3D photos look on the monitor. What I like is the hyper-realism of 3D photos and the "you are there feeling".