"Presenter Pi" is a little Pi Zero project that is a little gadget that boots into a LibreOffice presentation running in a raw X session straight over HDMI and also via VNC over an ad-hoc wifi hotspot it starts up. Navigation thru the presentation is controlled via a Skywriter pHAT.

still scribbles

The Hardware

  • Pi Zero
  • SkyWriter pHAT
  • Small external phone battery pack
  • wifi dongle

The Software

  • X (no display/window manager needed)
  • LibreOffice
  • vncserver
  • Skywriter Python library


  • tap North -> Start presentation (F5 key)
  • tap South -> Finish presentation (Esc key)
  • swipe South-to-North -> top of presentation (Home key)
  • swipe North-to-South -> end of presentation (End key)
  • tap East = swipe East-to-West -> next slide (Page Down key)
  • tap West = swipe West-to-East -> previous slide (Page up key)
  • tap Centre -> Enter key (in case of odd dialogs)
  • tap North, East, South, West -> Reboot ("sudo reboot") (rotate Right = Reboot)
  • tap North, West, South, West -> Shutdown ("sudo shutdown -h now")


  • Skywriter is a very neat little device, but it does take some practice to reliably trigger the right event every time. It's also very weak at detecting Z-axis (height), so it's best to treat that as a binary event (within 3cm-ish of the surface, or not near it).
  • Ad-hoc Wifi network connections are not supported by stock Android phones. Although they technically can handle it, the network manager app explicitly hides any ad-hoc networks *. That is a really obnoxious move on Google's part. It would literally have been less work for them to support ad-hoc networks, than to cripple their OS. Ah well, rooted devices with alternative network apps cope ok, as do iPhones.
  • vncserver needs to know how big an X display you want, since there isn't a physical display to work with. So you'll need to pick a standard screen size that works well for your presentations and any client devices that you expect.

* Yes I know about Wifi Direct being a "new and improved" way of trying to achieve the same end as ad-hoc wifi. That doesn't in any way invalidate the fact that deliberately crippling your software to explicitly break a reasonable use case, that would have worked if you had done less work, is a total arsehole thing to do.

Previous Post Next Post

© Me. Best viewed with a sense of humour and a beer in hand.