The Hudson Lamp project is a quick and dirty way to add a physical dimension to the hudson test suite. It uses Hudson's RSS feed, an arduino, and a sparkfun relay kit to blink a red globe lamp when tests have failed.

About Hudson


  • Sparkfun relay control kit
  • Globe Ceiling Fixture
  • Red 25 watt light bulb
  • 2 AC cables, cut to length
  • Two or three prong outlet
  • standard nail mount electric box
  • Arduino Decimilia (or compatable)
  • A mac or linux computer you can leave plugged in near the arduino.


There are a number of ways of doing this, I opted to convert the globe ceiling fixture into a wall lamp since it matches hudson's red light graphic. You should have some working knowledge of arduino and basic wiring skill.

  • Step 1: Create an arduino-controllable relay box. The definitive instructable outlines the process fairly well, but you may want to save some time and use a product like the PowerSwitch Tail

  • Step 2: Program your arduino with the "blink" example, and connect the relay box to Pwr, Gnd, and Ctrl -> pin 13. Connect a lamp or other AC powered device and it should blink.

  • Step 3: Mount your lamp, attach it to one of the AC cables, and install a red light. Plug the AC cable into your relay box.

  • Step 4: Check out the git repo, and install the blinkoncommand.pde firmware on your arduino. Move the control pin from 13 to 12 (13 carries TX/RX so it gets some noise if you're communicating on serial all the time). You should be able to open the serial console and send "1" and "0" to control the blinking state.

  • Step 5: easy_install pyserial and feedparser, and edit hudson_serial.py with your appropriate feed data and serial port location. The easiest way to get your serial is to copy paste from "ls /dev/tty.usb*". You can test the script either by breaking some tests, or by changing the "entries" offset to a previous test run that failed.

  • Step 6: Schedule hudson_serial.py to run every few minutes. If you're having trouble, try leaving your Arduino serial console open in the background.