Altium vs KiCad

So I’ve been seeing many posts on Altium being more advanced. How exactly is it more advanced? What more can you do in it and what designs can you do there that the can’t in KiCad?

1 Like

I don’t know Altium so naturally can’t answer exactly your question.
In 1997 we have bought Protel 3 (predecessor of Altium). I was using it till 2017 when I decided that KiCad has still few important disadvantages compared with my Protel 3 but has one important for me advantage that decided to move to KiCad. The advantage that decided was routing in Shove mode.
One of things I lost with that move were arc tracks.
I know that next Protel version (from 1998) had routing with shoving other tracks. As arc tracks were in Protel ‘since always’ than I think shoving router of 1998 worked with them.
Long time ago (previous century) using Protel I made winding (many coils as it was 125kHz RFID antenna) with arc tracks. When I had to make winding with KiCad V7 I decided to use only straight tracks. I’m not sure if I had to make winding with V8 will I use arc tracks or not.
In winding to ensure constant clearance between coils you have to keep their centers at the same point while in KiCad V8 you still can’t edit arc preserving its center and radius.
I have written about it here:

What can be done in win and what can’t be done in Linux? So try it yourself and compare) It’s like the question of what can be done in LibreOffice and what can’t be done in Office?The simple answer is that documents in the office are not fully displayed in LibreOffice

Altium is not something I can readily try myself :slight_smile:
The question was just out of curiosity

There is still a lot that is not possible) there is no full panelization (hello plugins) editing of Gerber files is completely absent) every year the file format changes and the code breaks) Should I continue? There is a complete absence of feedback with previously created files in previous versions.
Вам запрещают его попробовать ?

The big things I can think of off the top of my head (compared with KiCad 9):

  • Custom board stackups and stackup-by-region (doing rigid-flex, or flex with stiffeners, or an odd number of copper layers) is natively supported in Altium. You can accomplish the same designs in KiCad, but you have to know the right workarounds (for example, for odd copper layers you have to select the next highest even number of layers and just ignore one layer) and they can’t be represented accurately in the 3D viewer or STEP export.
  • Altium has some basic built-in physical simulation tools for doing quick checks of things like signal and power integrity in the PCB editor, and these can be integrated with design rule checking to some extent.
  • Altium has a number of manufacturing-related tools and DFM checks that KiCad lacks (Gerber editing, a more capable way of converting Gerbers back to an editable PCB, panelization, etc)

There are also a number of areas where you can do the same things in both tools, but the way of doing it in Altium is more efficient. For example, Altium has a dedicated tool (Draftsman) for creating technical drawings for your board, which is a faster workflow than doing the same thing in KiCad (especially for creating revisions to an existing design, where some steps in KiCad currently require you to delete and re-create items)

I think this latter category is where the majority of complaints/requests come from. There are very few situations where you literally couldn’t do a design in KiCad but could in Altium. It’s mostly about how easy and fast the workflow can be.

6 Likes

I’ve only dabbled with KiCAD but have used Altium continuously for almost 25 years.

Off the top of my head:

  • In layout, I can select a large number of items and edit at once. Let’s say want to grab a trace, an arc, a via. The only thing common to all is net name field–but I can change them to the same net.
  • I can select a bunch of tracks and edit width, layer, net all at once. Find Similar Object is so heavily used that you’re just not an Altium user if you don’t know what FSO is.
  • Copy and paste in layout is something I use a lot of. In my clipboard I usually have a short trace plus a via as 99% of my designs are > 4 layers. Having this feature in clipboard makes fanout fast on SMT components during top/bottom route. KiCAD has this… but: More importantly: copy and paste is relative to where I click the mouse. If I wanted to, I could copy relative to some feature, then paste relative to the mouse. Let’s say I want to manually via stitch on a grid. I could place a via, then place one offset by what I want. I select the second via (one mouse click), then cntrl-c but click on the first via. When I do cntrl-v, it will place the via that same offset from wherever I click the mouse. I could then place the third via at the offset… then select those two last vias, copy relative to the first, then paste again. [This is a trivial example and Altium has a via stitching tool–but you get the idea.]
  • Interactive routing. Maybe KiCAD has this? I can start a bus of say 10 nets. I can then grab them and yank, and pull all 10 across the board. Depending on settings they might automatically jog around items. I don’t use this feature a lot but it has its moments.
  • layer stackup table and drill table are “live” and will update when a change is made to layer count and drills used.
  • Also, the layer stack table can be customized–I usually just have layer order, name, gerber extension and the distance between layers. I suppress laminate type, if it’s core/prepreg, and other things not useful to me.
  • Recently I went to add a mounting hole in a KiCAD layout. In Altium I can just drop a pad, turn off plating, done. In KiCAD… not sure how to do, other than go back to schematic and place one there, then push to layout.
  • I haven’t figured out snapping to hot spots in KiCAD yet. User error I suspect.
  • I usually use Altium’s auto placement for designators. When I rotate the component, the designator stays in the same spot. In KiCAD it seems to rotate around and wind up upside down. OTOH many gripe about how far away from the component the auto placement tool places it, and at least one person wrote a script to place designators after parts placement, looks slick, but I still do things the manual way most of the time (except designators, auto still works most of the time for me).
  • speaking of designators, I can select a bunch and change size. I can use scripting tool to search and select things, and edit at once (change all designators to 50mil tall, etc).
  • Haven’t played with KiCAD’s rules so I don’t know what I’m missing. But I can set up lots of rules in Altium. I can also set up PCB rules while in the schematic, having a directive that pushes to layout. Or at least creates net classes which can help with examining the layout (assign all 50Ω route to a net class, then I can highlight those nets and examine easily).

One thing I miss is 3D body generation in the footprint tool. In Altium, they have the worlds simplest and most limited 3D generation tool… that did 80% of what I needed for years. I’ve toyed with FreeCAD and it’s frustratingly hard to pick up. But in Altium I can make simple extrusions, then lift off the board, rotate, what have you. Complex shapes are hard to make (but doable!), but often a simple shape of just a handful of features (see above about copy&paste) can get you really close to good enough. [3D models are now much easier to get, but still, not existent for all things.]

Outjobs! even Altium is not perfect in this one, and I guess if I wanted to learn Python I could “fix” this. But in Altium it’s basically 1 click to generate the pdf’s that I set up (I export 3 per project) and another click to export gerber, drill, BOM (in Excel) and ODB++. [Unfortunately I still export ASCII’s and one of them is not available in the outjob. So close.]

I don’t use Draftsman as I’ve long had Word templates for wrapping up projects and I am not sure I like how a change to Draftsman would look like. It looks cool, but I went a different path. Maybe in another year or two I’ll dig into it.

Schematic, probably my gripe with KiCAD is that forces enumeration. Actually that’s a good thing, hang on. What I mean is, often my customer wants me to label a testpoint as “5V” or some other really bad thing. Well, they’re the customer… Yes, I could use TP1 and suppress that on layout, and instead show comment field. But anyhow. Altium doesn’t care that the component doesn’t end in a number. I could rename everything into designator A, B, C etc and it’d be happy linking everything together. Heck it will push the same designator multiple times to the layout (while throwing a warning). [Would I pay Altium’s cost for this feature? no!] This is kinda low on the list of problems TBH.

A worse problem might be linking of schematic pages. I’m used to flat schematics, and have in the past just dropped a bunch of pages from other projects into my project folder, linked into my new project, then carried on. Hierarchical is not always the answer to multi-page designs IMO.

Kinda bugs me that the included libraries seem to lack any linkage to footprints. Drop a resistor onto the schematic, and then have to pick a footprint. Now, from what I can see, KiCAD has some great libraries–when I started in Altium I quickly learned to not trust even their included libraries! had to draw all my own. Still, in Altium, my schematic symbol can have whatever footprints included in a dropdown (and I can always add on the fly if I wanted to). It looks like, for any symbols that I make, I can assign a footprint so for custom stuff, no biggie. Just a bit of a shock, that’s all.

I looked at the guidelines for naming and symbol drawing in KiCAD, and boy do I wish I had that when I started out. My biggest gripe there is that for years I’ve removed the yellow fill on every component made in Altium. Doesn’t matter what, I refuse to use yellow-filled boxes for anything. [Old man shouting at clouds here.]

One thing I haven’t gotten around to “accepting” is that the top schematic and layout file name have to match project name. Often I revise stuff and may wind up with a Rev 5 schematic and a Rev 2 layout. For years I did revision in the schematic file name but stopped when it messed up hierarchical designs: but still do on layout, as that drives the names of the gerbers. And I have had to periodically pull up different revisions of the layout and compare, so having version in the artwork file name has been good (as in pdfs that get exported). Last couple KiCAD projects I left off revision number and felt… dirty. Different EDA tool, different process. I’ll get over it soon enough.

In Altium footprints, you can embed the step model. Seems trivial… but in Altium, if I delete the libraries, nothing happens to my project (other than a warning about missing libraries). I can give away the files and everything is 100% included. [There are ways to break this now, by not embedding in the first place. I don’t recall that in prior versions.] [I also started playing with text variables recently and with those I can break things if the project file is not included–if the text variables push info to silk, then w/o the project file you might have bad silk. Otherwise, in the past, one could open the layout separate from the project and it’d look just like it did when the original designer was working on it.]

I did a few designs recently with variants and could set it up so as to export all versions at once. Each folder has its own BOM (common layout, different assemblies). I don’t do this a lot but variants were nice in this case.

In Altium I made a database (cough Excel cough) that has all my R’s and C’s, with MPN’s, Digikey P/N’s, etc. I can drop a resistor onto my project, assign a value, pick a footprint. End of schematic phase, link to database and it’ll pull all the ordering info over, using a 3 key look up (library reference, comment, footprint). Haven’t figured out an analog in KiCAD yet. [Altium has a way to bring info from Digikey straight over too, using their Manufacture Search feature. Have not used. Often I open several things at once in Chrome as I am comparing them while trying to figure out what is best, comparing datasheets.]

Haven’t used the simulation tools in Altium. I wanted to play with the power distribution tool, only to find out our license didn’t cover that feature. Bummer. Maybe next year.

Altium can have multiple projects open at once. KiCAD is one per. Going back to copy&paste… I have copied huge amounts of schematics from one design into a new schematic. And likewise for layout. Not something I do all the time and not something I’d teach beginners. But won’t lie, it’s one of the tools in the box. In KiCAD I have copied from one layout to another, but it’s been a while and I want to say I had some issues, don’t recall now. It’s at the least a pinch harder.

I do miss being able to just open files randomly. I can have Altium open and just double click any Altium library, schematic or layout, and it’ll open. I can edit or just view. Do not have to open the whole project.

Altium does have some form of SVN built in but I’ve never used it. Actually there are a lot of tools that I’ve never used in it. Some of it came along after I figured out a workaround, and as such, didn’t need the tool. Or it just didn’t apply to me.

2 Likes

You can do this in KiCad too

You can do this in KiCad too (use the Copy with Reference command, which can be assigned to a hotkey, or even replace the Copy action on the Ctrl+C hotkey if you want Altium-like behavior)

KiCad doesn’t support the concept of free pads. The way to do it in KiCad is to use a single-pad footprint. There are a lot of mounting hole footprints in the default libraries, or you can make your own.

Make sure snapping is turned on in the PCB editor preferences

You can do many of these things with the Edit Text & Graphics tool in KiCad. It’s kind of like FSO but more limited in scope.

Coming in KiCad 9

Well, most of the ones that have only one good choice of footprint actually do have a link pre-defined. You just picked the example of a resistor, where there are hundreds of possible correct footprint, which is one of the type of parts that doesn’t have a link in the default libraries.

Added in KiCad 9

Same thing is supported in KiCad, other than the Manufacturer Search feature you mention at the end of this paragraph (because these all are paid/proprietary APIs to get the manufacturer data, not something open to all that KiCad could use)

7 Likes

Thanks. I know I have a lot to learn, but the truth is, learning comes with using. The more I use it, the more I’ll get there.

I can mention couple of things that KiCAD still can improve on.

  1. Highspeed routing and impedance control.
    Altium is not the best, but it can create impedance profiles and enforce them during routing. It also has not too bad diffpair routing with length match(or phase matching).
  2. Mutiboard projects.
    This feature saved me lots of hours when I was designing expansion boards for some FPGA dev board that used 400-500 pin cables to connect all the components of the setup.

However, one can do almost everything in KiCAD. The only limitation is how much time one will spend. I had an amazing CI setup for KiCAD at my previous job that did validation for schematics, PCB, template compliance etc. before designs went for review. Doing the same thing with Altium is a pain and wast of time.
One thing that KiCAD can and Altium can’t is scripting. The Delphi script is a joke compared to what is possible with python. And for people who can write in c++ - you can add whatever functionality to the tool.
And at the pricing that Altium has today, my company can afford 2 developers to work fulltime on kicad feautes and still have money left for beers every month for everyone at the office. :slight_smile:

6 Likes

If I had to name one feature I’m missing the most in KiCad, is the support for Variant assemblies.
I use variants quiet a lot, but not very extensively feature wise. It’s mostly the “Do not populate” or “Add” feature, but I need to:

  1. make sure all my changes are made right
  2. make it easy to export manufacturing documentation
    Right now I do work-around with “VARIANT” custom field, together with KiBom’s directives to add/remove certain component. The problem is, I can’t really see my changes on the schematic. I’d like to change my assembly variant and see which parts are DNP’ed there. And then export my assembly documentation.
2 Likes

I’m looking to work on high-speed tooling in the v10 cycle. What is it that Altium does at the moment that you can’t do with KiCad? Obviously phase / delay tuning isn’t in KiCad currently. On impedence profiles, you can set trace parameters by netclass, and use DRC rules to modify these based on what layer you’re on. KiCad won’t calculate them though, you need to do that yourself. You can also get the router to respect these when routing, so it would be good to understand your workflow to see if we are missing something, or if we need to improve the UI flow.

Yes that one is a fairly common request. There’s probably a GitLab issue you could upvote for it.

We were hoping to get this in to v9, but it didn’t make it over the line. No promises, but it’s something we know will be helpful to many.

5 Likes

This is what made Linux. Companies got tired of M$'s (fill in the blank) and started putting developing power behind it. It just made good business sense.

Yup, variants is the one thing I am keenly aware of, I get around this need by the use of KiVar . . . yes native support in KiCad would save me some time and potential errors, but for now I can cope.

It’s not a big deal to me. Maybe I’ll change my tune some day (technically I’m still using Altium full time) but for now, I’d rather have a simple tool that has a quick learning curve. Until recently I was avoiding variants in Altium, and not having a problem with vendors manually fixing PnP files for DNP or part changes–I would design the board as a bare board, kick out an ASCII with component locations (everything as DNI). Then manually generate BOM’s per “variant”. For low production runs this didn’t seem to be problematic (arguably I could make a copy of the project per variant, just to export ASCII and BOM’s–tedious but doable–but I don’t recall doing that).

@JamesJ and @trancecat,

It [Altium] also has not too bad diffpair routing with length match(or phase matching).

Maybe I am missing something here. KiCAD has had differential pair routing and delay-matching tools since at least version 4.0.7. I remember using them.

@supton:

One thing I miss is 3D body generation in the footprint tool. In Altium, they have the worlds simplest and most limited 3D generation tool… that did 80% of what I needed for years. I’ve toyed with FreeCAD and it’s frustratingly hard to pick up. But in Altium I can make simple extrusions, then lift off the board, rotate, what have you.

Yes, FreeCAD is not easy to learn. But on the other hand, should KiCAD, which is an electrical CAD, try to do all things mechanical? Every new feature introduced in a software suite must be bug free, well-supported, and integrate well with other components. Here we are talking about major features. IMHO, the Unix philosophy (tools should each do one single task and do it very well) can be very productive here. Why not let the mechanical and 3D stuff to FreeCAD, which FreeCAD can do very well and much better than Altium, KiCAD, or Allegro (I’ve used all of them, Altium and Allegro because I was forced to by different employers)? Because KiCAD is open source, people can write plugins for it. So, it’s not just KiCAD proper, but also the whole KiCAD ecosystem, which includes very powerful plugins. In particular, over the years, I have used, since KiCAD 4, @maui’s StepUP Workbench (plugin) for FreeCAD, which “marries” KiCAD and FreeCAD, enables seamless “pushing-pulling” between KiCAD and FreeCAD, and gives KiCAD 3D capabilities second to none.

There are also RF/μwave tools in KiCAD, whose capabilities can be expanded by RF tool plugins. Serious efforts are under way to build tools which facilitate effortless import of a KiCAD pcb into the open-source full 3D electromagnetics simulator openEMS. With the pcb imported into openEMS, impedances, crosstalk, radiation, etc. can be simulated. Since a pcb can be imported into FreeCAD, some people have run thermal simulations of KiCAD pcbs in FreeCAD. (Disclaimer: I have not had the opportunity to use any of the plugin for 3D electromagnetics and have not run thermal simulations of a KiCAD pcb myself because at work I have to use whatever software my employer forces me to use.)

I think that in order to fend off the rapidly-advancing KiCAD, Altium is trying to do things which are best left to other specialized packages and in the process it ends up with buggy code. IMHO, Altium is not worth the prices they are charging for it.

1 Like

I worked with Altium and KiCad, to be honest I like KiCad more.
My location:
-Working with Kicad is much easier and faster

  • KiCad has simple and understandable menus, unlike Altium which has nested and confusing menus.
    -KiCad has a very good default library, in Altium I have to spend hours searching for a specific footprint or designing it myself.
  • (at least for me) designing and finishing a project in KiCad is much faster than Altium.

Of course, I agree that KiCad has disadvantages compared to Altium that can be fixed.

4 Likes

Please be more explicit with your comment. Devs. are reading this thread so any realistic comments may be of use for the development of Kicad.
“has disadvantages” is a totally useless comment with respect to improving Kicad.

Yes, one can do a lot of things manually in KiCAD. That’s the main pain - manually. With impedance profiles it is possible to go from layer to layer and Altium will change trace width and even via type to match the target impedance profile. Granted, for PCIe routing Altium can’t do proper layer transitions, with cutouts and via stitching :slight_smile: But it’s a time saver non the less. And what is useful with the profiles is the possibility to update the traces if stackup is changed. It’s not always friction free updates, but 80%ish.

Yes, that issue has been there for some time :slight_smile: I hope we get there some day. I so don’t want to use Altium anymore.