LED RSS Job Status Indicator - Overview

  This project uses an Arduino to control Adafruit Neopixels. The Arduino communicates with a PC over USB serial connection to receive commands to drive RGB LEDs to refect Jenkins jobs status.

For linux support, see the Google Feedback form.


Application Demonstration

Here is a video demonstrating the application on Adafruit's Show & Tell. The demo starts at 12 minutes and 31 seconds into the video:


Hardware

This project uses the following hardware:


Assembly

Here is the pin out mapping for the circuit:

Arduino -> NeoPixel Strip

  • 3V -> + pad
  • GRD -> - pad
  • D6 -> arrow pointing inward


Software

Arduino IDE

This project uses the Arduino IDE to program the micrcontroller.

See the follow site to obtain the latest IDE software:

Downlaod the Arduino IDE


Java 8 (or better) JRE

At the time of writing this, the current JRE is available here: http://java.sun.com


Java RXTX

The application requires a native executable of RXTX. I found a 64bit version of rxtx for Windows here:

  • http://www.openremote.org/display/forums/Zwave+rxtxSerial+dll+Can't+load+IA+32bit

The Linux executable is a .so file, and can be found on the same site.

A local copy of the MS Windows version is here.


Application Installation

Download the application's executable JAR from the build server; it is JAR labeled 'with-dependencies'.

The main class for the application is JenkinsRssPoller. See that class for more details on how to run the app with the serial port specified as a command line argument.


Usage

Start the app with this command:

  • java -Djava.library.path="C:\home\world\installs\software-development\java\ch-rxtx-2.2-20081207-win-x64\ch-rxtx-2.2-20081207-win-x64" -jar continuous-integration/extreme-notifications/target/extreme-notifications-1.0-SNAPSHOT-jar-with-dependencies.jar

To run/debug from Netbeans, add the -Djava.library.path="C:\home\......" path above to the VM arguments via 'Right Click Project' -> Properties -> Run.

Once the app is running you will see the status of the polling on the console and the Neopixels turn colors based on the status of the configured Jenkins jobs.


Going Further

This project is open source. You can modify it to meet your preferences.

Some ideas to extend the application include:

  • adding different Jenkins jobs besides the built-in ones
  • instead of polling the RSS find a way to use WebSockets
  • externalize the known job status descriptions to a properties file



Resources

Source Code

The source code is on Github.

See the Maven project under 'continuous-integration/extreme-notifications/'