Hacker News new | ask | show | jobs
by PragmaticPulp 1698 days ago
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.

4 comments

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.

Open source tooling is not about saving the cost of a software license.

Open source tooling is about having indefinite access to your entire tool chain, including the ability to fix or modify it.

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.
What do you use for calculation of signal propagation delay and parasitics when you do layout in KiCAD?
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.

Do you use Spice from within Kicad?
No, I don't use Spice at all.

I am calculating stuff by hand and/or building prototypes (especially when I can't calculate). Sometimes I use Matlab to visualize something I have calculated.

> 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.

>Do they automatically re-tune differential pairs after you move things around?

Yes, in fact they can length re-rematch groups of differential pairs.

Altium does not have built in SI analysis, but it does have optional DC PI analysis, and likely AC in the future.

Most SI and PI are point tools anyway, so even if you use Cadence, it’s not built-in, rather requires importing into another tool.

> 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.

  > Nobody who knows what they are doing would ever use schematic symbols and PCB footprints from a library.
Why would somebody maintain their own library of symbols?
> 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.

Interesting, thank you! Yes, I see how it depends on the field one is working in.
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.

I see, thank you.