KiCad as alternative to Altium and other paid software

I am professional developer with 30+ years experience. I have used many of the PCB / EDA software’s on the market. Since 20+ years Altium is first go to software.

The last week I have tried to do complete design in KiCad (just not playing around) to see what it’s capable of. I almost pulled this of. KiCad is more capable than I expected. Compared to Altium it’s much faster. And I think the routing function in many ways are superior to Altium. Is KiCad a replacement to Altium?
I will say yes or no. A smaller project specially if you stay out of BGAs and QFNs/SONs KiCad will do the work pretty much the same.

Here is what I found missing in KiCad 5.99 to make it decent replacement to Altium. KiCad Version: (5.99.0-8185-g86be755c83), release build

Schematics
Altium have an excellent feature called Harness. Its basically a bus you can build with arbitrary net names and sub busses. These connect different sheets/modules.

Database connection
We store all component info in externa database or even Excelsheet.
When you place a symbol in the schematic Altium automatically creates fields in the symbol corresponding to values i database like manufacturer’s part number etc.

Bill of material
Due to the missing information in the KiCad library symbol (see above) the the generated BOMs are very limited that require a lot of reverse engineering.

PCB
Creating pads and vias is a mess. The lack of pad stack support make it very complicated to make more advanced feature. I have noted that you can simulate many things by placing multiple pads on the same spot with the same pin number, but its not the same. On more advanced designs you want different pads and solder mask on different layers. You don’t want one same via in every place on the board.

Fabrication Outputs
It looks really good and I couldn’t see any obvious missing.
Altium have super advance batch work configuration to automatically create production files but most of the time it’s really not needed.

Future Development
I have read on this forum about the development process it looks quite slow if you compare to other open source. I think for example Blender is something to look at.

Having one or several licenses of different CAD packages you usually pay thousands of dollars per year. I think many of us would be interested in a more professional approach. Could there be a model where you pay a couple of hundred or maybe thousand to speed up the process.

Best regards

I have been supporting an Altium design over the last several months. While I hear a lot of good things about Altium, I find it to have a steep learning curve. It might be good if you use it full time. But if you use it as more of an auxiliary tool I wonder if it is too counter-intuitive. For example…“Panels?”

No question that Kicad has some odd aspects but I have been using it without significant difficulty.

1 Like

Most of what you write is already known by the KiCad developers.

A database connection has been mentioned several times. Recently Partkeepr was mentioned (again)?

V5.99 a simplistic implementation of a padstack is implemented, where pads can be turned off for layers where there is no track connected to a via, bu a full pad stack is indeed not implemented yet.

https://crowdfunding.lfx.linuxfoundation.org/projects/kicad
https://cernandsocietyfoundation.cern/projects/kicad-development

There is also commercial support for KiCad, and you can also sponsor specific features at:
https://www.kipro-pcb.com/

Blender is currently a much bigger project then KiCad. Until about 6 or 7 years ago KiCad was a quite small and still “hobby level” project, but development is speeding up significantly and it’s now growing into a professional EDA suite, but it still is not completely there yet, some of the “expected functionality” is still missing. According to https://fund.blender.org/ Blender get about EUR135000 per month of donations, while donations for KiCad probably average out at just a few thousand EUR per month.

I haven’t used buses myself, but did you know that buses were considerably enhanced early in 5.99 development? It’s not well documented yet, but you can find something in Post-v5 new features and development news.

https://gitlab.com/kicad/code/kicad/-/issues/6941#note_478012446

It’s unclear how much you know about KiCad’s capabilities. It’s possible to create atomic parts which have all fields prepopulated. In KiCad you do it by copying a symbol into your own library (or creating a new one). Add the fields and their contents and save the symbol. They just aren’t dynamically populated from a database (if that’s what you mean).

https://gitlab.com/kicad/code/kicad/-/issues/2402

This you can already do. Remove the Mask layer from the copper pad and create a new Aperture pad with the Mask layer.

Slow? IMO it’s pretty fast compared to much of other Open Source. It’s very difficult to say anything definitive about this, you should have some hard data and know what you actually compare.
Paul already gave pointers to monetary support and feature development.

Blender may be the flagship of sponsored Open Source development so it’s a bit unfair comparison. 3D design is probably much more popular amongst Open Source enthusiasts than PCB design. But KiCad is certainly going forward.

3 Likes

In my personal opinion KiCad is probably closest to Autodesk eagle (version 9) regarding feature set. It has still some way to go to catch up to altium.
But even this feature parity with eagle is good for the community overall. It ensures that autodesk needs to continue to invest into improving eagle which drives innovation. Maybe both eagle and KiCad will catch up far enough to altium for them to need to start improving again within a few years.


One major step into this direction will be the full altium import feature when its done. This would allow companies to switch to kicad much easier for some of their projects. This can potentially reduce the number of people who need altium licences and is something that can be done much earlier than getting full feature parity.

Good analysis, Bo.

My questions is the other way round: Is Altium a replacement to KiCad?

I have no experience with Altium. I have only played with a 2013 version for a while. Nothing against Altium or any other package.
We switched from OrCad to KiCad in 2005 and we have completed many commercial boards since then. With fine pitch footprints and big BGAs too.

Sometimes I needed a workaround or a hack to get what I wanted. Maybe it took more time to make a project than it would have taken with another tool, I don’t know. I can concede here.

I would add a feature that would make my life easier: I want to be able to edit a corner of a zone and assign its coordinates. Now, I need to zoom in a lot and set a fine grid.
KiCad may have some quirks but one can solve most issues with a bit of effort.

…except that Eagle disappearing?.

To me it looks like they are currently working on giving fusion a pcb design workbench. Sounds quite innovative to me. After all getting a parametric 3d design tools feature set for designing PCBs might just be beneficial to users.

If they pull this off then i suspect that this will open up a lot of doors to their users. So it might be quite important to get parametric features into KiCad to keep up with them. (I seem to remember there were plans for getting parametric tools at least for the footprint editor)

Yeah having some background with solidworks, the lack of parametric drawing tools drives me batty. I often resort to making my footprints as dxf and use the various hacks to import then.

3 Likes

Altium has i steep learning curve, that’s true. It’s also much more feature rich. But most of the time you don’t use most of the features.
To be effective in Altium it’s good to rely on the shortcut keys. The list of shortcuts is huge but also very effective. The support for making panels (if you mean combining several PCB to one assembly unit like 2 x 3) is very strong in Altium and in my perspective very intuitive. Panels can be addressed in both gerber editor and PCB editor. PCB editor is the preferred way I thing.
I have not seen any panel support in KiCad.

The drawing capabilites is poor in any EDA/PCB software I know of. You don’t find these in Altium either.
What I find missing/poor support in many PCB software is locking features. You want to be able to lock any critical feature. You also want to be able to lock hole layers.

Yeah, I don’t think it’s smart time investment to recreate solidworks/freecad in kicad. But a solid dxf importer, where for example you can click on closed regions and have them automatically converted to pads, would be great.

This is accurate. Several of us are quite experienced with Altium and other commercial tools. The limiting factor right now is developer time. The good news is that many of the things you mentioned are on the roadmap (and some already exist in nightly builds, such as harnesses – but not documented yet, as mentioned)

2 Likes

KiCad is a one project - one pcb tool.

Anyway, combining different pcbs it is possible. Although it’s not easy and prone to errors.

I wuold use this feature only with finished boards and I would not use refill zones afterwards.

With pcbnew standalone mode there is the option “Append pcb”. The netlist and the schematic bond will be lost. It could be kept with a lot of effort.

Footprints can be locked. I cannot check if in v5.99 other elements can be locked, such as edge-cuts or tracks.

Right now there is KiCadStepupMod for Freecad where you can import a design, modify the board edge and push it back.I don’t think I have ever modified a kicad board in kicad since I found this. I’ll draw a crude outline and push it to freecad to fully constrain the board outline.
It can do footprints as well

I think some basic constraint for board design in kicad would be good as presently is it not pleasant … but neither is Mentor Xpedition or others :slight_smile: who tend to do the board outline in another package and export the outline as DXF

2 Likes

You have been able to lock tracks and vias for a while. Locking graphic shapes just got added.

3 Likes

Tighter and more efficient integration with FreeCad (as well as improvements to the DXF importer) probably makes more sense for the project than developing our own mechanical CAD tooling significantly, although there are some minor improvements in our editing/drawing tools planned for the future.

I haven’t used buses myself, but did you know that buses were considerably enhanced early in 5.99 development? It’s not well documented yet, but you can find something in Post-v5 new features and development news

-Look interesting I will check this.

It’s unclear how much you know about KiCad’s capabilities. It’s possible to create atomic parts which have all fields prepopulated. In KiCad you do it by copying a symbol into your own library (or creating a new one). Add the fields and their contents and save the symbol. They just aren’t dynamically populated from a database (if that’s what you mean).

-Yes I know of this. This was the old method in Altium and it still works in both packages. With that method you need one symbol copy of every resistor and capacitor value for example. Not very practical.

solder mask
This you can already do. Remove the Mask layer from the copper pad and create a new Aperture pad with the Mask layer.

-Exactly, this is what I had to do when I imported my QFNs to KiCad. And it works, the generated gerbers are the same. The process is time consuming and complicated though.

100% agree.
I can think of 3 options for mechanical improvements:

  1. Integration with Freecad following the way started by KiCad-StepUp
  2. Develope KiCad own mechanical tools
  3. “Copy-paste” Freecad code into KiCad, as Freecad is open-source.
    In my opinion approaches 2 and 3 are a waste of time, resources and effort.
2 Likes