The Art and Science of PCB Design
pcb.mit.edu
pcb.mit.edu
To any KiCad dev reading this - thank you.
Kicad is great, but there are very solid use cases that are substantially more painful than other commercial EDA offerings.
In its current state I could recommend it for most hobbyist stuff and some simpler commercial PCBs. Far better than Eagle ever got.
Meanwhile I will continue to use Altium for everything just because I'm fast with it. When time is money and $8k is just another expense it's well worth it.
For a number of years I have been using DipTrace for personal projects and it is quite easy to use. It is one of the easiest and fastest tools for doing PCBs for the non-PCB engineer. I have recommended it to a number of non-engineers and they were quickly successful in getting a design up and running.
I am (a very novice, no EE background hobbyist) creating my first design right now.
It seems like there are a lot of design rules that are not common knowledge. And in the electronics tinkering "community" there is basically a vertical wall in the learning curve after Arduino/breadboard. I work on embedded software for a living so I understand that side but some of the electrical stuff really doesn't have an easy learning curve.
I am following along with this video:
https://www.youtube.com/watch?v=aVUqaB0IMh4
and having an OK time so far.
If anyone knows of any other resources I would love to know. And, is there a place, maybe a slack or discord, that would review designs? I really want to have someone look at it before it goes out but I have no clue where I would begin searching for someone to ask.
However, most other design rules are experimentally derived by the manufacturer of each part. Look for documents called routing or layout guidelines which should be on the same page you find a part's datasheet. The manufacturer of your CPU, RAM, sensors, connectors, PMICs, and so on will usually make them and they'll often include really basic info like how many caps and how far they should be away from some pins, how to route signals to minimize reflections, and so on.
But focus on the two most important words in EE: REFERENCE DESIGNS. Until you're doing mixed signal stuff, you can usually just copy reference designs wholesale and strip out the stuff you don't need. The only hard part is making sure the layers and copper weights compatible. Even professional engineers base their work on manufacturer reference designs when they can.
„I avoid application notes as if they were the plague, because frankly, more than 95% of them are incorrect.“ https://youtu.be/QG0Apol-oj0?si=KTdYlKAlRhGVEDfB
https://www.4pcb.com/media/presentation-how-to-build-pcb.pdf
It describes the manufacturing process in pretty good detail. The reason the design rules feel like such a wall is that these design rules are completely based upon the manufacturing processes themselves (thus different manufacturers will have different rules). As you go through that presentation, you'll probably have to search or ask about many of the terms you don't recognize, but that'll just help you learn even more! Next, check out the design rules for a popular fabricator. For example, here's one:
https://docs.oshpark.com/services/two-layer/
And they even include some helpful tips for setting up KiCad to work with their fab capabilities:
https://docs.oshpark.com/design-tools/kicad/
Two other great resources to learn from are Robert Feranec and the Contextual Electronics course: https://www.youtube.com/@RobertFeranec https://contextualelectronics.com/
Have fun!
I'm not trying to rain on your or KiCad's parade, but what did it for me was EasyEDA's integration with JLCPCB's part library. Combined with JLCPCB's assembly service. For just a bit of extra money I now don't have to worry about footprints, availability, exporting the right files, creating a BOM, etc. I can just order at JLCPCB right from EasyEDA.
I really wanted to use KiCad instead of yet another online tool, but for my first steps this just makes more sense.
The biggest thing I learned lately was, if your board is open source, find some nice person online (twitter, mastodon, reddit, etc) who is willing to offer design review for you. I have learned SO MUCH from having a professional critique my boards.
Also Phil's Lab is excellent! My favorite resource for learning advanced concepts. Just ignore his shilling for Altium and stick with Kicad (which he more recently has been exploring). Kicad is an incredible tool. Learning Altium has value if you want to work at a shop that uses Altium, but Kicad is really an excellent tool that is very accessible.
I do robotics so I do software, mechanical design, welding and fabrication, and PCB design. PCB design is by far my favorite of all these fields!
https://web.archive.org/web/20201112034911/http://www.hottco...
https://web.archive.org/web/20201224132837/http://www.hottco...
...
One thing I'd add to the schematic checklist is "label every net". It makes setting up net classes much easier and clearly communicates the design in the layout.
But in general I agree, there's too much fascination with Arduino et al. that I think's mid/long-term harmful to those that stick with it personally.
A lot of his videos should be prefaced by "it's interesting, but you don't need to worry about it unless you're working on the types of projects I'm paid to work on." Without this disclaimer, PCB design becomes less accessible. It's akin to teaching basic chemistry by starting with quantum foundations and insisting that everything must be derived from that.
Phil's Lab is pretty good 'zero to DDR' though I think, for PCB at least - you might need some awareness of basic electronics first, he does schematic walkthroughs and projects too, but it'd probably seem pretty quick and unexplained if you're coming to it not knowing some fundamentals.
If you want to be anal you can print the PCB from KiCad on a regular laser printer at actual size and "stuff" your paper PCB with the components you intend to install. I've used a push-pin to poke small holes in the paper PCB and then threaded the resistors, etc. into the holes to get a sort of sanity check that the components are going to actually fit with one another.
The latest KiCad has a 3D viewing mode that seems to have a similar benefit. But I had a few components on my latest PCB that KiCad didn't know about so there was no 3D model for those components. (I could probably hunt for these component's 3D models on the web but I am too lazy.)
Otherwise, I see lots of "can you review my PCB?" on r/PrintedCircuitBoard/ (https://old.reddit.com/r/PrintedCircuitBoard/).
Here's another YouTube video I've sat through: https://youtu.be/3FGNw28xBr0?si=57iSLz2EFxOdUmXn
I'm interested in the course as well though. I suspect there is a lot I could learn.
Rather than paper, I think you could Kicad-design a 2D grid of holes matching an existing proto board (https://www.amazon.com/ElectroCookie-Solderable-Breadboard-E...) and then do the placement and routing in Kicad, and then finally assemble the board in place. To avoid fritzing.
Even worse, there ard a lot of design rules that are shared as common knowledge, but that are wrong or detrimental to modern designs. Rules that applied when all you had were througholes, slow rise times and no emission tests to worry about.
Modern MCUs for example might just run at 8 or 16MHz if so configured but can have rise times in nanoseconds, so emissions must be considered despite the "slow speed" of the clock.
Another big one is having multiple capacitors one decade apart for decoupling, ie 1uF, 0.1uF and 10nF or something like that. With modern SMD capacitors you'll almost never want to do that. Instead use multiple large ones, ideally in the smallest package you can.
> And, is there a place, maybe a slack or discord, that would review designs?
I've had a good time over at MicroType Engineering's discord[1], got a separate room for design feedback. Also has a YouTube with some helpful videos[2].
To expand (search for "antiresonance"): https://www.mouser.com/pdfDocs/c39e.pdf
I have recently found the eevblog forums [#] which are extremely valuable. I haven’t posted there yet but am planning on engaging and seeing if I can learn some deeper knowledge.
I’m struggling to pick which MCU to use exactly. Let alone what brands of rotary encoders are good, or which water proof usbC female port I should use!
[#] https://www.eevblog.com/forum/index.php?PHPSESSID=s3ph2f4cbq...
How to figure out what parts are in stock, what can be used with each other. Any tips for beginners? I’m looking to get a pcb with parts soldered on (ws2812 LEDs, atmega328 and supporting parts. Is this easy and feasible to do?
I think you may need to pay a bit of extra fees if you don't use their "in house" parts but so far it looks reasonable.
Totally. And it can often be unclear how to proceed when the design rules you do know conflict.
Ultimately I've learned over time it's about the process rules, not design rules. Follow the same logic design process each time refining it to be better knowing that the design rules will be bent and even broken at times.
A quick note though: We're updating the site right now to get it ready for it's second running in IAP 2024, which is in about a week or two. So most of the content for this year is being built out, but everything from last year is available under the archive page:
https://pcb.mit.edu/archive/IAP2023/
Happy hacking!
I particularly appreciate the slides for "Hardware's not dead".
It would be cool to do some advanced topics in physical modeling of circuit boards - electromagnetic, thermal, and mechanical/reliability.
Some internal links to the 2023 site are broken, and some google links too. It took me a bit to find the motor lecture from its mention on your technical resources page.
Some notes on resources:
If you're going to take a board to production, the Coombs handbook is nice to have handy. IPC standards can be helpful also, and you might access to them through your library.
For batteries, there really isn't a single reference as useful as the Linden handbook.
You mention Ott for EMI/EMC in lecture 3 already.
For motors I have found Fitzgerald&Kingsley and the old Electro-Craft handbook particularly useful. The Electro-Craft handbook is one of those fun old books that has crisp control theory block diagrams you can pretty much enter directly into Simulink and run.
Please continue to post the projects, especially the git repos with the actual designs, as well as the reports.
I'll continue to post projects since most of my learning happens when I make something that works... or more often doesn't work. I don't see a world where I can stop since there's so much to learn and explore. Currently I'm working on a ~100W LED driver that works off AC mains and it's really pushed me to be thoughtful and intentional with all the testing I do. It's my first project where I pull power straight off the wall, and it's both exciting and terrifying.
Expand your design capabilities by understanding these semiconductor black boxes that are available to you in your field (power electronics, audio, RF, etc.) As another user mentioned, read up on design references! And datasheet graphs, and try to get your hands on closely related previous designs. As EEs, we should talk more about design patterns and primitives like software engineers see it.
But of course, I understand why there's a big discussion about tooling, it's like picking the first language to start programming in. Imo, if you're starting out in PCB design, pick a tool that doesn't get in the way with your learning; something simple but also capable when you progress. The software engineering choice would be python, and I think flux.ai is the closest thing we get to that. But still, if you learn one, you can use the rest! We're all constrained by a pretty standardized manufacturing process so the functions you perform in all these tools will be very similar.
This is the reality - unless you’re only interested in the most simple stuff (one or two layers but no plated holes, no vias, no solder mask, etc.), you can spend years trying to develop and tweak processes to try and achieve something that won’t match the quality and reliability of something you can have delivered in less 7 days for $10. Not to say that developing PCB processes isn’t fun to some people, and if it is then more power to you, but I’d rather spend the time on the electronics than spending all of it trying to build PCBs.
It is so outrageously cheap that it isn’t worth etching anything yourself anymore.
As mentioned on our website, we'll be putting up our content as we complete them. By the end of January of next year there should be a complete set of lecture recordings, lecture notes, labs, and assignments updated for 2024.
[1] Bogatin's Practical Guide to Prototype Breadboard and PCB Design:
https://us.artechhouse.com/Bogatins-Practical-Guide-to-Proto...
https://pcb.mit.edu/archive/IAP2023/
And the lectures are all on YouTube :)
https://youtube.com/playlist?list=PLJpsOGUzkGzKMEPmRKWAJcLpK...