I held off doing PCB stuff for a long time because the tools seemed incredibly complex and intimidating, and now I wonder how I ever did anything without it. The things I wish someone had told me:
- 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:
Unless you dealing with things where signal integrity matters any drawing program with fixed dimensions that you can reliably print from whilst maintaining dimensional accuracy if you are using the print and transfer method works well.
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.
Good news, signal integrity guru Eric Bogatin has just released a guide book on circuit prototyping and PCB design fundamentals that can become an instant classic in the field:
> - the hard part is actually just finding schematic and layout editor files for the components you're using - github search is great for this
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.
yup, once you "get your hand in" and only focus on the correct footprint/pad layout and a little silk, it becomes faster to just sketch out parts with fewer than 32 pins than finding (and validating!) random libs
Also: the Autorouter in Kicad is actually pretty useful ... if you use it as a tool, not as a magic problem solving machine.
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.
Yep, autorouter makes easy work out of hard stuff. Folks who tell you not to use it haven't spent much time using one or are working at a very different level of polish. It's super convenient to draw some important power traces and let the router do its best with signals. If it's taking too long, you start rearranging.
An autorouter is perfectly fine for whole classes of electronics. As a basic rule, if you'd happily assemble the circuit on a breadboard or with jumper cables and not worry about signal continuity, the autorouter will be fine.
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.
I think I should have added the caveat "with the typical information we give it".
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!
I don't think it is ... and I think some it is some sort of "get of my lawn"-ism. I passed a degree in electrical engineering at some point (haven't used it too much after that), and "don't use the auto-router" is basically what is taught from day zero.
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.
I tried using the auto-router in KiCAD on my last <simple hobbyist> design and realized that it had been removed from KiCAD.
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.
i use the Eagle one at the end of my routing flow:
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 loved Eagle until Autodesk bought them and turned that product into a subscription. Now, I’m locked out of my old designs. Fool me once, you’ll never get my money again.
Sad but true ... Last time I checked they still had the old standalone hidden on their web pages somewhere ... might be enough to open and convert your projects.
Just start a small project and figure out how things work on-the-go :) My first one was a small PCB to control a RGB LED strip using three potentiometers.
Same here. I have no formal education but I recently finished my first 12 layer USB3.1 SuperSpeed + FPGA board. Every once in a while, I have to book a freelancer to explain niche knowledge to me - for example how to calculate the impedance for the USB3 specs - but thanks to good software, it was a lot easier to learn than I thought.
By now, I have my own tiny KiCad fork to make things easier to read and look like I expect it to.
This sounds exactly like a pcb project I have in mind, plus a bunch of ddr3. How hard is it starting from almost zero? I imagine diy isn’t realistic, how much does design of such a board cost?
It is theoreticallypossible with self-study, but the problem is it's still very easy to make practical mistakes even if you "understand" all the theory.
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.
I pretty much continue self-study every time I stand corrected.
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...
We didn't even cover PCB design in my EE years, the course load was pretty much evenly split between circuit theory, VLSI (processor) design, power distribution systems, and embedded systems programming. Plus the necessary theoretical background in physics, mathematics, control theory, and management.
My recommendation would be to search YouTube for "Rick Hartley". The guy is extremely knowledgeable, yet humble, and presents things like grandpa reciting a war story. It's easy to listen to, and I'd take him being on any kind of program as an endorsement that it'll be high quality content.
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).
Can vouch for fedevel. It’s my goto recommendation when someone wants to “graduate” from microcontrollers into more complex designs (DDRX memory, PCIe,…)
Altium offers their hacker/hobbyist circuit maker for free, it uses the same engine as Altium just lacks some of its advanced features and parts library.
https://www.altium.com/circuitmaker
I’m kind of getting started with PCB design, would you recommend circuitmaker over KiCad? As in, is the improvement worth going from free software to proprietary?
If you intend to work in the field, KiCAD has very little penetration as of this moment. It’s better than nothing, but mot companies will prefer people with experience in Altium.
If you just want to start doing some projects, KiCAD is mature enough and you’ll find more tutorials and content.
I use Altium Designer almost exclusively now (Was OrCAD/PADS previously)......if I were starting over, I'd get much more into KiCAD. Higher learning curve but you can get legitimate professional-grade PCBs designed in it.
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.
I absolutely love Diptrace. It has a free version with all libraries included. Over the years though I have progressively upgraded it to the "standard" level (which allows 6 layers and 1000 nodes) when they have sales. My own microcontroller designs with GPS and bluetooth, OLED displays, serial ports etc. have not passed 500 nodes.
Nice thanks, checking this out and apart from some browser loading slowness this seems really cool. I'm stuck between booting up altium on my windows sbc and kicad on mac so this might be perfect.
p.s. Crazyfrog! I remember hearing that first when I was like 11 haha, love it.
It gets a bit of a bum rep these days, but I've always liked Eagle and it's cross-platform between Linux/Mac/Windows. Autodesk made a lot of changes which people didn't like, but to be honest the software was stagnating under CADSoft anyway. There was a time when the UI would change weekly, but it's a bit more stable now and developers in the forum are pretty responsive.
Phil's lab is the first thing that came to my mind when seeing this. Phil is an excellent teacher and has great content on PCB design, digital filtering, signal processing, C programming, FreeRTOS etc. Certainly an engineer that I would LOVE to have on the team.
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.
KiCad is good and free. The only thing it lacks in comparison with $10k+ offerings is a convenient autorouter. But then again, I couldn't get automated routing to work in Altium either O_O'
Well, I worked with altium and kicad for almost 8 years. There are more subtle differences than the autorouter, and this is basically a trivial thing because I rarely use it. For example, kicad does not have some advanced features like via fencing, via picking, lenght matching, and some more. Is true that you could download a third party plugin, but is not the same.
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.
That's a great list of differences, and I'd also like to throw in "documentation" to the list of things that Altium does great. Outjob settings plus Draftsman documents mean making changes to even a massive PCB are "one click" away from documentation generation.
True. Generating documentation and more important, a structured documentation, for all projects is another point for Altium.
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.
Have you checked out Horizon-EDA? It was built to address some issues with other tools, but it's a newer project so not as far along as KiCAD in other areas.
I dind't know about it but as far as I seen is a well thought out software.
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.
Autorouting works in EasyEDA but it still requires supervision. Settings you think would make things better like decreasing the track width can end up creating more vias rather than the other way around.
I've been really surprised at how simple it can be to configure complex ICs with basic pull up / pull down resistors and voltage dividers.
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.
I've been getting into this over most of quarantine and have successfully imitated this guy's tutorials (just had to swap out the microcontroller): https://www.youtube.com/watch?v=C7-8nUU6e3E
- 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...