Raspberry Pi Wall Display

May was an interesting and fun month. I finished a project to build a big 3 x 3 TV wall display to be used at a call centre for the 2014 elections.  The requirement was to have 9 screens all operating independently that can have individual images sent to each screen or a single image zoomed across all 9 screens.

Pi Wall - Per Screen  Pi Wall - Zoomed

This screens are operated from a work station in the call centre that has an interface that allows the operator to navigate to, and select a particular map and send it to one of the screens or zoom across all 9.

Work Station

The control interface provides more data at a geographic level using mouse overs and allows the operator to switch between ward and municipal level details.

The available map types that can be displayed are:

Wining Party

Screen-Shot-2014-05-05-at-6.19.23-PM

Wining Margin

Winning Margin

Voter Turnout

Voter Turnout

The interface allows for selecting and zooming into a particular province as well as the standard pan and zoom functions.

Gauteng

The original plan was to have each Pi render its portion of the web page using a browser. However the D3 code was too heavy for the Pi’s CPU to handle and the final implementation was done using a bit of linux hackery.

Each Pi boots up into graphical mode and launches Iceweasel and connects to is particular page on a central server. There is a script that converts the page (SVGs and D3 manipulations) into a PNG image using wkhtmltopdf. While this was reasonably quick, each image was cached with memcached to prevent re-rendering images that had already been made.

The page displayed on the Pi is remotely updated from the server using the Remote Control Plugin, and this is all controlled using a browser window on the controller PC.

The pics below show the Pi army in all its glory. 9 RPi’s connected to 9 TVs with HDMI, all connected to the central server over CAT-5 and they are all powered using 2 x USB hubs.

Pi Army 1  Pi Army 3

I must to give credit to Richard (pictured at the top next to the Pi wall) for figuring out the server process to make this work. Always a pleasure to work with someone as capable as he is.

Ultimately, by using cheaper components, OSS and a bit of hackery, this project could be done fairly quickly and at reasonable price.

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *