I recently picked up a copy of Tim Williams’ Circuit Designer’s Companion after I noticed it on my Amazon recommendations list (which seems to know my tastes a little too well these days.)
This is a fun and useful book. The emphasis is on practical information that is useful to working engineers, not PhD students. This means that there are a lot fewer equations in this book than The Art of Electronics and it’s a lot less intimidating for someone without a degree in Electrical Engineering. The book’s roughly 400 pages include topics such grounding and shielding sensitive circuits, some basic tips for routing PCBs, why it’s usually better to buy a switching power supply than build your own, some comparisons of batteries, and how to pick a fuse. (Sadly, the latest microcontrollers and Lithium battery technologies are missing – not surprising, since the 2nd edition was released in 2005. Time for an update?)
I like Williams’ writing style, and usually pick this book up first to see if he has a quick solution to the problem at hand before diving into one of my more dense engineering texts. While this book isn’t a replacement for my other (heavier) reference books, it’s a welcome addition to my desk. I keep it within easy reach.
I recently saw David Agans’ book Debugging mentioned in one of the many trade journals I receive (I can’t remember which one). After seeing how much praise it received on amazon.com, I decided to pick up a copy.
Debugging really spoke to me because a large portion of my career has been devoted to finding and fixing hardware bugs. I finished it in just two or three evenings (it’s a quick, fun and engaging read). The examples are particularly interesting and relevant to me because many involve issues with embedded systems. Admittedly, perhaps most fascinating is the one about a living room lamp that turned on anytime the author vacuumed the room.
I highly recommend this book to anyone who regularly troubleshoots issues with any kind of system, software or hardware, mechanical or electrical. This includes engineers of all discplines, circuit designers, computer programmers, helpdesk operators, web developers, auto mechanics, etc.
David’s nine rules of debugging are (with my notes):
- Understand the system – Knowing how your circuit, code, or widget is supposed to work will help you fix it. Read the manual!
- Make it fail – Knowing how to reproduce the failure is critical to being able to fix it. Also, stimulate the failure, don’t simulate it.
- Quit thinking and look – Don’t jump to conclusions and just fix what you think might be the problem. This wastes time when you inevitably guess wrong. Keep an open mind as to what the failure mechanisms could be.
- Divide and conquer -Eliminate what is definitely not part of the problem and focus on what’s left.
- Change one thing at a time – If you change ten things at once, how will you know which one actually solved the problem?
- Keep an audit trail – Being able to reproduce the fix is crucial. Even if you don’t fix the problem, you might discover a pattern or something you overlooked by looking at your notes.
- Check the plug – When all else fails, check the obvious stuff that you probably should have looked at first.
- Get a fresh view – Someone else may have more experience with the problem than you do or might see the one thing you’re missing.
- If you didn’t fix it, it ain’t fixed. – Don’t stop when the problem just disappears. It will surely come back later at the most inconvenient time possible. We’ve all been bitten by this one before. Never again!
There’s even a free poster available on the book’s website to help you remember these rules during your next debugging crisis.
Yesterday I drove down to Linear Technology in Milpitas for a free LTspice IV Seminar, hosted by electronics distributor Nu Horizons.
The seminar was led by LTspice author and advocate Mike Engelhardt. For someone like me who has never used LTspice before but wanted to see what all the fuss was about, the seminar was an extremely informative introduction to what appears to be a very powerful and well-supported design tool based on Berkeley SPICE. Mike claims that in most cases, LTspice is the fastest SPICE simulator around, making it the industry leader both in price (it’s free) and performance.
The best part?
After the seminar, Michael Payne of Nu Horizons sent out a link to the class slides and example files as well as a list of useful LTSpice Keyboard Shortcuts. So even if you missed the class (or the tour didn’t include your part of the world), you can still learn about the circuit simulation tool that has been making waves in the open source hardware community.
This Christmas I received a bunch of great books from friends and family. My O’Reilly collection in particular doubled in size!
Here’s a list of what I’ll be reading in 2009: