A Raspberry Pi based tabulatron
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



The RaspberryPi flavour of the Tabularon

Written by: Tim Ribaric

piTab 3.0

This is the 21st century version of an electronic tabulation device first appearing in code4Lib journal. Basically this device, once configured, will send a value to a Google Spreadsheet that corresponds to one of the 6 buttons on the device. The handy picture above is how we have it configured. You essentially make HTTP GET commands against that form and it will populate. Details in that link. So instead of tick sheets at your help desk, you can use this device to track.

This version of the tabulatron is fully autonomous. Once you have the device connected and running it will communicate to the web directly (Used to be Arduino connected to a CPU... it was very fussy)

If using a RaspberryPi 3 you can use the onboard wifi to connect to Eduroam.

Part List

  • 2 LEDS (different color)
  • 6 push buttons
  • 330 OHM resistor
  • AdaFruit RaspiZero Proto Shield
  • some small gauge wire to connect the buttons
  • To encapsulate it all I printed this Raspberry Pi case

Solder time

Hopefully the two images (one above and the one below) will give you the jist. The only tricky part is soldering on the resistor underneath the proto board along with the jumper wire from the ground on the other side of the board.

proto under


  • Setup your micro SD card with the basic version of raspberry Pi
  • Use sudo raspi-config to have the device automatically boot and login to CLI
  • Download/Clone the software from github (if you are reading this look for the download button up and to the right)
  • The bash script deploy does most of the automatic processes
  • edit setttings.py to set what 6 URLs you want the software to try to grab for each button
  • sudo python3 piTab.py in the directory where you cloned it will start up the application

Network Config

  • You can connect the pi either using a LAN cable for Wifi
  • There is lots of info out there about connected to a WPA2 wifi network using CLI. Heres a good one


  • It is possible to connect to an eduroam network with just the bare amount of fussing as follows:

  • sudo nano /etc/network/interfaces

  • add the following 4 lines

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

  • Then you will need to edit the wpa supplicant file to localize

  • sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

  • add the following (use in house directives as necessary)

ctrl_inter=DIR=/var/run/wpa_supplicant GROUP = netdev

network = {
  • You can add other network descriptions here as well
  • Once you reboot you should be able to get an IP

Make script run on startup

  • add the following line to your crontab @reboot sudo /home/pi/piTab/boot_script
  • details on cron can be found here


  • A log of button presses is kept in button_log.log, this is useful for debugging
  • Two lights, one stays on to let you know that it is working, both blink on each button press
  • If the one light light shuts off, time to reboot/troubleshoot
  • You do not have to plug in a monitor/keyboard, once you configure it to run on startup you can <Ronco>set it and forget it </Ronco>
  • <EASTER EGG>You can force a connection test, check the code to see if you can find out how </EASTER EGG>
  • Hopefully code is readable. Need help? Let me know