User avatar
NerdUno
Posts: 63
Joined: Wed Aug 15, 2012 1:35 pm

Poor Man's Photo Kiosk

Wed Sep 19, 2012 3:03 pm

Just for fun, we built a photo gallery kiosk for my mother-in-law using a Raspberry Pi. It only takes a couple of minutes if you'd like to build your own.

1. Install and boot Raspbian image
2. Install QIV: sudo apt-get install qiv
3. Copy your favorite photos into /home/pi
4. Create a slideshow script named slideshow with the following entry (assuming .jpg images): qiv -fs *.jpg
5. Make the script executable: chmod +x slideshow
6. Create .xinitc file with the following entry: /home/pi/slideshow
7. Start X Windows: startx (HINT: hitting Esc ends the slideshow)

User avatar
NerdUno
Posts: 63
Joined: Wed Aug 15, 2012 1:35 pm

Re: Poor Man's Photo Kiosk

Wed Sep 19, 2012 5:35 pm

Correction: .xinitc should be .xinitrc. Sorry.

User avatar
piglet
Posts: 881
Joined: Sat Aug 27, 2011 1:16 pm

Re: Poor Man's Photo Kiosk

Wed Sep 26, 2012 11:20 pm

Nice. How do you turn off the screensaver? I see lots of threads and no sensible answer....

User avatar
piglet
Posts: 881
Joined: Sat Aug 27, 2011 1:16 pm

Re: Poor Man's Photo Kiosk

Fri Sep 28, 2012 9:42 am

piglet wrote:Nice. How do you turn off the screensaver? I see lots of threads and no sensible answer....
Aha! Got it.

I used a belt and braces approach.

Approach 1

On Pi 1 I don't want screensaver - but don't want to autorun x. When I start up x I do it manually and it references /home/pi/.xinitrc so managed to stop the screensaver on there by using information from http://raspberrypi.stackexchange.com/qu ... oing-blank

apt-get install x11-xserver-utils

Now open up your ~/.xinitrc file (if you don't have one then create it) and enter this:

xset s off # don't activate screensaver
xset -dpms # disable DPMS (Energy Star) features.
xset s noblank # don't blank the video device

Approach 2

On Pi 2 I have it auto-logging in and auto-starting to x using the raspi-config script use of lightdm. This seems to ignore /home/pi/.xinitrc

For this I used belt and braces.

The belt:

As per http://www.raspberrypi.org/phpBB3/viewt ... 66&t=11815

Edit /etc/lightdm/lightdm.conf
[SeatDefaults]
xserver-command=X -s 0 -dpms

The Braces:

Step 1. Do as per Approach 1

Step 2. Run the .xinitrc as an autostart script

cd ~/.config
mkdir autostart
cd autostart
vi screensaver.desktop

press "i" to insert, paste the following lines, then press the esc button and then ":wq" to save:

[Desktop Entry]
Type=Application
Exec=/home/pi/.xinitrc


Belt and braces wasn't quite as silly as it seems as I needed to auto-start qiv ayway, so there was no harm in running the xset commands.

I hope this information is useful to anyone else doing this sort of thing.


To complete the picture, the steps I took to set up my "poor man's photo kiosk" were:

1) Auto Login:

sudo vi /etc/inittab

Scroll down to: ’1:2345:respawn:/sbin/getty 115200 tty1′ and comment it out by changing the line to:
#1:2345:respawn:/sbin/getty 115200 tty1

•After that line add:
1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>;&1

2) Auto run x, from the sudo raspi-config menu

3) Hit the screensaver with a hammer as detailed above

4) Install qiv and setup as in original post, with the qiv options I needed.

sgegreen
Posts: 29
Joined: Thu Aug 30, 2012 2:08 pm
Location: Scotland

Re: Poor Man's Photo Kiosk

Fri Sep 28, 2012 11:36 am

Many thanks for this, I might be able to replace a ten year old PC at our local museum which is just running slideshows.

Next step, replace the ones that are running PowerPoint presentations and DVD images.

User avatar
piglet
Posts: 881
Joined: Sat Aug 27, 2011 1:16 pm

Re: Poor Man's Photo Kiosk

Mon Oct 01, 2012 9:32 pm

Last steps: Add a "shutdown button" to allow the box to run head-only (no keyboard, mouse, or internet).

Tested with these bits:

1) Electronic starter kit - including a breadboard and resistors needed: http://www.ebay.co.uk/itm/110887787457 (£9.99) It doesn't include any switches.
2) Female/Male Jumper leads: http://www.ebay.co.uk/itm/130761796863 (£4.40 for 40)

3) I scrounged a momentary switch from the inside of a broken toy one of my children bought in a jumble-sale...

Jumpers attached to +3.3v, ground, and GPIO17 as shown on the wiki. Circuit with switch, 10K pull-down resistor and 1K current limiting resistor exactly as on this link

Image

Python script placed in /home/pi/bin/button

Code: Select all

import RPi.GPIO as GPIO
import time
import os
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN)
while True:
  if(GPIO.input(17)):
    os.system("sudo shutdown -h now")
    break
  time.sleep(1)
Launch of code added to /etc/rc.local on the line before "exit 0" :

Code: Select all

python /home/pi/bin/button
Press button for 1 second to ensure it's polled, and the pi shuts down. Perfect. When the case and better switch I've ordered comes I'll pop the pi into the case, whip out the soldering iron, install the switch on the top of the case and I'm done.

User avatar
piglet
Posts: 881
Joined: Sat Aug 27, 2011 1:16 pm

Re: Poor Man's Photo Kiosk

Tue Oct 09, 2012 10:23 pm

Now all ready for testing at the school. http://www.raspberrypi.org/phpBB3/viewt ... 17#p191117

User avatar
fugitive
Posts: 2
Joined: Sun Oct 21, 2012 9:54 am

Re: Poor Man's Photo Kiosk

Mon Jan 21, 2013 11:48 pm

Let's make this a little easier.

This appears to work with a Raspbian "wheezy" install (I used the 2012-09-18 image).

First, install qiv (the slideshow software):

sudo apt-get install qiv

install in STANDALONE mode when prompted

create a directory /home/pi/slides
put the pictures you want as slides into that directory
pay attention to permissions and ownership for updating (see "chown" and "chmod" for later)

Note that you can start the slideshow by issuing the following from the command line of a terminal session:

(change the number "10" to the number of seconds for each slide to display)

qiv -fismd 10 /home/pi/slides/*.*

-f = full screen / -i = disable status bar
-m = zoom to full screen and preserve aspect ratio
-d 10 = duration of 10 seconds for each slide
/home/pi/slides/*.* = display all files in slides directory

Note: slides are displayed in alphabetical (by name of file) order

Here's where you turn off the screen blanking:

Edit
/etc/lightdm/lightdm.conf

add this line which should shut off the screen saver and disable dpms

xserver-command=X -s 0 -dpms

To auto start (see https://wiki.archlinux.org/index.php/LXDE)

Edit the global LXDE autostart file at

/etc/xdg/lxsession/LXDE/autostart

add the following line:

@qiv -fismd 5 /home/pi/slides/*.*

Reboot and you should be good to go. Just change the files in "slideshow" and reboot. You should get X to start up (LXDE) and qiv should autostart. In my example, each slide will show for 5 seconds. Every time you change the images in "slideshow" just reboot and you should be good to go!

User avatar
fugitive
Posts: 2
Joined: Sun Oct 21, 2012 9:54 am

Re: Poor Man's Photo Kiosk

Mon Jan 28, 2013 7:34 pm

Just discovered a useful to know caveat to my version of the kiosk (and probably anyone using QIV - Quick Image Viewer) at least with a 256mb Model B.

The size of the images may crash QIV. Mucking about, I'm now running 16 jpeg slides with none larger that 500kb, and most in the 200-300kb range.

That's not unusual with ANY image viewing program as they're all subject to hardware constraints.

I'm sure there are alternatives to this approach (running QIV inside Xwindows) but the elegance in setting things up is what I like best.

Negative-Zero
Posts: 2
Joined: Thu Jan 10, 2013 10:35 pm

Re: Poor Man's Photo Kiosk

Sat Mar 23, 2013 7:37 pm

Regarding the size limitations of QIV, there also seems like there might be a "photo-resolution" limit too.

I've had my photo frame running for a few months straight without any issues.
My primary slideshow folder has roughly 350 images so far, ranging in file size from 1-7 MB (right off my 16MP camera). I occasionally add photos to it (via bluetooth or wifi). This runs flawlessly, 24hrs/day.

I did encounter problems (QIV crashing) when I ran the slideshow out of a different folder that had a lot of panoramas in it. Even when the file sizes were all brought down below 7MB (like my primary folder), it would still consistently crash. I figured that QIV might be having trouble shrinking down the large format photos (which were as big as 22000x3000 in both landscape and portrait orientations) to fit the screen (QIV's -t option). When I manually scaled down the resolution of all the photos in that folder to be no grater than 8000 wide and 4500 tall, it seemed to have fixed the problem. QIV hasn't crashed since.

*Of course, with the max output resolution of the Pi being 1920x1080, there is no reason to have such high resolution images in the first place. Even my new reduced image sizes are still excessive.

** I'm using the RASPBERRY PI MODEL B, 512MB Ram

-NZ

CarlosRivin
Posts: 1
Joined: Mon Sep 30, 2013 12:50 pm

Re: Poor Man's Photo Kiosk

Mon Sep 30, 2013 12:54 pm

I liked the solution and I'm thinking of using it. I wish I could play videos in the middle of the sequence... any thoughts of how could i do it?

I was using a script viewing each photo with "fbi" and then going back for the videos but the "fbi" image player without any animations is kind of "boring".

KenT
Posts: 758
Joined: Tue Jan 24, 2012 9:30 am
Location: Hertfordshire, UK
Contact: Website

Re: Poor Man's Photo Kiosk

Mon Sep 30, 2013 5:32 pm

CarlosRivin wrote:I liked the solution and I'm thinking of using it. I wish I could play videos in the middle of the sequence... any thoughts of how could i do it?

I was using a script viewing each photo with "fbi" and then going back for the videos but the "fbi" image player without any animations is kind of "boring".
Might be worth looking at my Pi Presents if you want a multi-media solution. (see sig)
Pi Presents - A toolkit to produce multi-media interactive display applications for museums, visitor centres, and more
Download from http://pipresents.wordpress.com

tommelom
Posts: 3
Joined: Sat Jan 11, 2014 7:12 pm

Re: Poor Man's Photo Kiosk

Sat Jan 11, 2014 7:18 pm

I have build a photo kiosk myself and trying to configure it with qiv. But when I try to write to autostart and lightdm.conf I just get a "cant write to file". What do I do wrong?

Return to “General discussion”