Circuit board design techniques

There are many ways to build boards in CAD and some of them will even yield working devices, but there are a lot of ways to make your life easier when doing this. I’ll try to detail some wisdom here as sort of a perpetually evolving ‘best practices’ document.

Use KiCAD. I know there are a lot of software packages out there but honestly, this is the current gold standard. There’s support, libraries, plugins, part footprints available and everything you could want. It’s fast evolving, backwards compatible with itself and I’ve not seen a reason to pick anything else in the last few years. I didn’t upgrade to KiCAD 7 until I needed to trace a PCB image, and I probably won’t switch to 8 for a bit but there’s no downsides from what I can see. You can pick the software you personally have been using forever, or you paid for a standalone Eagle license, or whatever, but you just make it harder for people to benefit from your designs and you make it harder for people to help you. I’ve used Eagle, Altium, and KiCAD and even for work I recommend KiCAD over Altium for the level of stuff we’ve been working on. It’s free, it’s open, you can fix bugs you find, and use other people’s plugins. I love it.

Adopt design practices you like from other circuit boards. You may be working on something and think ‘wow, that’s so useful’. Build that sort of thing into your projects. Does it make it easier to solder? Easier to diagnose? Easier to repurpose? Do some of that in your designs. You may stop doing these things eventually if you add them and never end up using them, or you may find yourself putting them on everything and making things so easy. That picture is of an Atari arcade PCB with huge solid metal rings as test points, you can easily clip on to them and there’s even points broken out so if you connect two of them it does things like inhibit the watchdog timer so you can really start testing things when there might still be other stuff non-functional.

Design around parts you have. Custom PCBs are nice to be able to make a thing that an unlimited number of people can build with easy to obtain off-the-shelf parts. That being said you can also use them as an opportunity to use up some specialty stuff you have lying around that would never find a home any other way. Nice thumbwheel potentiometer? Fun display you have a couple of? Keypad you don’t know where to find any more of? Make a board to incorporate these parts in a robust way and they can go on to serve that purpose for years to come. All it takes is a cheap $20 pair of calipers and some patience and you can make your own footprints for any number of things you haven’t found an easy way to use. Don’t worry about how you won’t be able to reuse that design a million times, you can order boards in sets of 5, as ling as you make it generic enough to be used 5 times there’s no waste.

Mounting holes. Put mounting holes on everything. You see that raspberry pi 1 that has no mounting holes? don’t be like them. This is a broader topic of ‘think about how you’re going to mount this thing’ but as a start pick some bolts or fixturing method you like and build it into your design. You don’t have to know exactly what you’re going to do but it’s better to have something to build off of than a monolithic board you have to find a spot that drilling into it won’t break a trace. Largely holes and shapes are free so play around. Maybe you like zip ties, make ovals. Maybe you have a kit of M3 bolts, then boy can you find all sorts of premade footprints in KiCAD to accommodate you. The holes don’t have to be on a specific spacing unless you want to put your design in an existing enclosure. If you can do 2D CAD then trust me you can do 3D CAD and print an enclosure to fit your board after you design it. Sometimes many years after.

Pick the right grid. If you are making a board with a lot of DIP chips, I recommend a main grid of 0.1″ (2.54mm) because that’s the pin spacing on the chips in both dimensions. For traces you will want to have them go between the pins so the grid must be a maximum of 1.27mm. I recommend about half that so the traces can be closer together for the ease of routing. If you use surface mount chips and connectors they may be a metric pin spacing like 1mm, so use that for those designs. There is not one universally good solution for everything and if you want to stubbornly use one standard where the other would work better you just make your life harder.

Pick some sensible track widths. I use 0.4mm for a primary signal track because it’s not so tiny I can’t cut and jumper right on the track and I can still run it through DIP legs with no issue. I tend to use something like 1mm, 1.27mm, 2mm, or even 2.54mm for power tracks because it feels better to me and I can not only see where the tracks are better, but it helps not cause so much voltage drop as you start to draw more power. The default track width will probably work, but you’ll hate it if you have to do any work on your boards.

Copper pours and keepouts are nice for things like ground planes. You usually want ground going to almost every component these days so filling in all the open space with ground helps connect everything however it can without you having to account for it all. It can also add some kind of electrical insulation by having the ground as one big mostly unbroken plane.

That being said, if you have ground seeping into little strands that go nowhere, cut them off or stake them down. What I mean by that is don’t have little whisps of ground plane just hanging out, they tend to act like antennas picking up or radiating signals and you don’t want that. If you have two ground planes, one on the top and one on the bottom you can drop a via to connect them so it’s a more unified grounded area. This lets you keep your large shielding area and not have it do undesirable things. If you can’t do this, maybe just cut off that little peninsula.

If you are doing analog stuff, you can use traces to shield from cross-talk from surrounding pins. This is pretty useful if you have something like an LM324 quad amplifier and you don’t want the amplifier next to yours to have any influence on the main signal you care about. Have you ever muted your speakers on a really cheap laptop, but you have the volume turned way up and you can still kinda hear it? that’s the signal bleeding through from close by components without proper shielding. You can think of this as electrical isolation for flatlanders. It’s not the best you can do, but it’s free so try it if you want.

vertical traces on one side and horizontal on the other. It may seem super tempting to connect to the pin right next to where you are on the same side of the board as you have been routing everything on, but I guarantee you that when you have another signal that needs to go through that area you will hit a roadblock. You can try to have some diagonal traces, but when something needs to cross that area and you have diagonal traces on the top and bottom you will end up in a case that it has to go over one, under another, back over a third, and all to just get from one place to another in a straight line. Keeping to a nominal direction per side really helps when you have to shove traces through as they can ride along side one another until it’s time for one to hop to the back side and turn ninety degrees and move along.