Or so said Marshall McLuhan, a philosopher and communication theorist best known for the phrase "The medium is the message." And because our tools shape us, it pays to have the best tools you can afford. When you say "tools" to a software developer, the first thing that pops into their head are software development tools like Eclipse, an interactive development environment with a graphical user interface. And for sure, I use Eclipse on an almost daily basis. But for the kind of work I do, down close to bare metal, this can also mean artifacts ranging from hand tools like wrenches and screwdrivers to high-technology tools like logic analyzers and digital storage oscilloscopes.
I have three tool kits that I put together over the past few years that have served me well. I didn't just go out to the hardware store and buy a bunch of tools that I thought might be useful. I carefully collected the tools I found indispensable and organized them into cases and bags that I could cart around in the trunk of my car from client to client as the need arose. I learned to do this from working closely with really excellent field support engineers who had to wrench and troubleshoot some of the products that I produced during my long career.
Field-Service Tool Kit
This is a big professional field-service bag about the size of a small suitcase. It is shown with my iPhone for comparison. It is stuffed with twenty-four pounds of hand tools. That may not sound like that much until you cart them up several flights of stairs.
The field-service tool kit has two enormous zip-open compartments. The first one looks about like what you would expect: wire cutters and strippers, pliers, wrenches, screwdrivers, EMT scissors and other sharp objects capable of various degrees of mayhem, as well as more esoteric stuff like ESD-safe tweezers, a barb-wire-fence tool (invaluable), some pipecleaners, and a toothbrush. If you buy quality hand tools for your own use, you will recognize a lot of this stuff.
The other side of the bag contains a variety of specialized equipment like my Radio Shack digital multimeter and a variety of probes for it, a big zip-lock bag of neon-colored nylon ties, and electrical and duct tape.
Not shown are the outside velcro-closing pockets with safety glasses, flashlights, spools of wire of various gauges, and a big zip-lock bag of miscellaneous crimp-on connectors.
Console and Signals Tool Kit
This is a laptop bag, with my iPhone for comparison, stuffed with the things I need to instrument a microprocessor or microcontroller to see what the heck my software or firmware, or my client's hardware, is doing.
The console and signals tool kit includes a Velleman PCSU1000 PC-based digital storage oscilloscope (left), a Saleae Logic-16 PC-based logic analyzer (right), a powered USB 2.0 hub (bottom), and an old IBM ThinkPad (center). The laptop runs Windows 7 and is loaded with the Velleman and Saleae software, as well as packages like WireShark, the Ethernet protocol analyzer formerly known as Ethereal, and PuTTY, my favorite Windows-based terminal emulator. The tool kit also includes a wide selection of USB adaptors for RS232 and logic-level serial ports and other serial busses, as well as a bunch of USB, Ethernet, and serial cables.
All of this, and more, gets packed into the laptop bag so that a short trip to my car can get me started quickly figuring out what's going on.
The console and signals tool kit is the one I use the most often.
Soldering Station Tool Kit
Occasionally I have to do more violence, in the form of hardware mods or repairs, than you might expect for someone whose degrees are all in Computer Science. That's when this backpack moves into the trunk of the car.
It contains a complete Weller digitally-controlled soldering station and all the paraphernalia that goes with it. Plus: safety glasses with magnifying lenses, alligator-clip "helping hands" with a magnifying glass, a folding super-bright LED task light (you may be detecting a pattern here), and even a Weller ESD-safe heat gun and a collection of shrink wrap tubing.
All of this, plus a flux pen and other useful stuff, fit comfortably in the backpack, the soldering station and heat gun inside their original boxes.
I've used this tool kit to do quite professional-looking (considering the practitioner) work, building special adapters and cables and test fixtures and what-not. And sometimes, not so professional work like scraping surface mount resistors off a board and replacing them with conventional resistors to which I could attach a logic analyzer.
I have had clients that knew that they needed an embedded developer, but had no real clue what an embedded developer did or what tools he needed to fulfill his role in their product development organization. These tool kits allow me to become a self-sufficient one-man traveling R&D laboratory. When they hire me, they're getting a bunch of necessary infrastructure too. I've already figured out what I need, so they don't have to.
Network Tool Kit
While having breakfast when three friends this morning, conversation inevitably turned towards using Wireshark to debug TLS packet streams. Well, maybe not inevitably, but that's the kind of friends I have. I realized then that I forgot about my network tool kit.
This bag contains four smaller bags or sub-kits. The sub-kits contain (clockwise from top left) a LinkSys WRT54GL wireless broadband router (this is the Linux-based model), an inexpensive Dynex IP router, a Netgear FS108 fast Ethernet switch, and a Netgear EN104 Ethernet hub. Plus, all the necessary AC adapters and cables to deploy them.
I've used the LinkSys access point to debug and test WiFi chips in embedded systems. The Dynex router is useful to set up a temporary IP subnet in a laboratory and isolate weirdness from the client network. The Netgear switch is handy for expanding the single Ethernet cable the client gives me into a usable eight-port network. And if you've ever done Wireshark debugging, you know that as obsolete as it may be, the Ethernet hub is invaluable for peeking at a network packet stream between devices.
All four sub-kits, plus an array of Ethernet patch cables, fits in this small bag.
I don't use my network kit that often, but when I need it, I really need it.