This should be a good release, although this particular article could probably be edited down to 50% of its size without losing any information :-).
One of the things that KiCAD is doing to making a legitimate open framework for eCAD design. Not surprisingly, back in the 80's when the "CAD Framework Initiative" started up and everyone was going to be able to mix and match CAD components a bunch of CAD vendors got scared and inundated
the standards effort with people whose job was to derail the effort. They were successful.
In the years following, any time a CAD package that was "free" or low price became reasonably competitive, one of the existing CAD vendors would buy out the developers and quietly smother it or turn it into a feeder for their "real" product.
That KiCAD has lasted this long is pretty cool. I suspect it has enough momentum that it cannot be stopped now but I'm still expecting interference from the big CAD vendor types.
I think the simpler explanation is that good PCB CAD tools are extremely difficult and require a lot of developer effort.
KiCAD is very good for an open-source tool that can produce basic PCBs. However, modern paid CAD tools are on a different level entirely. The differences may not be obvious for simple boards with low speed connections, but it’s a world of difference to use one of the high end CAD tools on a complex board with high speed traces.
KiCAD has recently reached a point where I feel like I can execute most of the designs I want with enough effort expenditure, but the paid tools still make certain tasks much faster and easier.
We use kicad for the design of a 28 layer PCB that includes a number of high speed (>10Gbps) impedance controlled lanes, including 25Gbps signal lines, and implementing three DDR4 banks, with a varying number of discrete chips, and breaking out from a large pin BGA, using a number of HDI features (blind/buried vias, etc).
We've been closely tracking the releases, and, at this point, our layout tech prefers using Kicad over another (proprietary) tool for the majority of layouts - so much so that's she's pushing for us to port all our designs to it.
Curious how long did that take and what iteration made it to production? What CAD was used for prior designs? Can you give an example of a "minority layout" that your tech deemed unfavorable?
I really want to believe KiCAD is there...but when billable labor rates are $150+/hr, and a single iteration of that complexity can easily burn US$10k+/ea in one-off prototype quantities + 4-6 month slip for manufacturing, assembly, reintegration, and verification testing, all of a sudden (free == cost-effective ?) becomes a very real risk consideration...never mind that I've yet to engage a customer that was willing to subsidize my development budget based on technical decision to assume a tool risk because it makes the cost of doing business marginally cheaper for me.
One shouldn't lay all of those costs on a tool just because a design needs an iteration to be correct. That happens even with expensive tools. The only question is weather there are any hindrances to doing the design as best as the humans know how.
That is stack up dependant - we work the board house on that, depending on geometery and material. Once they give us a ballpark, we will adjust our widths and clearances to something reasonable, recognizing that fab will adjust the traces and arcs to whatever spec we subsequently need.
I am amateur EE. My boards aren't very complicated but with exception of RF stuff (which I just don't understand) contain most of the interesting stuff: typically one or more STM32s below 200MHz, some flash, sensors, external interfaces like USB, display, some high power (>20A) stuff, some very sensitive analog stuff, etc. I have even recently started including my own SMPS (for lower power things).
Kicad is all I need and probably will ever need.
I get that better tools could help do some stuff but, realistically, great majority of work is outside of kicad (like learning, searching for parts, debugging, etc.) Even within kicad I spent most of the time thinking and tinkering with the schematics. So, according to Amdahl's law, there is very little I can gain upgrading Kicad to something else assuming it actually could make me more productive.
If you are pro and you can do that other stuff quickly and efficiently and EDA is majority of your work then, maybe the calculation is different. But I just can't imagine an amateur could benefit a lot.
> KiCAD is very good for an open-source tool that can produce basic PCBs. However, modern paid CAD tools are on a different level entirely.
Not all of them. I personally chose Kicad 5 over Eagle because Eagle's UX was a pain to use. I just never found any advantages over Kicad despite a few clunky parts of the Kicad 5 the overall experience in Kicad was just more productive. Of course, most of my designs have been sub-10MHz with a few 25-50 MHz Ethernet parts.
Statements like this just leave me wondering what useful features the high end software provides that are really missing? Do they automatically re-tune differential pairs after you move things around? Many companies still seem to have separate people or software for doing BOM management so it'd seem they're not superior in that aspect either. Just feels like I'm missing something.
> The differences may not be obvious for simple boards with low speed connections, but it’s a world of difference to use one of the high end CAD tools on a complex board with high speed traces.
That covers a significant amount of the board practical PCB's that are needed for a lot of projects. Still I've been told Altium and such are much better for high speed signals, but also been told that Altium _doesn't_ do 2.5D or signal simulation and that you need to goto the next tier of commercial vendors.
> The differences may not be obvious for simple boards with low speed connections, but it’s a world of difference to use one of the high end CAD tools on a complex board with high speed traces.
No, not really. KiCAD is more than adequate for DC to GHz range circuitry. Add to that being able to develop custom tools in Python and we are at a point where there's almost no comparison --in favor of KiCAD.
For context, we were doing GHz-speed boards with PCAD back in the dark ages (20 years ago? Can't remember). As someone else mentioned, you work with your board house for controlled impedance manufacturing. Not that big of a deal. Also, you have to understand the subject or it won't go well, no matter what magic and pixie dust the EDA tool might offer. If the designer does not understand transmission lines, software isn't going to save you.
The same is true for power distribution systems. Just 'cause chips are connected to the various voltages on the board it does not mean anything is going to work. PDS design is a subject in and of itself. You can't just throw a bunch of 0.1 µF capacitors at the problem and expect things to work. Much as is the case with transmission lines, when it comes to power distribution for high speed designs, you have to know what you are doing.
We are very seriously considering migrating away from Altium Designer to KiCAD. I spent a good portion of the last couple of weeks taking a look at this in detail.
I am sick and tired of paying thousands of dollars per year to maintain our licenses only to see them pile-on the bugs. Altium has been focusing so much on trying to find a buyer for the company that they have actually done damage to the product and the user base.
For example, nobody I know has any interest in anything involving the cloud when it comes to EDA. Nobody. It is interesting to note that, if you work in an ITAR environment, today, given software realities, KiCAD is far more secure than Altium. I cannot, with a straight face, approach our clients and tell them that Altium Designer isn't reaching outside our network without air-gapping the system. With KiCAD, I can issue such a statement with absolute certainty.
Here's another one: Nobody who knows what they are doing would ever use schematic symbols and PCB footprints from a library. I don't care where they came from. This means libraries have nearly zero value (or negative value) for serious design work. You have to make all of your own symbols and PCB footprints in-house and qualify them for your designs.
Here's an interesting KiCAD advantage: I can actually ship the entire EDA tool with the design. Clients can archive all of it, software and design. That is powerful.
If we make the transition (very likely) we will our annual Altium maintenance fees to the KiCAD organization. For me this isn't about getting free software at all. I prefer to pay for software because it generally means it will be well supported. However, that changes rapidly once it become obvious that the company isn't using the money to actually work on what matters most. By supporting KiCAD financially I would help ensure it keeps moving in the right direction.
Oh, yeah, and code. We can definitely help with plugins and maybe even some main application development or bug-stomping. It would be fun.
> Why would somebody maintain their own library of symbols?
Adding to TD-Linux's answer...
Process variants can create situation where board reliability might be negatively affected by boilerplate PCB patterns. Yes, while things have gotten better over time, you cannot trust anything in any library without, at a minimum, a full check. And, frankly, if you are going to do that, you might as well create your own symbols and PCB patterns.
If you work in aerospace or anything where high reliability is a must, you simply cannot use stock PCB patterns. Everything has to be process qualified and tested. At the extremes you have thermal cycling and vibration testing. High acceleration can rip components right off PCB.
There are other considerations. For example, most library schematic symbols have pins arranged in some fashion that made sense to whoever did the work. This can easily lead to truly convoluted schematics that are the equivalent of spaghetti code. Arranging and spacing pins according to the design one is working on can result in very clean and easy to understand schematics. This can be especially true of analog electronics.
Another case is FPGA's. If you approach FPGA symbols in a generic per-bank style, you can end-up with, again, schematics that are a rats nest nobody can follow. If, on the other hand, you create symbols in the context of the design, things can be massively easier to work with and understand.
Yes, that means you don't use the same symbol for every design. We have created tools to manage this effortlessly. As we transition to KiCAD we are likely to port these over from Altium's VBA to Python and open source them.
Bottom line: The potential liability of delivering a design that fails because you used a third party library can be costly. People with experience have learned this is a false economy. It simply isn't worth the potential consequences, from having to redo boards to product failing in the field.
That said, for quick "non flight-qualified" prototypes and hobby projects, sure.
I think the GP mostly answered it, but usually it's so that they are self-consistent with a set of design rules, and known to work. Every place I've done professional PCB work has had their own library.
I think this trend comes from exposure to really poor standard libraries - for example, I found Altium's libraries being especially inconsistent and weird (though it's been a few years since I've last used Altium).
I've personally found the KiCAD standard libraries to be very consistent and high quality in comparison (both the symbols and footprints), and have no problem using them on my own designs - in fact, if I have to make my own schematic symbol, I often reference the standard libraries' design rules when making it.
CAD is hard, and it’s very hard to displace the incumbents, for the same reason that is hard to change programming languages, people have too much tied up in the old option.
Most of the free/open source alternatives were built by part providers (Mouser, Farnell,..). The objective was clear, if your CAD has direct links to your site, this will probably make you the default provider. It was a good plan, until they realized how hard CAD really is. After burning tones of cash, they sold them for pennies on the dollar to the only people that wanted them, companies like Autodesk that think they can make them financially viable.
I’ve been waiting for this release for quite some time, KiCAD is powerful enough, but I found KiCAD 5 very non-ergonomic, and supposedly KiCAD 6 has a better UI.
> any time a CAD package that was "free" or low price became reasonably competitive, one of the existing CAD
> vendors would buy out the developers and quietly smother it or turn it into a feeder for their "real" product.
And now you witness the power of the GPL.
Say what you will about RMS's personality, he was a genius at foreseeing what could be and developing tools robust enough to combat the best funded legal and social attacks.
Nah, GPL is still shitty, it's enforcement is a joke and I have numerous examples of large companies abusing it even now. And it doesn't stop the developer buyout and forks scenario, just makes the fork inconvenient.
We poisoned pilled KiCad even further by getting it trademarked under the Linux Foundation. That's a whole extra layer of protection.
"although this particular article could probably be edited down to 50% of its size without losing any information :-)."
Reminds of me of the time a friend and I were working on copy for a marketing site (we're both engineers) and we started out with a long sentence and kept removing words until we had just one word... like "box" or "apple" or something like that when originally it was like as long as my comment...
When I was writing a column for JavaWorld I had an editor who was great, she would mark up my column with things like "You can strike this whole paragraph, we get it already." She was really awesome to work with.
> Eeschema files will be self-contained and will not depend on libraries. You will be able to publish and share these files and be sure that they will open properly on other people's KiCad 6 instances.
Oh thank god. Now if only I could automatically import and upgrade all my old projects with missing libraries seemlessly... or can I?
I use horizon for all my schematics and it is very usable. The one thing that is not there yet is the coverage of the parts library, which is because all people involved only put parts into the official library if they have been approved by others. That means parts in that library are very unlikely to have mistakes, but it also slows down the process.
I ended up doing my own fork of the library while parts were still stuck in the PR process.
Still in active development. I still haven't gotten around to trying it, shame on me. Maybe I'll wait for Version H:
"What’s next
For quite some time now, people have been asking for hierarchical schematics. About equally as long, I’ve been thinking off-and-on about how to best go about implementing it. Once I made up my mind, I went ahead and implemented it over the course of about a month.
Even though the implementation is mostly done by now, I decided to not include it into this release so it receives some more testing by a wider audience. Apart from that, this results in version “H” bringing support for hierarchical schematics."
But it uses json for parts. So scraping and just writing it to your library is a real option, especially when you fall back on existing parts. It can also import parts from kicad, although I didn't try that.
S-expression schematics. Nice. There are entire markup disciplines that probably should have just been s-expressions and saved a few billion people hours.
I have a bit of mixed feelings here:. If it was JSON or XML, you could use existing tooling to work with the format. Say, using jq to extract metadata from a full folder of kicad files or generate files or components from a shell script.
Sexp's are a step forward, but they are still only half of a standard. Charsets and escaping rules need to be defined, etc..
I was a KiCAD user until they dropped support for the auto-router. They apparently had some dispute with the developer of the auto-router, and took out auto-router integration. (Yeah, there's some hack to make it still work, maybe.)
I have an old board I'd like to revise slightly, but it's too much work and risk to convert to the new "interactive" (i.e. manual) routing system.
1. It was written in Java. We do not have any java devs nor any interest in learning that language. Nobody else has stepped up, period. Most of us develop from professional experience and Java simply isn't part of that.
2. The autorouter was never embedded in KiCad due to being java. It was a command line utility. It's behavior and/or bugs varied as a result.
3. ***The absolute biggest issue.*** The autorouter has broken licensing status. The author of it was sued by his company for writing it on company time/knowledge/NDA and they claimed ownership of it. We cannot legally bundle it because it's copyright status is essentially disputed by a legal entity with piles of money. That author also disappeared when he got sued. Somebody attempted to fork it but they also gave up years ago because autorouters are.....
4. Autorouters are a beast of work and a full time job in of themselves to ensure they work. You can create simple solvers but they quickly break down once you add more and more traces and constraints. There are even companies that offer autorouting services now as an example of just how much work is involved in doing it right.
We decided our time is best spent elsewhere. We wouldn't stop someone if they came up and developed a new autorouter from scratch to contribute, but nobody has and we have limited man power. We are a niche group. We are Electrical Engineering backgrounded using our intense experience and industry connections to write a tool for ourselves and others. This is well beyond the interests of comp sci code monkeys to get manpower as easily as leftpad on github ;)
As you say, it's interactive (with push and shove routing), not manual. Manual routing is what e.g. EAGLE had for most of its life, where you have to draw every single piece of a trace manually and every conflict meant removing (ripping up) the already routed tracks.
Yes, initial placement is a pain. Especially on a brand new layouts!
However, I've been contemplating the idea of creating a smarter auto-placement for new boards where it'd take the relative positions on the schematic into account. As in taking the relative distances of parts on the schematic, probably using a weighted heuristic / k-means to determine part clusters.
That'd be about 80% of what I'd want from a full auto-router. The new S-Expression eschema format should make it almost trivial to do as an external program. I tried on the old format and it was way to difficult to parse. Though if the Python API's really have been updated then it could be made into a plugin.
Sounds cool. But a simpler possibility would be an option to do placement in part. E.g. select a bunch of components, then click a button and they're transferred to the layout, and then you manually place them. Then continue selecting other components, etc.
1. Learn to carefully structure schematics as hierarchical sheets. 2. Use the replicate-layout plugin to duplicate schematic sheet layout across multiple instances. 3. Get a graphics tablet.
The two are linked. If you structure schematics suitably, you can deduplicate layout (component placement). Another tip is to have two large screens so you can simultaneously navigate both layout and schematic. When you click a component in either, the other is highlighted. This can be a big help during layout. Finally, be aware of right click | Select | Items in same hierarchical sheet.
Thanks for the tip. I was avoiding hierarchical schematics because my version of KiCAD doesn't seem to implement the concept very well. I often ended up with strange inconsistencies, so I gave up. I suppose this is better in newer KiCAD versions (?)
How I do placement now: deleting part of my schematics, then copying the remaining components to the PCB layout, then undoing to get my schematics back, delete another part of the schematics, etc.
Regarding a graphics tablet: I've thought about it, but then I miss the scroll-wheel which is absolutely necessary for zooming in/out. Are there tablets with scroll wheels?
5.1.x works fine, 5.99 is surely improved. Delete workflow unnecessary once you adopt the sheet-orientation. Also improves re-use, though you have to carefully manage .sch version/variant evolution outside of KiCad. Had an awesome scroll-wheel Wacom ~2010 and have sorely missed it since. You can emulate it with touch but it's not as precise. Rocker-switches for zoom in/out or mapping on-tablet buttons are another option.
Altium used to be known as Protel, and it was the cheap option back in the 90s.
I've not tried Altium's autoplacer, but its autorouter is crap. I bought into PADS in the 90s (it was better than Protel, but not as expensive as OrCAD PCB). It used Specctra and then their own Blaze router. Both were excellent. I can not believe how bad Altium's autorouter still is (it leaves your board full of drc errors including shorts).
It is difficult to convey how well auto-routers can work to people who are used to manually routing boards in Altium because of it's broken auto-router. Seriously you hit the auto-route button, and a few minutes later it's done. You do want to ensure you have good constraints, all of the work is there, and it's a good idea to have them even when manually routing. It's very feasible to move parts around and do trial full routes to help find the best placement.
PADS did have an autoplacer, but it did not work very well as I remember.
Altium not that expensive for commercial tools in this industry - the 'expensive as hell' alternatives are Xpedition from Mentor Graphics (now Siemens) or Cadence Allegro.
Isn't there still the follow-me router? I find that more convenient than auto routing since I generally have an idea of where I want to route, but it's nice having to computer work out the details
Are you aware of what TopoR can do? And yes, for 1/2 layer routing it seems to work fine when fed from Kicad.
For relatively insensitive signals, or when you can constrain the layout with rough guidance to something that should easily pass signal integrity, this technology makes it so you can go get lunch while the computer gets a decent layout that you'd typically check before sending it off to the prototype fab or get started on quickly running one in-house (for that <2h turn-around from layout to power-on, including printing and soldering).
Yeah TopoR is really impressive. The thing is, I don't find that the hard problem is just the routing -- it's the combination of the placement and the routing. I find that I place with some idea of how I want to do the routing. I really haven't met any professional PCB designers that use the autorouter. I can see how it might have been useful several decades ago with low speed designs that had massive memory busses. Like if you were routing an arcade machine board or something. But now? Signal integrity is very important and everything is serial.
If I need something more complex very quickly, I usually do some combination of hot gluing and cutting up dev boards and dead-bugging.
They are useful if you really know what you're doing.
Someone who tends to only use the autorouter in a bad way probably wouldn't do much better doing it by hand anyway as they wouldn't be aware of the pitfalls.
They'd still end up with 500 vias, traces all over the place, bad placement and not doing any pinswapping anyway
I used KiCad 5 design some PCBs which are being shipped to me now. I've never done this before, and it was a fantastic experience after I went through a few tutorials on how to actually use it. I look forward to using KiCad 6!
For anyone else interested, I found this tutorial really useful for learning to create a schematic and lay out a PCB with Kicad, then export it for manufacturing: https://www.youtube.com/watch?v=t5phi3nT8OU.
I created a set of small boards and had them SMT-assembled for <$100 shipped. Tools and services for hobbyists have come a long way in the past decade or so.
For any Kicad devs reading this thread, are multi-sheet schematics on the roadmap at all?
I work with some Orcad designers who view it as a necessary feature for the style of schematics that they draw. They feel like forced-hierarchical is arbitrary and high friction, but also don't want to throw a complex design onto one giant sheet.
Nice, I didn't realize. All the tutorials and stuff out there all show a hierarchical schematic as the only way to get multi-sheet, instead of just a flat schematic with some stuff on one page and some stuff on another. I know the UI has changed a lot over the years.
There's no hierarchy to the schematic. Pages are inserted/deleted in a freeform way, the same as you'd do with a Word document. Reference designators are in a global namespace, and so are net names.
It feels like it's a pretty common drafting style, at least in my corner of the world. I've worked at two companies that use this style, and I also see it a fair amount on reference-designs like the linked example.
When I need this sort of schematic in Kicad I have the top-level be a "table of contents" page and everything else is below that. Works great, you can insert/delete pages at will and also you have a nice place to put docs about what is on which page. You then need to use global labels instead of hierarchical labels to link stuff together of course.
I think this has always been present in KiCad? Most of my designs are multi-sheet. I don't care much about the hierarchy, though — I have a top-level "TOC" page, which apart from a description and release notes for all versions contains links to all the sheets.
1. Ability to produce several PCB layouts from the same schematic (e.g. right-to-left and left-to-right, I needed this a couple of times to accommodate different chassis)
2. Ability to have "outboard" circuit fragments (i.e. a set of panel mounted pots interconnected with wires, or a sub-board that's logically a part of the same circuit).
Neither of which seems to be there, unless the review forgot to mention them. Unfortunate, but still there's a significant number of updates that make upgrading worthwhile once the release stabilizes.
2.) is there for individual components (prefix reference with #), but not for schematics. It would be pretty neat though if you could use hierarchical sheets for whole-system design that way, though. Note that you can have multiple PCBs in one PCB file. Kicad doesn't really care.
It's less useful for individual components - I can already represent those with pads without affecting readability of the schematic too much. But I sometimes would like to carve out a chunk of stuff onto a separate board, and connect it with, say, a ribbon cable, yet keep it on the same schematic sheet, or at least within the same project. That is not doable in KiCAD 5 at least.
I agree, but the new S-Expr based format means it is way easier to manipulate the files, and maybe we can see third party solutions to fill this gap (at least for now).
KiCAD 5 was the point where it got good enough for the people wanting to switch to do so. Let's hope this release makes people not looking to switch want to so.
Some of the improvements look universally great (especially sweet & simple ones like the ratsnest improvement) others will slightly alienate the current users but hopefully make the program feel more familiar to first time users.
I tried KiCAD out a few years ago but abandoned it because you couldn't move components around easily without breaking the connected wires. IIRC there was "G" shortcut to do it but the pathing was so poor as to not be worthwhile.
Has that gotten better in recent versions and it is worth another go?
Huh, interesting. I disable that feature in Altium because I always want to break the connections when moving components. I will sometimes use the move-without-break tool in LTspice for two-terminal parts just to slide them in one direction a little bit to avoid text collisions.
I'll have to try this out. I'm curious how parts creation/editing has changed. I just started using Fritzing again and the parts editing is working a lot better now. I feel like it finally has enough feautures to finish a project.
I am learning Kicad myself but I had a friend who years ago had used kicad to design the board for his commercial pulse oximeter it was impressive then but now is worlds improved. This review is great for getting a jump start on the new features
I love KiCad. At this point the only thing missing for me is repeated subcircuit layout in PCB. There’s a nice plug-in for it but I really want to see it integrated. I’m sure it’s coming soon.
Is there a tool that can simulate some types of Kicad outputs? I mean something like do a PCB design for a simple circuit and then "run" or debug it in some way.
For analog electrical simulation there's SPICE. Kicad has a spice tool built in, but I haven't used it. It has some improvements in Kicad 6. I use LTSpice.
For digital or systems simulation there's Renode. You have to recreate the system in Renode,there's no Kicad integration.
I would honestly manually recreate my simple PCB designs in Falstad's simulator[1] and use judgment to decide whether further thermal or high-freq analysis is necessary.
I haven't looked in a few years, but you'll likely be hard-pressed to find an open source simulator that will give you analog, pure digital, "real" digital (logic with slew/noise/nonlinearities), electromagnetic, and thermal simulations plus usability.
ANSYS is a well-established professional simulation suite and doesn't even really meet the usability threshold, in my opinion.
One of the things that KiCAD is doing to making a legitimate open framework for eCAD design. Not surprisingly, back in the 80's when the "CAD Framework Initiative" started up and everyone was going to be able to mix and match CAD components a bunch of CAD vendors got scared and inundated the standards effort with people whose job was to derail the effort. They were successful.
In the years following, any time a CAD package that was "free" or low price became reasonably competitive, one of the existing CAD vendors would buy out the developers and quietly smother it or turn it into a feeder for their "real" product.
That KiCAD has lasted this long is pretty cool. I suspect it has enough momentum that it cannot be stopped now but I'm still expecting interference from the big CAD vendor types.