This is a quick post to share a technique I recently invented (or, more likely, re-invented) that can be of great help when you’re trying to layout a circuit but are overloaded by possibilities: the handicraft router.
In this specific case, I was trying to get the outputs from a bunch of digital potentiometers to a (digitally controlled) set of analog switches. My main problems were that:
- it involved a whole lot of connections: 8 pots tied to 8 inputs going to 4 switches along with power and control interfaces;
- it also involved a whole lot of possibilities: I could use pot inputs A or B, I could route to switch 1,2,3 or 4… etc.
- the logical organization didn’t reflect the chip layouts and, between the circuit requirements and the routing issues, I was slowly going mad.
The autorouter wasn’t doing to well either, with tiny chips and limited space so, eventually, I gave up on trying to keep everything straight in my mind and came up with the following technique.
Sometimes, you just need to get physical and take advantage of that manual dexterity and spatial manipulation ability.
Step 1: cut a hole in the box
No, wait, that’s another project…
Step 1: get some flashcards, a marker and your datasheets. The idea is to replicate the actual pin configuration in a form that you can manipulate–so keep to the datasheet, give yourself some space, and mark the pins close to the edges of the flashcard.
Step 2: stringify
Use lengths of string to represent connections. I made holes in the flashcards using a punch, inserted a length of string on one side of each connection and simply taped the back of the card to hold them in place.
Step 3: explore possibilities
Give yourself some room and start laying out connections. The idea, of course, is to minimize the number of strings that cross each other. You can keep track of layers by passing the strings above/below each other.
After a bit of putzing around, I came up with something that should’ve been easier for the autorouter. It wasn’t but, gladly, I had a map I could follow and routed it manually. Here is the final handicraft router output and the resulting layout:
The whole technique is a bit of hassle, and it starts getting touchy to try and route a new connection without disturbing existing paths when you’ve got a lot going on… still, in cases like this where you want to be able to quickly try out different possibilities, the “handicraft router” is actually pretty sweet.