Building an Inforad with Raspberry Pi and Geckoboard

6

The first time I heard the term inforad (information radiator) was while reading this blog post from Square's engineering team. Square built their inforads using Mac Minis which made sense at the time. I'm going to build inforads for Mediocre Laboratories using Raspberry Pis.

Like my last project, let's start by identifying some goals:

  • We need the inforad's computer to be small, at least as small as a Mac Mini so it can easily be mounted behind a large screen display. Raspberry Pi is perfect for this.

  • We'd like the inforad's computer to be as portable as possible. I'm not sure where in the office we're going to locate these things so I'd like to minimize the number of cables, power outlets, ethernet jacks, etc.

  • The inforad's computer needs to be able to run a modern web browser in order to run the Geckoboard application we're using to build dashboards.
  • The inforad's computer will be dedicated as an information radiator. Ideally, with the finish product, you wouldn't even know there's a computer there running a web browser. The computer and web browser should disappear and allow the content to surface as-if the dashboard application was built right into the display.
  • Outside the initial setup and configuration, the inforad computer needs to have zero maintenance. Information radiators don't work if someone has to connect a keyboard and mouse and sign in to them every morning.

Step 1: Equipment
Since this is my first Raspberry Pi I decided to purchase a starter kit rather than trying to assemble the components a la carte.

$61.99: CanaKit Raspberry Pi (512 MB) Complete Starter Kit (Raspberry Pi 512 MB + Clear Case + Micro USB Power Supply + Original Preloaded SD Card + HDMI Cable)

@lukeduff suggested I also get a USB keyboard with a touchpad for initial setup and configuration which was a great idea.

$25.32: Smart Touch Mini USB TouchPad Keyboard

Total: $87.31

Step 2: Raspberry Pi Assembly
The kit arrived in a couple of days and was straightforward to assemble without any instructions.

Boxed:
enter image description here

Unboxed:
enter image description here

Case:
enter image description here

SD Card:
enter image description here

WiFi:
enter image description here

USB Keyboard and Touchpad:
enter image description here

Micro USB Power Supply:
enter image description here

HDMI:
enter image description here

All together now:
enter image description here

Step 3: Raspberry Pi Initial Setup

After assembly, I connected the HDMI cable to my 46" Samsung TV. Then I removed the micro USB cable from the AD/DC adapter and plugged the cable to one of the USB ports on the TV. There's enough power from the TV to run the Raspberry Pi which eliminates the need for an extra power outlet.

Upon initial boot it prompted me to select an OS to install. I choose Raspbian since it was recommend:
enter image description here

That took several minutes:
enter image description here

Once the OS was installed I rebooted:
enter image description here

Then I was greeted with the raspi-config tool:
enter image description here

From the raspi-config tool I did three things.

  1. Enabled boot to desktop
  2. Setup the timezone for Central Time
  3. Went to advanced settings and disabled overscan (the image wasn't taking up the full display and I had black bars)

After a reboot I was in the desktop. I used the WiFi Config tool to connect to my network:
enter image description here

Once I had a network configuration I was able open up a root terminal and update the software and firmware by running these commands (be prepared, some of these take a long, long time):

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo apt-get install rpi-update

sudo rpi-update

Then I setup NTP to make sure the date and time is set correctly on the machine:

sudo apt-get install ntpdate

sudo ntpdate -u ntp.ubuntu.com

Step 4: Configure the Raspberry Pi as an Inforad

Once I had the network connected and updated the Raspberry Pi it was time to turn this thing into an information radiator.

Installed the Chromium web browser:

sudo apt-get install chromium

Needed to add some smoother fonts:

sudo apt-get install ttf-mscorefonts-installer

Setup Chromium to launch at startup. Kiosk mode makes the browser run full screen. Incognito mode prevents the “Chrome did not shutdown cleanly” message when the Raspberry Pi is turned off:

sudo nano /etc/xdg/lxsession/LXDE/autostart

ADD THIS LINE: chromium --kiosk http://your-dashboard-url.com --incognito

Made sure the screensaver doesn't turn on:

sudo nano /etc/xdg/lxsession/LXDE/autostart

REMOVE THIS LINE: @xscreensaver -no-splash

ADD THIS LINE: @xset s off

ADD THIS LINE: @xset -dpms

ADD THIS LINE: @xset s noblank

I also needed to modify the /etc/lightdm/lightdm.conf file:

sudo nano /etc/lightdm/lightdm.conf

ADD THIS LINE TO THE [SeatDefaults] SECTION: xserver-command=X -s 0 dpms

Last step was to remove the mouse cursor after the Raspberry Pi boots so it's not in the way of the dashboard:

sudo apt-get install unclutter

sudo nano /etc/xdg/lxsession/LXDE/autostart

ADD THIS LINE: unclutter

Step 5: Reboot and cross your fingers

After installing Chromium, setting it to auto-start in kiosk and incognito mode to our Geckoboard URL, disabling the screensaver, and hiding the mouse cursor... it's time to reboot.

I see the Raspberry Pi go through the traditional Linux boot sequence and into the desktop. I see the mouse cursor disappear. I see Chromium launch and BOOM GOES THE DYNAMITE. It works:
enter image description here

Here's a Vine of the boot sequence which takes about 60 seconds total