Warning Livedoc is no longer being updated and will be deprecated shortly. Please refer to https://documentation.tjhsst.edu.

Signage Displays

From Livedoc - The Documentation Repository
Jump to: navigation, search

Signage Displays consist of Raspberry Pi devices running as a full-screen browser kiosk that provide bell schedule, announcements, and eighth period information in public locations around the school. These are being added throughout the school as renovation completes, and are part of the senior research project of sysadmin James Woglom.

The software for the device uses the minimalist surf browser running on Raspbian, pointing to https://ion.tjhsst.edu/signage/display/$name?mac=$mac. Each location consists of one landscape monitor/TV or two monitors in portrait. While initially requested from the Eighth Period Office to allow for digital, as opposed to paper, eighth period activities lists, their role has now been expanded and, along with the renovation, are helping to build a connected TJ.


Initial test setup

The first set of monitors was set up in the Gandhi Commons using excess hardware, including original Raspberry Pi Model B's, and two 24" Sun monitors likely received with the Sun Academic Excellence Grant (AEG). They were installed in December 2015. This setup was replaced in April 2016.

  • 2 x Raspberry Pi 1 Model B
  • 2 x 24.1" Sun Monitor
  • 2 x Tilt monitor mount
  • Gigabit ethernet switch

First phase

The first official displays were installed in the Einstein (Chemistry) Commons in February 2016, and include:

  • 2 x Raspberry Pi 2 Model B
  • 2 x 24" Planar PCT2485 Touchscreen Monitor
  • 2 x Tilt monitor mount
  • Gigabit ethernet switch

In April 2016, the initial Gandhi Commons monitors were upgraded to:

  • 2 x Raspberry Pi 2 Model B
  • 2 x 27" Planar PCT2785 Touchscreen Monitor
  • 2 x Tilt monitor mount (existing)

Additional monitors in the CSL were set up with excess Raspberry Pis.

Gandhi commons - 2 x 27" touch panels

Drop C-004B - Switch CC01.tjhsst.edu-fa0/11, vlan 22 10

Connected to Gigabit switch serving:

pi2-gandhi-a.csl.tjhsst.edu (

pi2-gandhi-b.csl.tjhsst.edu (

Einstein commons - 2 x 24" touch panels

Drop A-121B Switch XX05.tjhsst.edu-Gi1/0/37, vlan 22 10

Connected to Gigabit switch serving:

pi2-einstein-a.csl.tjhsst.edu (

pi2-einstein-b.csl.tjhsst.edu (

200D - 1 x 60" TV

On flipflop switch, vlan 1800

pi2-200d.csl.tjhsst.edu (

200C - 1 x 42" TV

LOCAL drop M135-B

pi2-200c.csl.tjhsst.edu (

200 - 1 x 42" TV

This pi displays Kanboard instead of Ion.

LOCAL drop M-119B - Located in Room 200, labeled as 200A

pi1-200a.csl.tjhsst.edu (

Second phase

The second phase of displays was installed in the Nobel (Entrance) commons, near the exit door to the courtyard, and the Galileo (front hallway) commons areas, and include:

  • Raspberry Pi 2 Model B
  • 42" Elo 4243L Touchscreen TV
  • Tilt and swivel monitor mount (with arm)

Nobel commons - 1 x 42" touch panel

Drop F-022B, vlan22 10

Galileo commons - 1 x 42" touch panel

(BROKEN) Drop F-032A, Switch FF02.tjhsst.edu-Gi1/0/5, vlan22 10

Drop F-032B, Switch FF02.tjhsst.edu-G1/0/7, vlan22 10

Third phase

The third phase of displays was installed in the upstairs Library hallway (near the internet cafes), Franklin (Career center/Student Services) Commons, and Curie (near Syslab) Commons. Due to a lack of network drops in these spaces, and the inability to install new drops until the conclusion of renovation, these use the integrated Wi-Fi card on the Raspberry Pi 3. They connect to a MAC filtered network "tjhsst", which is part of vlan 10. Two Pi 3's were purchased for testing at the beginning of the second phase.

  • Raspberry Pi 3 Model B
  • 42" Elo 4243L Touchscreen TV
  • Tilt and swivel monitor mount (with arm)

Pi3-1 (testing)

wlan0: b8:27:eb:cb:82:d8 eth0: b8:27:eb:9e:d7:8d

Pi3-2 (testing)

wlan0: b8:27:eb:f1:f3:63 eth0: b8:27:eb:a4:a6:36

Fourth phase

The fourth phase of displays are to be installed in the Cafeteria (at the conclusion of music wing construction, due to temporary band use), Physics or IBET commons (to be opened by June 2016), upstairs Math/Humanities commons (to be opened by September 2016), and Audlob Commons (to be opened by December 2016). Because final locations of these displays, and availability of power and network drops, is currently unknown, it is unknown whether these displays will use Wi-Fi or wired networking. If available, newer Raspberry Pi models or another microcomputer may be used.

Raspbian Image Setup

From a stock Raspbian image:

  • Run raspi-config, expand filesystem, enable auto-boot to terminal
  • Install script dependencies:
   sudo apt-get update && sudo apt-get install -y feh surf i3 xwit xinput
  • Modify the end of /etc/rc.local to include:
   su - pi -c 'xinit' &
   exit 0;
  • Copy .xinitrc, .i3/config, and bg.png from another working display to /home/pi, and make modifications for touchscreen setup, etc in .xinitrc as needed:
   scp pi2-nobel:.xinitrc .
   scp pi2-nobel:bg.png .
   mkdir .i3; scp pi2-nobel:.i3/config .
  • Add crontab and ntp script
   scp pi2-nobel:/etc/crontab .
   sudo cp crontab /etc/
   scp pi2-nobel:/usr/local/bin/ntp.sh .
   sudo cp ntp.sh /usr/local/bin/
  • Modify /etc/X11/Xwrapper.config to give the pi user permissions to install the X server:
  • Modify /home/pi/.i3/config to include:
   new_window none
   bar {
       status_command i3status
       mode hide
  • Update NAME environment variable at top of .xinitrc:
   export NAME="pi3-curie"
  • Update hostname
   sudo -i
   echo pi3-curie > /etc/hostname
   hostname pi3-curie
  • If a portrait display, add to /boot/config.txt:
   display_rotate=1 #90deg
  • Reboot

Only complete this process for a new model of Raspberry Pi; use a pre-existing image for Pi 1, Pi 2, or Pi 3 models for successive display setups.

For hostnames, use the format pi[ver]-[location] or pi[ver]-[location]-[a,b] for multi-display setups.

Wi-Fi Setup (Pi 3)

  • Edit /etc/wpa_supplicant/wpa_supplicant.conf
   ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
  • Modify the MAC line in .xinitrc:
   export INTERFACE="wlan0"
   export MAC=$(ifconfig|awk '/HWaddr/'|grep $INTERFACE|awk '{print $5}')
  • Add to the beginning of .xinitrc, before the while loop:
   sudo ifup wlan0
   echo Waiting for network...
   while ! ping -c1 ion.tjhsst.edu &>/dev/null; do :; done