TweetSign: A Scrolling LED Twitter Display

Project Overview

The purpose of this project was to develop a scrolling LED sign with an embedded system capable of wirelessly interfacing with the Twitter social networking service. The embedded system is built on an ASUS wireless router running a specialized version of Linux. Python code running on the router downloads information through the Twitter API and updates the sign over an RS-232 serial interface. The sign is configured over local network via a web browser by accessing the system's PHP-enabled web server. Authenticated access is achieved by connecting to a third-party server that requests access from Twitter. The final product supports a variety of configurable operating modes.

TweetSign Front

TweetSign Back

When the original product became unreliable, the design was reworked to take the load off the router. The final working version of the product includes a third party web server which does the heavy lifting of the Twitter API calls through a PHP library. It then outputs the text when a certain page is requested with a specific id and keycode. Now all configuration is done online through the server as opposed to over local network.

The information provided on this page is for the original submitted design. It is important to note that all of the code has been tested and is working. Using a faster router could solve the reliability issues.

Design Overview

The design for the TweetSign is based around the ASUS WL520GU wireless router. The router runs the OpenWrt operating system, and all high level tasks are carried out by the Python interpreter. The user can connect to the TweetSign via a web browser on the local network. A web interface can be used to configure wireless connectivity, as well as tweet display options. The router uses the Twitter API over a wireless internet connection to download tweets based on the user's settings. These tweets are sent over a serial connection to a scrolling LED sign, which displays the tweet. For authenticated access to Twitter, a third party server is necessary. The server acts a middle-man and temporarily stores the access token until the TweetSign can download it.

Design Overview

Operating Modes

As far as the operating modes are concerned, the TweetSign can:

The random tweets mode pulls tweets from all around the world. As a result, many of the tweets are in a foreign language using non-ASCII characters. These tweets will not be displayed on the sign. Private Twitter users cannot have their tweets displayed on the sign unless the TweetSign user who is following those users has authorized TweetSign to access the home timeline. The configuration for accessing the home timeline is more complicated than the other modes and temporarily stores the user's token on the online web server for a short period of time. For the two trending topics modes, the user can further specify whether to include all trends, to show everything but hashtags, or to show only hashtags.

Bill of Materials

Construction of the TweetSign requires the following materials:

Part Cost
ASUS WL520GU Wireless Router $35.00
Ultra-Glow-2T Indoor Brightness Red 26" LED Sign $110.00
USB Flash Drive $5.00
USB Hub $6.00
Acrylic for Casing $11.00
16x 6-32 3/4" Zinc Machine Screws w/ Hex Nuts $2.00
Mounting Tape $0.50
Total $169.50

Links and Files

The link for the project report from the WPI e-Project website is provided below. The python and PHP files from both the old design and the new design are also provided. In addition, the configuration page user interface is available as a demo.

Project report (submitted 02 March 2012)

Python and PHP files for original design

Python and PHP files for redesigned version

UI demo

Credits

The project was completed in 2011-2012 by two undergraduate students, Andrew Creeth and Ajay Dhesikan, for their undergraduate capstone design project (Major Qualifying Project, or MQP). The project was advised by Professor Brown.