Editor's Note
Some Things Are Easier Said Than Done
Joshua Trupin
We had been poking around the coding4fun site and decided to embark upon a project of our own. What would be cooler, we thought, than combining our love of programming with our abject failures in that college-level electrical engineering class, and wire something up? In this case, it was adapting a GPS device to a nine-pin serial port, which could then be attached to a camera. It would be cheaper than buying a complete solution (which run upwards of $400), and new devices only seem to come in Bluetooth or USB these days.
Well, it turns out that there are a few rules you have to follow when you delve into hardware, much to our chagrin. First, your laptop doesn’t have a DB9 port when you need one. You have to dig out an old model that runs so slowly you can’t believe it has a whole 256MB RAM in it.
Second, a good rule of thumb is that while software can destroy your data, tinkering with hardware can take down the power grid of a small community. Did you know that with just a readily available multimeter, you can make your laptop short out without even opening it? Well, we didn’t until last week.
Messing with hardware used to be even more dangerous, when the combination of rows of unlabeled jumper pins and the nonexistence of the Web where you could look up the instruction sheet you tossed out when opening the card’s box combined to produce acrid pink smoke when you turned the machine’s power on. You will probably find it harder to actually make a machine billow smoke these days, but working with hardware still creates that vague feeling of extreme risk that memory protection schemes and file-level security no longer affords you as a developer.
Three weeks into the simple nine-pin rewiring project, we got our second wind. This project started out with a great idea: turning $70 in parts into a $400 component. It soon ran up a three-digit tab at the local electronics store. What genius decided that 28-gauge wire should be smaller than 26 gauge? Why does the wire stripper do a great job on six wires, then pull 4" of the seventh wire out of the cable hose? Isn’t there a better name for the cable hose, like "casing"? Why do they only supply 15 or so of those crimp pins in the nine-pin serial kit when you need like 400 of them because you don’t know how to use a crimper properly? When you touch the soldering iron tip to the roll of metal, where does the solder go? It’s like it just all disappears or something. Who decided that DB9 to USB would need conversion circuitry?
Software is so much easier. You don’t have to make 20 trips to the computer store. You just go to a search engine if you’re missing a piece of connector software. Someone else has likely faced the same challenge, and if they haven’t you can always do it yourself and even share your experiences with others.
Hardware, it turns out, doesn’t work the same way. Are you really going to pull your own wire? Make your own heat-shrink tubing? Have you ever accidentally reversed the polarity in your sample RSS aggregator and started uploading stories to Web sites?
The flip side of this is that with software, you can build just about anything you can think of. It’s just a matter of imagination. If you want software that can read a GPS signal, you just sit down and hack away until you get it right. If you want to see a map of your neighborhood, you can connect to Windows Live, or you can even get down into the weeds and do it yourself with nothing but a raw data file from the Census Department. Electronics stores are full of advanced hardware projects, like MP3 players and cell phones, that require teams of engineers to design. Never in a million years would we sit down and prototype our own working digital camera with USB 2.0 outputs.
Sitting here with a bag full of unconnected parts, a third wind hit us. Maybe it was time to stick with software.
Thanks to Thanks to the following Microsoft technical experts for their help with this issue: Nicholas Allen, Robert Bruckner, Simon Calvert, Jonathan Caves, Karen Corby, Matt Gibbs, Chris Hays, Tom Hollander, Jim Johnson, John Justice, Lauren Lavoie, Eugenio Pace, Mahesh Prakriya, Ravi Rao, Daniel Roth, Chris Sells, Tina Tam, Maura Van Der Linden, Brian Welcker, Kimberly Wolk, and Dawn Wood.
IntelliSense, Internet Explorer, JScript, Microsoft Press, Microsoft, MSDN, MSN, Visual Basic, Visual C++, Visual Studio, Windows, Win32, WinFX, Windows Server, and Windows Vista are either registered trademarks or trademarks of Microsoft Corporation. Other trademarks or tradenames mentioned herein are the property of their respective owners. MSDN MAGAZINE DOES NOT MAKE ANY REPRESENTATION OR WARRANTY, EXPRESS OR IMPLIED WITH RESPECT TO ANY CODE OR OTHER INFORMATION HEREIN. MSDN MAGAZINE DISCLAIMS ANY LIABILITY WHATSOEVER FOR ANY USE OF SUCH CODE OR OTHER INFORMATION. MSDN and Microsoft are registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. MSDN Magazine, MSDN, and Microsoft logos are used by CMP under license from owner. MSDN Magazine is published by CMP Technology LLC. CMP Technology LLC is an independent company not affiliated with Microsoft Corporation. Microsoft Corporation is solely responsible for the editorial contents of this magazine.
MSDN Magazine does not make any representation or warranty, express or implied with respect to any code or other information herein. MSDN Magazine disclaims any liability whatsoever for any use of such code or other information.