Wednesday, September 21, 2011

An Intro to Hardware Hacking for CS folk: Part 1, What's a microcontroller?

N.B. You can find a prelude to this post here.

Microcontrollers are everywhere. They engage the brakes in your car, open the doors of your building's elevator, and yes, cook the frozen dinner in your microwave.  But what are they, and how can you, the budding hardware hacker, take advantage of them? Hopefully this post will serve as an introduction to the most popular computing devices around.

An Intro to Hardware Hacking for CS folk. A Prelude with µWave

I'd like to start off this post with a big thanks to the PennApps team. They put together a fantastic hackathon last weekend, with 40 teams developing crazy apps in only 48 hours. I was fortunate to be a part of one of those teams, and we worked on a project called µWave. µWave is a microwave (how punny is that name) that we hacked to figure out how long you are cooking food and to transmit that data over HTTP. A server then uses that information to find a YouTube video of suitable length to play for you while you wait, and to @mention you in a tweet and text you when that food is ready. I am happy to report that this project won the competition, which is especially cool since it was the only hardware hack around. While we µWave creators are a team of electrical engineers (except for me the computer engineering student), I refuse to believe that you need a EE degree to tinker with electronics and devices. The next post will introduce microcontrollers, the bridge between hardware and software development. In a later post, we can discuss how to work with analog and digital signals to interact with different devices.

TL;DR prelude: CS people can (and should) hack hardware too. Let's talk about it.