Software to run LED signs to show community information like bus arrival times and event calendars
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Realtime Community Signage

This code lets set up and run a cheap realtime community sign with a off-the-shelf router and two scrolling LED signs. All the content for the sign is managed by a centralized server, where you can pick transit or calendar information to display on the signs.

This is part of the Lost In Boston Realtime project of the MIT Center for Civic Media. This project is about helping people work together to make their neighborhoods more visitor-friendly. Community groups are partnering with local businesses and institutions to install digital signage that call out useful information in their area.

Read the for detailed setup instructions.

Quick Start

First make your own config file by copying config.ini.template to to config.ini.

Serial Port Configuration

We talk to the LED Signs via USB-Serial adaptors (cheap Prolific brand). Edit your config.ini file to be something like this:


Server Communications

If you just download and start the code, the sign will display content from the content.xml file included. However, it is intended to fetch content from a server, so it can display realtime information. If you want to have the sign realtime content from a server, you'll need to install our Community Sign Server software on a server. Then

Our software is designed to source community transit and calendar information from a central server. However, out of the box we have included a content.xml file that is used instead of live data from a server. To talk to a server set the variables in the Server section of config.ini and delete the content.xml file.

BOM (Bill of Materials)

For our pilot test, here is the set of hardware we used.

Total cost $300

Server API

When the software queries the server it passes along the following arguments on the end of the url:

  • serial: the serial number set in your config.ini
  • secret: the secret key set in your config.ini
  • codeVersion: the version number of the code
  • protocolVersion: the verson number of the xml protocol it expects to receive
  • status: the current status of the sign (one of the SignController::STATUS_* constants)

The server's resonse is identical in format to what is shown in the content.xml file. The <info> tag holds the content for display on the sign. For two-line signs, you should separate each line with a EOL. The only <command> recognized for now is restart. This command will restart the client software.