Pi Presents offers an extensive set of features to create interactive multi-media display applications.

Pi Presents is aimed at people who want to build multi-media applications, not computer geeks! No programming is required as it has simple to use editing facilities to  produce applications to meet your exact display requirements. Several templates and examples are provided and there is a comprehensive tutorial style manual.


The applications you can use it for  include:

  • Animation or interpretation of museum exhibits by triggering sounds, video, or a slideshow from a button, keyboard, or GPIO inputs.
  • While playing media GPIO outputs can be used to control external devices such as lights, moving machinery, animatronics etc.
  • Multi-media shows for  visitor centre. Images, videos, audio tracks, and messages can be displayed. Repeats can be at intervals or at specified times of day.
  • Allow media shows to be interrupted by the visitor and a menu of alternative shows to be presented.
  • Giving presentations where progress through slides is manually controlled by buttons or keyboard. The presentation may include images, text, audio tracks and videos.
  • Using Liveshow you can dynamically upload image, video or audio tracks over the network for display in a repeating show.
  • Run multiple shows simultaneously so that more than one exhibit can be controlled from one Pi or complex interactive exhibits can be controlled.

There are potentially many applications of Pi Presents and your input on real world experiences would be invaluable to me, both minor tweaks to the existing functionality and major improvements.

Once set up, use of Pi Presents is easy to use and does not require a network:

  • Shows can be prepared using a simple to use editor on a Windows PC or a Linux box.
  • Will operate on a Model A Raspberry Pi (but see hardware requirements).
  • No need to modify the Pi’s SD card after initial installation. All media and configuration options can be kept on a removable USB stick. Installing a new application is as simple as inserting the USB stick.
  • Control can be by buttons, PIR, or any source of digital inputs. It is straightforward to make your own controls in a box containing the Pi, or perhaps a wired remote. Alternatively a keyboard can be used.
  • Video track is selectable between HDMI or composite using the normal Pi setup procedure.
  • Audio track output is selectable between HDMI and analogue and can be output from left, right or stereo speakers on a per track basis. A number of tracks can be played simultaneously.


Pi Presents, out of the box, runs as a desktop application on the Raspberry Pi using the keyboard for control. However with a little bit of Linux magic, which is fully explained in the manual, it can be made to run as a black box application with control from GPIO. Black box features include:

  • Disabling screen blanking
  • Full screen operation without window decorations
  • Black, coloured or an image a a background behind videos and images
  • Completely headless operation without a keyboard, mouse or buttons (except perhaps a shutdown button if you are not brave)
  • Optional operation with push buttons or PIR through GPIO. Input and output pins are fully configurable.
  • Automatic start up when power is applied to the Pi
  • All media can be on a USB stick or on the SD card
  • Safe shutdown without using  keyboard or mouse
  • Foreign language support.

FEATURES – Version 1.2 [pipresents-next]

Version 1.2 [pipresents-next] is currently the stable version which you should use if you are beginning Pi Presents. It has the following features:

Play video tracks using omxplayer
All omxplayer formats supported
Interactively pause and stop videos
Choose HDMI or analogue sound
Add a background image and text specific to this track
Display videos in a window or fullscreen

Display image ‘tracks’ with pre-defined duration
All Python Imaging Library formats supported
Add a background image and text specific to this track
Display images in a window or fullscreen

Display multi-line text messages with specified font and colour.
Specify the duration
Add a background image and text specific to this track

Play audio tracks using mplayer
Play any audio format that can be used played by mplayer
Choose HDMI or analogue sound
Choose left, right or stereo
Volume of a track can be set.
Add a background image and text specific to this track

Play local or remote web pages using the UZBL browser
Use ‘browser commands to play a sequence of pages
Display pages in a window or fullscreen

Tracks can be shows so it is possible to select a show to play in addition to a track to play.

Display any type of track in sequence
Repeat sequences at intervals
Trigger a oneshot sequence from keyboard, button, or GPIO input
Advance between tracks automatically and/or using keyboard or buttons
Allow another show (typically a menu) to be selected while playing any track.
Add a background image and text which is the same for all tracks in the show
Time of day triggers for liveshow and mediashow, start a show at a time of day, end a show after a period of time or at a time of day.
When waiting for time of day can display the time of the next show.

Display a menu of tracks
Control the menu using just three keys Up, Down and Play
Control the menu using keyboard, button, or GPIO input.
Design horizontal or vertical menu layouts using thumbnails, icons and text
Add a background image and text to the menu

Display a sequence of tracks
Tracks are taken from pre-defined directories which may be dynamically populated.

Select tracks using buttons like the station tuning buttons in a car radio.
The selection screen can play videos, images or audio, or be a show.
Use keys, buttons or GPIO to select the track
Add a background image and text which tells the customer what to select.

A type of show which is behind touchscreens in most museums
Design shows in which pages have hyperlinks like the links in a browser to allow the customer to navigate through pages.
Incorporate Home and Back controls
Incorporate multi-media into pages.
Supports touchscreens with touch sensitive areas which optionally show buttons or legends depending on the requirements of an individual page.

Play two or more shows simultaneously but only one can use the screen.
Controls can be disabled for chosen shows (good for audio background tracks).

Full screen without decorations, disable blanking
Auto-start at power on
Safe shutdown using GPIO buttons
Windowed operation for developing applications

Turn GPIO outputs on or off synchronised with tracks.
Send a timed sequence of GPIO outputs
GPIO is configurable, assign GPIO pins to controls, trigger inputs, or animation outputs.
GPIO inputs have hysteresis and auto-repeat.

Editor works on a Raspberry Pi or a Windows PC (also Linux boxes, not tested)
Easy transfer of application data (profiles) from PC to Raspberry Pi
Application data (profiles) can be on SD card or USB stick, or FTP’ed to the Pi..


This beta is a stable version of the next major version. It is a beta because it is likely to have a few latent bugs and I am regularly adding features to it which may require updates to the code to be downloaded and to the profiles (straightforward). It needs you to feedback any usability issues to me.

The beta adds the following Features:

Gapless transitions between tracks. The transitions are not seamless but give a much improved feel to shows.

Multi-window, many shows can be run concurrently sharing the screen.

A much improved time of day scheduler which will work for any type of show and can vary the schedule by day of the week, day of the month, or special days.

Remote control system using the Open Sound Control protocol so Pi Presents units can be networked together or Pi Presents can control or be controlled by any other computers supporting OSC, including IOS and Android.

Many improvements to the triggering and sequencing of mediashows and liveshows.

Touchscreen support is now provided for all types of show.

Statistics logging

API to allow remote management

Browser based manager and profile editor for remote management

Many small enhancements See the Changelog here