This forum and various tutorials have all been very helpful to me when learning to design PCBs. I think it would be also be very useful to compile a list of general design tips to make learning a little smoother for newcomers. If you could, just add a post with one or two design tips or tricks that you’ve picked up along the way.
Hopefully this will ease the steep learning curve of designing PCBs.
Tip #1:Part placement is the key to getting a good board layout – good trace routing will follow.
Tip #2:Always triple-check everything before sending your design out for fab. Check diode and polarized capacitor polarity, etc., check that footprints match the actual parts.
Here’s a little checklist I keep for myself when working on a design. It’s certainly not complete, but maybe it will give you some ideas. Every time I make an error, I add an item to the checklist to prevent me from ever making the same mistake again. Fool me once–shame on you; fool me twice–shame on me!!
Colin’s Schematic Design Checklist
- Add 0R resistor in power supply to support current usage measurement?
- Check polarity of LEDs, diodes, polarized capacitors.
- Check transistor polarity and connections.
- Run DRC check.
Colin’s PCB Layout Checklist
- Check IC packages to make sure the correct footprint is used.
- Check transistor pinouts.
- Check orientation of connectors.
- Check that each IC has an appropriate decoupling capacitor.
- For non-plated-through-hole fabrication (DIY etching): ensure only the non-component side of through-hole component leads is connected to a trace.
- Make sure important silk screen elements aren't over vias, where they will be corrupted.
- Run DRC check.
- Check physical layout by printing the layout.
- Place major components on the paper.
- Make sure placement of connectors, switches, and so on is acceptable.
- Does the board fit in the case?
- Is component height a problem in the case?
- Is there sufficient space around the mounting holes for screw head/washer/nut/etc.
Colin’s points are all good. A few other things I like to do before sending PCBs to be made:
• Double check the hole diameters – nothing worse than component leads not fitting! If you’re using Olimex, ensure you allow for a reduction in hole diameter due to plating (all other companies provide finished hole diameters to match what’s in the drill file).
• Make sure there is no silkscreen over component pads. Some companies will automatically remove this, while others won’t.
• Make sure all component pads are defined in the soldermask layer (I once had a D-Pak component where the main pad was covered in soldermask). I find it useful to generate Gerber files & open them in a separate viewer (e.g. GCPreview) to ensure everything looks OK.
One thing I always do is to print out the top layer & silkscreen 1:1 size and then place all the parts. This is a sanity check that I have used the right size part (1206 vs 0805) or that I haven’t accidentally used the metric version of a connector instead of the Imperial one. It’s an easy way to check that it is physically possible to access all connectors, test points, etc on a fully populated board. It also lets me verify that silkscreen can be read easily.
This is actually easier with through-hole than with SMT. With through hole, I place the sheet of paper on some foam or something that the leads can go through and that holds everything in place. With SMT, stuff tends to slide around too easily.
This is a check I learned at my first job (we had bins of “dummy” components that we used for footprint checking).
One thing I’ve learned is to ALWAYS put boundaries of actual component sizes when making your own layouts, not just footprints and pads. It’s far too easy to place parts too close together. Another is to think about when doing the layout phase is to think about how you’ll be soldering each component in and if you can get the iron where it needs to be. With SMD especially, hand soldering can be nightmare if you pack tiny parts close together.
I always tell myself: good component positioning is 90% of the job. I make sure all my air wires are reasonable before any tracks are routed. Then I route the big tracks for power and ground. Then the digital and analog signals making sure to keep them separate as much as possible. And I never use the auto router.
Either order the parts first, then design the board, or make sure they’re still available right before ordering the board. During the Big Parts Shortage of last year, I went through three revisions of a PCB before I was even able to order a single prototype…
Make up a part number and revision number and put it in your silkscreen. Becomes much easier to talk about various revisions in the future.
If you’re not using some pins and have extra space, connect it to a wire pad anyway. Might need it later.
Think about how you might want to actually mount this board to another object, and design in some holes. Don’t forget to account for the screw heads too…soldermask is not going to prevent a short for very long.
If at all possible, never design to your PCB manufacturer’s minimum trace/space widths.
Use a ground plane.
Backup your PCB design files in several places. Recreating something from scratch is not fun.
Create a part library where you store all the stuff you’ve created. If you try to edit libraries that came with your PCB software, you might lose your work when you update versions.
macegr:
Either order the parts first, then design the board, or make sure they’re still available right before ordering the board. During the Big Parts Shortage of last year, I went through three revisions of a PCB before I was even able to order a single prototype…
Make up a part number and revision number and put it in your silkscreen. Becomes much easier to talk about various revisions in the future.
…
Backup your PCB design files in several places. Recreating something from scratch is not fun.
Those are important points. Both can be related to a version control system in some way. I use [Bazaar, but git is another good tool; each fabrication run of a PCB gets its own version tag so the design files are precisely identified by looking at the version number on the board.
macegr:
If you’re not using some pins and have extra space, connect it to a wire pad anyway. Might need it later.
Think about how you might want to actually mount this board to another object, and design in some holes. Don’t forget to account for the screw heads too…soldermask is not going to prevent a short for very long.
Many times I have worked hard to design a compact PCB only to realize after laying out the board that I didn’t leave room for mounting holes. The mechanicals are a critical part of the design!](http://bazaar.canonical.com/)