Building brighter lab resources


Our group’s main project, busbus — a common interface for live transit data from any agency (more details and our full project proposal here next week) — seems like it needs some interesting applications of the software.

From what I can tell, the standard CS capstone project here at KU is usually something with a end-user or consumer focus. We’re taking a bit of a different route by focusing on developers… but how do you present that to a boss, investor, or more importantly, someone who’s going to give you a grade?

The end goal is to build this API, and then build cool things with it. Something tangible, and more importantly, something most people can start using. In our mind from the beginning of the project was an LED board that told you when the next bus was going to arrive at the stops near Eaton Hall.

So we built that LED board.

Hello, world

Inspired by Pavel Shved’s Muni LED sign, the end goal is to rotate through the various routes that stop near Eaton and Murphy Halls, and show their next two arrivals (or so).

We were initially going to be quite lazy and just buy the LED board Pavel used, but it was out of stock at the time, and Prof. Gill thought it might be a good idea to have something to show in the lab before the event held last night, honoring Dr. Min Kao’s gift to the School of Engineering.

Components

Humble beginnings

The board is made up of three 16×32 RGB LED matrix panels from Adafruit — usually used to make large video walls — and the (new!) Raspberry Pi Model B+, along with a laundry list of components to hook the two up to each other and to power.

Alex wiring up the board to be installed on the plexiglass

The hardware itself is uninteresting — we’re not electrical engineers, so we followed Adafruit’s tutorial on daisy-chaining the LED displays. The interesting part is software: we wanted to make a web API for anybody in the lab to use.

Controller code

The code is, of course, available online — it’s a board controller written in C++ using Henner Zeller’s library for controlling RGB LED boards with the Raspberry Pi GPIOs and a smallish CherryPy web server to feed requests through to the controller.

Basic web interface

LaaS (LEDs as a Service)

The goal here is to make this LED board a service that our lab — not just this year’s, but future years’ — can use for their projects. Our interface isn’t quite there yet; text rendering can use some work, documentation needs to be written, and a lot of features need to be added to the web interface before we’ll call this done.

But damn, did it make our lab a lot less boring as people toured it last night.