Thursday, February 23, 2012

Hardware Hackathon with Arduino and LEDs

Recently I was invited to BetaSpring's Hardware Hackathon. And by invited, I mean I filled out a free online signup form. I was very excited for the hackathon - all my projects have been extremely software based, and I have very little experience playing with hardware.

I won't keep you in suspense: it went extremely well! I even ended up in the Providence Journal (the major Rhode Island paper):


That's not me in the picture, but I did make it into the very first sentence. I believe the reporter captured my quotes perfectly: "Yeah, you all bailed at like 2:30." I feel like I shouldn't be proud of that one, but I am anyway.

The Project
With my limited hardware experience, picking the project was a big deal. I had very few ideas of what to work on. In the end, I decided to make right one of my colossal failures. Some months ago I broke the taillight of my boss's truck while carrying some heavy equipment. My project plan: to resurrect the cracked taillight and bring it back to light.

The plan was to install replacement LEDs in the taillight, powered by an ethernet enabled microcontroller. I would be able to flash the LEDs from any computer over a network.

The project was a good fit for my skillset. It would force me to learn about electrical wiring (power supplies, resisters, LEDs) and Arduino programming. Although I had never used the Arduino, I was confident would have no problem. I was more apprehensive about lighting up the LEDs, since it would involve soldering and other hardware skills which I am unfamiliar with.

A Taillight, Resurrected
With help from the fabrication lab of AS220, I was able to get the hardware set up on the first day of the hackathon. I used the overnight time to get the Arduino programmed and talking over ethernet.

Here it is, in all its blinking glory:




You can find the Arduino controller code on github.

The Taillight's current job is monitoring the build status at work. When the builds are normal, the light pulses gently. When we have a build error, the Taillight flashes and alerts us developers that we screwed up somewhere (usually means that I broke BuildBot, but that's a different issue).

Press
I've already shared the half-page article from the ProJo. They also had a summary post on their website.

BetaSpring (the Hackathon sponsor) mentioned me in their writeup blog post.