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)
Re: Poor Man's Photo Kiosk
Correction: .xinitc should be .xinitrc. Sorry.
Re: Poor Man's Photo Kiosk
Nice. How do you turn off the screensaver? I see lots of threads and no sensible answer....
Re: Poor Man's Photo Kiosk
Aha! Got it.piglet wrote:Nice. How do you turn off the screensaver? I see lots of threads and no sensible answer....
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.
Re: Poor Man's Photo Kiosk
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.
Next step, replace the ones that are running PowerPoint presentations and DVD images.
Re: Poor Man's Photo Kiosk
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

Python script placed in /home/pi/bin/button
Launch of code added to /etc/rc.local on the line before "exit 0" :
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.
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

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)
Code: Select all
python /home/pi/bin/button
Re: Poor Man's Photo Kiosk
Now all ready for testing at the school. http://www.raspberrypi.org/phpBB3/viewt ... 17#p191117
Re: Poor Man's Photo Kiosk
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!
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!
Re: Poor Man's Photo Kiosk
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.
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.
-
- Posts: 2
- Joined: Thu Jan 10, 2013 10:35 pm
Re: Poor Man's Photo Kiosk
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
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
-
- Posts: 1
- Joined: Mon Sep 30, 2013 12:50 pm
Re: Poor Man's Photo Kiosk
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".
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".
Re: Poor Man's Photo Kiosk
Might be worth looking at my Pi Presents if you want a multi-media solution. (see sig)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".
Pi Presents - A toolkit to produce multi-media interactive display applications for museums, visitor centres, and more
Download from http://pipresents.wordpress.com
Download from http://pipresents.wordpress.com
Re: Poor Man's Photo Kiosk
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?