Beacon is an arduino sketch + assemblage designed to show the status of a continuous integration system through a set of IKEA Dioder lights.
It was designed to be the simplest way to implement a Extreme Feedback Device with a small incremental budget.
It uses a TLC5940 chip to control the leds without the need to use Darlington pairs, that reduces the necessary components from 24 (2 transistors * 4 Bars * 3 Color Components) to 2 (TLC5940 + 2k Resistor).
- Get a multicolor IKEA DIODER Lighting strip
- Get a Arduino UNO / MEGA / MEGA 2560
- The UNO is the budget choice, but it requires some hardware hacks to work with an ethernet shield
- The Mega[2560] is simpler to assemble, has room for future functionality, but it is pricier
- The project was tested on a Arduino Diecimilia and a Arduino Mega - old version, it runs on a 16k Arduino, so, you can use an older Arduino.
- Hardware part list
- 1x Standard Breadboard
- 1x TLC5940 chip
- 1x 2K Resistor
- 4x "Polarized 4 pin male headers" (google for this)
- Single-strand wire in assorted colors (see schematics)
- Install the Arduino IDE
- Get the TLC5940 Arduino library from http://code.google.com/p/tlc5940arduino/
- Apply the changes described in the README file inside the Arduino sketch folder to the Ethernet and TLC libraries in the Arduino installation.
- Open the arduino sketch and upload it to the arduino (don't forget to either disable ethernet or create the ipconfig.h file).
- Use the diagram in the fritzing folder and the README in the Arduino project folder for assembly instructions.
- Use a 12V transformer to power the arduino. Using the supplied instructions, the lights don't have to be powered separately.
After assembling the board and uploading the sketch, powering the arduino will set the lights to test mode: each set of leds will be lit one by one on each bar. To send commands to the arduino, open the Serial Monitor (on the Arduino IDE) and send the commands (without the quotes): "g!.w;" and then "b.p;" or "r.a;"
If you decide to give up after steps 1 or 2, you still have a cool lamp and possibly a nice start for other projects.
If you get to this point, you can already use or dioder lights as an XFD device (even on the breadboard.)
If you are going for the long run:
- (Optional) Get an Arduino Ethernet Shield (v5 is easier to use with an Arduino Mega)
- Use a v4 shield if you already have one, or if you want to go cheaper (while stocks last)
- Use a v5 shield if you are using an Arduino Mega
- Do the same assembly on a stripboard. Part list:
- 1x Stripboard (Big/small enough to use as a shield)
- 1x DIP28 Socket (Don't solder the TLC directly to the board)
- 1x "Shield stacking headers for Arduino" or similar (Check the adafruit site)
The processing folder contains a project that changes colors on the bars and shows the alert mode.
The node.js folder contains an application that updates the arduino via ethernet (currently there's no reliable support for serial port on node.js).
Currently supported continuous integration / monitoring systems:
- Hudson - via its json api.
- Nagios - via nagiosity.js.
The application is very customizable, and is prepared for building support for other systems.
Use this assembly at your own risk. I take no responsability in any hardware damage resulting of this project.
(The MIT License)
Copyright (c) 2010 Luis Reis
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.