Friday, December 14, 2007

Contains twice the recommended dose of Win

Completed board As a follow-up to my last post, what you see to the right of this paragraph is the result of six weeks of blood, sweat, and tears. What you can’t see is the thousands of lines of code that I also had to write to make the project work. Endless superlatives went into the development of this project. So much stress that it shaved years off of my life. Hours so insane that only clocks can keep them. My last Thanksgiving break of college, thrown away because of work. This picture represents pure, distilled, 200-proof engineering.

It comes with a Surgeon General’s Warning stating the following:

“Completion of this project may expose the student to unhealthy levels of stress, sleep deprivation, CEL hours, flux fumes, C++ code, PIC assembly, frustration, hot glue, and model trains. Side effects may include drowsiness, insomnia, missed classes, disappearance, and Win.”

The last side effect was added after the project was completed.

I always knew the kind of work that went into designing computers, but I now have a whole new appreciation for the process that very few people will ever have. It’s funny and aggravating being an electrical engineer. So much of what we do is taken for granted, and never really celebrated. Most engineering majors deal with physical entities (often large and mechanical) that people can see and touch; the sheer scale of things like airplanes impresses folks. A computer that fits in your pocket is seen almost as a novelty. Not nearly as impressive as a gigantic plane, or next year’s new car models. The difficulty in electrical engineering is that most people can’t wrap their heads around the concepts⁠—⁠it’s hard to appreciate how much effort goes into a computer when you can’t visualize it.

I learned more about design and engineering than any lecture in college ever would have taught me. I have a newfound respect for the people who design complex computers and electronics (like my father), considering how complicated this comparatively simple project was for one person.

A rocky road

Board defects I ran a few days past most of the deadlines because of some defects in the first board sent to manufacturing by my professors. Turns out it was the fault of fellow students failing to follow the clearly outlined procedures to submit the files needed to manufacture boards. Screw the incompetent ones? No, screw over the smart ones. Anyway, I worked with the professors because of the delay, and got extensions. In the end⁠—⁠on the last day of classes⁠—⁠I got my project to work. It loads coal, stops trains, and moves trains. It works; it wins… I win.

It was my first close encounter with failure in college. I couldn’t let it happen, hence the insane hours. I’m relieved to have it done, and proud that I could make it happen. This is one for the record books.


VeTTe2005 said...

Hey Paul,

I'm a student in embedded systems this semester and was reviewing some of the projects in the past. I was completely blown away by your encapsulation of that crappy Xilinx API into something that looked very much like a Cocoa class hierarchy; not to mention the nifty PCB you constructed. Awesome work man, good luck out in Cupertino.


Paul said...

Just saw this comment, long after the fact. Thanks!

How'd you find out I'm headed to Cupertino? I try not to publicize that too much. I guess I didn't intend it to look like Cocoa, but since I mimicked the "delegate" pattern, there is a vague resemblance.