Altium vs KiCad

First, we need to solve problems that are 4-5 years old and are carried over from version to version.

You can do something very similar if you assign each net with an impedance requirement to a specific netclass. You can then set DRC rules like this:

(version 1)

(rule CLASS1_F
	(condition "A.hasNetclass('CLASS1')")
	(layer "F.Cu")
	(constraint track_width (opt 50mil))
)

(rule CLASS1_In1
	(condition "A.hasNetclass('CLASS1')")
	(layer "In1.Cu")
	(constraint track_width (opt 60mil))
)

(rule CLASS1_In2
	(condition "A.hasNetclass('CLASS1')")
	(layer "In2.Cu")
	(constraint track_width (opt 70mil))
)

(rule CLASS1_B
	(condition "A.hasNetclass('CLASS1')")
	(layer "B.Cu")
	(constraint track_width (opt 80mil))
)

And configure the router to ‘Use netclass width’, and disable ‘Track width from existing track’ (the drop-down and button shown here):

image

The router will then pick up the required track width every time you start a new segment. The same should work for vias, but I haven’t tried that in a while.

4 Likes

The biggest feature that KiCad has over Altium - the one that makes it a clear winner - is that it is cross-platform.

Until Altium has MacOS and Linux versions, it’s useless to me.

5 Likes

Interesting. I haven’t played with rules that much in KiCAD. I will give it a go. One thing that comes to mind right away is how I would manage all these rules for all the stackups I have.
I have about 10 common stackups for 10-16 layer PCBs and relatively frequently need custom stuff as well. Has anyone made some management system for rules already?

The KiCad way to do this is to make project templates for each thing you do commonly. You then do New from Template to get a project with all the design rules set up.

1 Like

Many defects have been mentioned by other users in this thread.
However, if something new comes to my mind I will say it here.

I don’t want to be picky but I wouldn’t talk about ‘defects’ either.

Note that Altium is a commercial software while KiCad is not. This nuance is very important before making an x vs y comparison.

This is a common statement in various forms, but I don’t agree completely. What should count for business (company which designs PCB’s) is cost/benefit ratio. There price is important.

But if we are talking about planning KiCad’s direction, future development and features, the price of the software or commercial vs. non-commercial isn’t meaningful at all.

Yes, but the intention of the question was just that. Raw comparison of x vs y. It’s just to know about what features or capabilities one have over the other. It’s not like comparing the softwares taking into account the circumstances of each software from an economic point of view

1 Like

I would interpret ‘defect’ as a synonym for ‘bug’. What I wouldn’t say is that “Altium does this but KiCad doesn’t” is a defect. It might be a missing feature, or it might be something KiCad does differently. It is not intended to be an Altium clone; far from it in fact.

5 Likes

It’s a fair point, and I don’t disagree. That said, I’ve used the feature in Altium for years, so… I miss it. If there was some vastly easier tool to make simple 3D bodies that didn’t have the overhead of FreeCAD I’d be interested. At the moment I don’t have the time to learn FreeCAD so… on a KiCAD project that I did, I went into Altium, made the 3D body I was after, exported the step, and got what I wanted in KiCAD. [I forget what it was, something with some extrusions, like a rubber bumpon that I couldn’t find an official step for.]

I would agree with you, simpler is better. Less menus, less buttons, less things to set wrong. Less of a learning curve.

I don’t know if Altium is trying to compete with KiCAD, but I don’t think it is. IMO they are aiming for big companies who can scoff at the bill. Altium wants to play with the big players on the cloud.

Agreed on the buggy code, that has always been a problem. On the flip side, as I look at your plugins, as a non-programmer I’m finding myself overwhelmed by trying to learn git and all the overhead there. Well done or not, Altium attempts to integrate these features. Going back to the FreeCAD comment, I don’t have to learn that tool to make simple 3D bodies–in minutes I can hack together a “good enough” solution. Inside of the tool I’m used to using. Time is money, and Altium is aiming at a market that lives and dies by that. It only has to do all the required things “good enough”, because most users will only work on something for a period of time before going off to the next project.

I do intrinsically safe layout with Altium from time to time and it has a lot more features to accomplish that, you wouldn’t have a hope of doing that with kicad.

The ERC/DRC is way, way better with Altium, much more complex and flexible, kicad is really poor in this area.

Altium is absolutely packed full of other features kicad doesn’t have.

BUT, and this is a big but, for most people they are features that you are unlikely to want or need for most boards. (DRC checking aside.)

Also, kicad’s user interface is light years ahead of Altium’s which is just terrible. Really atrociously bad, arcane, frustrating. It’s too complex for its own good at times. And it’s insanely expensive and only works on Windows.

If you are doing standard boards without HV tracks that want different DRC constraints, kicad is truly excellent. Even if you are wanting different rules for different tracks it is possible, but doesn’t work well like it does on Altium.

Altium also has a number of poor bugs that drive me potty at times and it’s slow, resource heavy whereas kicad is snappy and responsive. I enjoy routing with kicad, I generally hate routing with Altium.

1 Like

I route boards with lots of different complex DRC rules in KiCad, and I think it works well. If there are parts that don’t work well for you, it would be useful to open bug reports or threads about them in more detail. From my point of view, there are very few relevant DRC things outside of some DFM checks and time-domain signal integrity that are possible in Altium but not in KiCad.

I think it’s pretty incredible that this thread exists at all.
I mean - comparing a free and open-source program with one that costs thousands of dollars per seat per year?
If this was KiCad vs. Fritzing, I could see it.

That said - KiCad comes out pretty well, doesn’t it?

4 Likes

On a multi lingual/national forum, I’d not too much importance on it. :wink:

To amplify @craftyjon’s reply - it would be really useful to know what you think is missing. The KiCad DRC engine is pretty powerful, but can always be improved if people have use-cases we’re missing. ERC is an interesting one; I’ve never found KiCad’s lacking, but it is a one-size-fits-all. It would be great to know what use-cases you have that it doesn’t cover. Putting these in a GitLab issue is the best way then we can track them.

Adding my 5 cents too - KiCad has pretty advanced PCB rule system, but currently lacks a UI to enter the design rules in a “zero prior knowledge” way. It’s worth the effort to study some projects with complex DRC rules and the learn the DRC language. As some people mentioned already, we don’t yet support time-based delay rules or directly specifying trace impedances (instead of defining characteristic dimensions calculated by yourself or another tool), but IMHO it’s at the very end of (at least mine) needs for an advanced PCB tool.
T.

3 Likes

At work, I am doing PCB Layout for HV Power electronic and Pads (worst software ever) has some DRC possibilities that use the height of components, for example, I can specify an area with a maximal component height. This is quite useful when I am placing components in an HV area under a metal heat sink. The same for placing components on the back.

I don’t know if this is possible in KiCad (Pads cannot do this) – The EMS we are using wants smd Pads when being on the back to be at least 3 mm away from tht pins.

2 Likes

That’s an interesting one - KiCad can’t currently do this. The closest would be to export the 3D model of the board and check in a CAD program, but clearly this is not an interactive process while placing components.

I’m used to Altium, learning with KiCAD. Altium’s recent changes though have been driving me batty, it thinks it knows better than me (it might, but I’m the final say). Very used to hitting space bar to flip the angle to get what I want. And yes it’s slow, and I’m not loving the UI change that happened with AD18. AD17.6 was much faster and I resisted changing for years. [Only did so because the rest of the team was on AD20 or higher. Then vastly better support for counterbore/countersink came along, now I can’t go back.]

I’d say so. I’m trying to justify doing more projects in it, just to become better with it.

1 Like