That's it. End of post.
It's incredibly frustrating to have spent ages laying out a PCB (after redesigning the schematics and re-assigning pins in software) and etch it, only to discover - right at the very end - that you've gone and put the through-hole components the wrong way around!
How's that happened? Here's how:
We use ExpressPCB for PCB layout.
Make no mistake - it's awesome. And this kind of cock-up can be achieved irrespective of your PCB layout software; Eagle, KiCAD and others can all be used innocently, and you still end up with a duff board at the end of it.
Normally we design our boards from the "top down" - placing components as we would with the tracks on the underside of a (single-sided) board. So if our board were to be populated with an IC chip like this:
we'd also draw our PCB like this:
But if these lines represented the tracks on the bottom of the PCB, and we're looking at them (on-screen) as if we're looking at the from the underside of the final printed PCB, then we really should have pin one on the right and pin 8 on the left.
BUT - here's where it gets tricky. Or at least, can do it you think about it too much. Better not to do too much thinking really (although not enough thought and you'll end up creating a duff board like we managed to earlier today!)
We don't design our PCBs "mirrored" because when we print the design onto our press-n-peel and transfer it onto the copper clad board, the process of transferring it mirrors the design at the same time!
So although we should probably design our PCBs mirrored, we don't. Because the act of transferring the design onto the copper board mirrors it for us. And in doing so, our pin one (in this example) appears not on the top-left (as designed) but on the top-right (where we actually want it).
So far so good.
But then things get complicated.
Because if you want to use surface mount components (particularly IC chips) you really do want to mirror the design. The reason? Well, you're not placing the component "over" the other side of the board and poking the legs through holes to meet with traces on the underside when you use SMT.
With SMT components, you're placing the component directly over the tracks - so you want the final etched design to be the right-way-around. Which means printing it onto the transfer paper mirrored (so when it's transferred, it's mirrored again, making it the right way around).
And that's fine too, if you're designing a board using nothing but surface mount components - because Robot Room's Copper Connection has a print option which will automatically mirror any design before sending it to the printer.
But if you mix surface mount and through-hole components (as we did with this last PCB layout) you have to remember to consistently mirror either all the through-hole components, or all the surface-mount components. It's no good either to mirror a few SMT components, and a few through-hole ones and hope it all works out in the end. It never does.
And we're forever forgetting to mirror either the SMT or through-hole components when laying out PCBs with mixed technologies. Which means, when we make the necessary corrections to our last board, we'll have to reassign some of the microcontroller pins again! Which means the whole of yesterday was a complete waste of time/important learning experience.
In short - mixing through-hole and SMT in the same board design = bad idea. Just don't do it!