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. Many 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 browser based editor on the Pi or on other machines on a local network .
  • Will operate on any model of 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 as 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] has been superseeded by [pipresents-gapless]. The features of the two versions are shown separately so that current users can see the differences.

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..


‘Gapless’ is the current stable version.

Its key feature is gapless transitions between tracks. The transitions are not seamless but give a much improved feel to shows.

Other additional features:

– 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 QLab, IOS and Android.

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

– Many improvements to track display

– Touchscreen support is now provided for all types of show.

– Statistics logging

– An improved browser based editor which can be run on the local Pi or on other machines on a network. The original editor has been retired.

– Browser based manager for remote management of Pi Presents, running applications, editing, uploading and downloading profiles

– Track Plugins – developers can code Python programs that augment the basic capabilities of track players, this includes writing directly to the display and reading values, including text, from input devices.

– I/O Plugins – The Input/Output device drivers have been separated out from the core of Pi Presents and have a defined API so that I/O plugins can be written for new devices. The provided plugins continue the support provided by ‘Next’ and there are several additional I/O plugins to demonstrate the techniques for new devices, but these may require modification for your own devices:

keyboard (re-structure of original)
gpio (re-structure of original)
enhanced keyboard allowing strings to trigger events and be read by track plugins
Wireless remote controls and other input devices that use evdev (specially OSMC remote
UART (through USB) for RS232 interface and projector control
Pimoroni Four Letter Phat via I2C
Pimorini ScrollHD Phat via I2C
ADC via I2C
DAC via I2C

PN532 based RFID tag readers

Counters – use Show Control commands to increment the value of counters. These can be read by track plugins and allows interactive quizzes to be implemented. The enhanced keyboard I/O plugin allows strings to be entered so that answers need not be multiple choice.

The Raspberry Pi camera can be used in Pi Presents to display live video and to take pictures. The feature is implemented as a track plugin so details of its use can be varied.

Pi Presents can now send email alerts when it starts, exits, or detects an error

Media can now reside inside a profile so that profiles can be made stand alone

Direct linking of GPIO input and output to allow LED indicators on buttons

Simple video playout facilities. Video tracks now have ‘freeze at start’ which give an instant start for video playout applications. Advanced use of RealVNC allows a virtual management screen and the primary video screen