Teach Me PCB
teachmepcb.com
teachmepcb.com
- all a PCB is, is a flat version of your hand-wired prototype - all those crazy lines are just the wires - there's no special hidden EE magic until later
- the schematic editor shows your intent
- the pcb layout editor shows where things go
- the hard part is actually just finding schematic and layout editor files for the components you're using - github search is great for this
- you will make lots of mistakes and need a few goes - everyone does, debugging is half the fun, don't be afraid
- online PCB houses make those mistakes cheap
Things I have made with little more than introductory-Arduino knowledge:
- A wearable bluetooth ring: https://twitter.com/gmurphy/status/1372368637332389888
- A hall-effect volume control knob for my PC: https://twitter.com/gmurphy/status/1179831446204121088
- A long range garage door opener: https://www.instagram.com/p/B11m1y5J3qc/
- And currently working on a keyboard: https://twitter.com/gmurphy/status/1443048243101777921
Also, the debugging step for me got orders of magnitude easier when I got a set of PCBite probes - just drop them on and they mostly stay in place. e.g: https://mobile.twitter.com/gmurphy/status/136575328654495744...
CAD software for PCBs becomes a must when you need to deal with a lot of components in odd sizes/package formats, you need auto routing, being able to simulate resistance, impedance or clearance for high voltage sections of your PCB or when you actually need to get your PCB manufactured by a 3rd party that has specific requirements for file formats etc.
And even then some of these 3rd parties allow upload of graphical formats for the trace and solder mask layers.
https://us.artechhouse.com/Bogatins-Practical-Guide-to-Proto...
I recommend learning the symbol and footprint editors as early as possible. Creating your own footprints is a good way to force yourself to go through the data sheet and understand what each pin does, too.
Early on I tried to only use components in available libraries. That was a mistake. Start doing your own footprints and symbols from the start
I normally place components somewhat randomly, big chip in the middle, connectors at the side, small stuff close to where it belongs ... then hit the autorouter, look at the result and move around some components, hit the autorouter again, rinse repeat ...
In the end I'll end up with fairly good looking PCBs (e.g. https://imgur.com/a/rUGtBNa) without having placed a single line myself.
For most toy projects it’s perfectly sufficient, but once you get into complicated stuff it will bite you back.
Using an auto router is like building your software by copy pasting from stack overflow indiscriminately.
It's only when you get to higher speed or higher currents that an autorouter won't have the context needed to effectively route the circuit.
That's nothing that can't be incorporated into an auto router.
I suspect that if we made enough effort at the schematic stage to properly annotate all the nets and define the types of signals flowing around the board, an autorouter could do a superior job to a human (from an RF emissions and trace current sense).
I've never seen a schematic with that level of annotation though. So as long as the person doing the layout has to use external knowledge of what they're laying out, autorouters will struggle.
In theory you could make EDA software which incorporated a full circuit simulation which was then fed into the autorouter to provide a layout optimised for low-EMI and high efficiency. That would be nice!
Perhaps one exists, I don't know as I try to only use open source.
But yes ... probably not open source.
So ... while I can't say anything about PCB design in industry ... I can say that I tend to use a auto-router for my small DIY audio projects and it has never really failed me.
And ... if auto-routers are not used in the industry ... maybe that is something somebody on here should "disrupt" ... computers have become just too powerful not to be combative in solving some constraint path finding problems.
There was some external package that could do it, but at that point “screw it, I can route this board faster than reading the docs on how to deal with the autorouter” took over, especially since I couldn’t be sure anything I learned for this project would still apply for my next project if KiCAD later re-added an autorouter.
first drop VCC and GND vias if you're using power planes, then route chunky power traces, route high-speed / differential pairs, finally autoroute everything else
on some boards, only 3-4 signals aren't power or something tight, but for LED Matrix boards with thousands of criss-crossing low-speed signals and other 'fun' projects with hundred of components (keyboards!), the autorouter is really the only way to go if you want to be done in a night or two
I feel like somebody could have a academic career based around that
Just as the lack of formal CS background imprints on your lifelong experience with computer languages, the same way is the lack of EE background.
From time to time, a recent grad hire comes by, and fixes my work, and shows me where I screwed up with a few calculations on a pocket calculator.
By now, I have my own tiny KiCad fork to make things easier to read and look like I expect it to.
That said, many hobbyists also just ask on the KiCad forums. And I know there are PCB review tasks on upwork.com
Eventually you run into a problem and have to re-spin the board with no margin of extra time (assuming this is for work). In that scenario, having access to an experienced expert is immensely helpful.
Things learned from junior hires: a lot in RF domain, opamps, 74XXX trickery, signal integrity measurements, fiddling with high freq PCIE, DDR, PAM4 lanes in the sciency way, and whole new world of advanced power electronics, and designing it according to standards, and codes...
(high speed layout, BGAs, etc)
Not free, but not super expensive and they also have introductory courses ($50).
https://academy.fedevel.com/courses/online-want-to-design-yo...
The most important talk for beginners getting into high-speed is probably this one: https://www.youtube.com/watch?v=ySuUZEjARPY because without proper grounding, interference and EMI is going to destroy your HF signals (for example CPU to RAM bus).
If you just want to start doing some projects, KiCAD is mature enough and you’ll find more tutorials and content.
The long-term answer is that you'll eventually want to try all of them. In my opinion, half of PCB layout is tool-agnostic and the other half is getting fast/proficient at a specific tool.
When I moved to Altium, I knew that I wanted to "pour copper" to make a power plane, so I just had to google what the Altium equivalent was. The PCB concepts of layers/routing/grounding/clearance/vias/stackups and all that are universal, the terminology and shortcuts are just changed between tools.
https://m.youtube.com/watch?v=vaCVh2SAZY4
When I had to design a board I used that.
Is there any chance you would consider offering some sort of "course completion certificate" with number of hours? I'd be interested in getting these hours credited as Continuing Professional Development for my P.Eng. board. I'd of course be willing to pay a fee for this (which I could get reimbursed by my employer).
> You will need to choose a software tool to complete the activities in this course. Altium Designer, Circuitmaker, Autodesk Eagle, KiCad, and Diptrace will be shown as examples in this course.
Variants are the same, you cannot do it in kicad and altium is a breeze. It give you the flexibility to build different versión of the board in seconds.
Also, the library management is, in my opinion, very error prone. I get the flexibility and I find it useful in some cases but...
And the last is the design rules UI/UX is very simplistic, and you need to know what you are doing. Which is not bad per se, but for a software oriented to mainly begginers, I think is a bad idea. Besides you cannot import/export rules from one project to another and this is a killer for me.
I hope some day kicad will be a solid competitor to altium but right now I cannot fully do all my work in kicad as a electronics engineer, so even Altium is expensive, is a much needed tool.
Edit: I stand corrected, kicad indeed has lenght matching.
Another one, much more niche is rigi-flex PCB (stackup, simulation of flex, definition of areas) Is true that I've only done 2 in all this years (and both in the last 2) but altium saved my ass with the wiki and documentation.
But the main attraction to Kicad is that is a CERN backed software. So has some pedrigree and that pedrigree is needed if you want to sell it to your manager as a backup tool for simpler non critical boards.
We are software agnostic -- you'll be grouped with other users using the same software (group for KiCad, group for Eagle, etc...)
The (older) books I was reading got me really nervous about needing to design all kinds of complicated circuits, but most things these days are just finding an available IC and configuring it.
Well... It's not so trivial to find an "available" IC this year, but hopefully this too shall pass.
If you don't know EE basics you'll probably want to grok those first, there's plenty of youtube channels covering it. Good starter: https://www.youtube.com/watch?v=mc979OhitAg&list=PLWv9VM947M...