Does KiCAD have the features I use in Altium?

I have some notes to add to @eelik’s excellent post.

Here is a good description of what all the layers are for:

Expanding on this, templates are at the project level in KiCad, and are usually for providing common board shapes with common connectors. Because of this you would want to start your project from a template and then start on the schematic. Not so easy to start with a schematic and apply a template later. Though, I suppose if the pcb template was board outline (and mfg standards) only one could copy your “template” pcbnew file into the project, and then rename the copy to fit the project, any time before doing any layout. But this is a filesystem level task, not a KiCad task.

I think there may be some python scripts for via stitching, but I haven’t used them so I don’t remember what they are called nor where to download them. Stitching is easy to do manually in 5.1.5. Just select the via tool and drop them where you want on the board. The vias will automatically be assigned to the net where you drop it. This includes stitching fills as well as stitching traces. If you find tutorials about drawing traces inside a fill of the same net to get vias you have found an old and now obsolete tutorial.

1 Like

It is really grad that you’ve detailed your workflow. It will make the discussion easier and I also appreciate your general tone as it avoid flaming which comes up now and then when users from other EDA programs come on this forum gathering information.

As for KiCad, you have to be aware that it is an open source solution. Thus it is much easier to write programs that extend its functionality. So if you find KiCad lacking a feature, it does not mean that something can’t be done. Most likely you are not the first one with this problem and there might be an external tool available. Here is a good list of external tools available.

Note that when I say external tools this means externally developed (not by KiCad developers). KiCad has a plugin interface, so some of these solutions integrate with KiCad.

And as already mentioned, the biggest tool is the @maui’s stepup plugin for FreeCad.

Here is my stab at specifics

you might miss wire rubberbanding, pin snapping, wire coloring

Can be done with stepup plugin for FreeCad

The word template is open for interpretation. Is use templates so that I have predefined board stackups and clearances (homemade, 2layer, 4layer, different manufacturers, …) So you always start with empty PCB. If you mean templates as in “I’ve already layoud out this power supply swithces in previous project, so I’ll reuse the layout” this is not supported out of the box. You might want to try out the Save/Restore action plugin

As others have already mentioned copy/paste between two open instances of schematics editor is currently not supported. But if you make your design hierarchically you can copy paste selected hierarchical sheet in the file system. This also makes it possible to copy/paste the layout of this sheet using the Save/Restore action plugin

You can currently select only one component within the schematics and cross probe it in PCB. Group cross probing is currently not supported. Though with fresh PCB the components are laid out by default by the specific hierarchical sheet, so it is easy to grab components from one sheet only.

While KiCad has pretty decent P/S router, you can route only one track at a time. Bus routing is not supported. And there is no rerouting when you move footprints.

For via stitching you’ll need external plugin. Can’t find the link to it though.

currently not implemented. There is an external tool for this

see #15

Not supported out of the box, though you have external solutions.

Some manufactures accept KiCad project files, so you don’t have to generate manufacturing files by yourself.

2 Likes

Thank you. The answers I received so far make me feel quite welcome in this community, that’s a big motivator for me to put more effort in this.

My first goal is to point out what I would like to see changed in KiCAD so I can use it for my workflow.

My second goal is to enable other people to migrate from Altium to KiCAD. I hope this forum tread will grow into a migration guide for Altium users.

3 Likes

And some final thoughts:
KiCad is really great if you are not afraid to write a line or two of python code. You can automate a lot of things. Furthermore I’d encourage you to learn the use of source control tool called git. Libraries and project management is much easier with it. If you are already familiar with python and git so much better.

One thing I forgot, KiCad is lacking database integration for part management (inventory, part ordering). There are couple of solutions (KiCost, KiCad-Db-Lib, KiCAD Part Manager) for this but they are not up to the par with what altum offers (by my opinion).


https://github.com/jsreynaud/kicad-action-scripts#viastitching

3 Likes

Highly interesting post.
Thanks to the OP for the clear description, thanks as well to the contributors who were exhaustive in their replies.

However, I’m still puzzled by one question related to bullet 16: I’d like to globally {move in eeschema and pcbnew (*1)} hide in eeschema and move in pcbnew a selection of component texts to another layer. For the moment I’m doing this one by one and it’s exhausting and prone to errors. Does it exist a procedure, a plugin or a workaround to automate the process for a selection ?
(*1) edited following @eelik’s reply below:
"There’s no concept of layers in eeshcema, so I don’t quite understand what you mean by that"

Second, concerning bullet 18: @eelik, please, may you elaborate ? I’m mainly using a CNC for my prototypes, PCBs, enclosures and label-engraved front plates. For the moment, I’m using eco1.user for custom filling areas and eco2.user for the milling the isolation slots between hi-voltage areas. I already posted a question:


I didn’t get the replies I was expecting and I’d like to do more in a close future but ideas are lacking for now !

Should I open a new topic for these questions and move this one to the new one ?
TIA

There’s no concept of layers in eeshcema, so I don’t quite understand what you mean by that.

In the layout you can use Edit -> Edit Text & Graphic Properties dialog. However, it doesn’t work on selection. It should be possible with the new object inspector / property editor system upcoming for v6.

1 Like

Yes, do that. I’m not familiar with making a board with CNC, so I didn’t understand all details when I now read you post. Screenshots and pictures would probably help.

I don’t know current capabilities of Altium.
I don’t know what will be in KiCad V6.
Since 1997 I was using Protel 3 and I am in process of moving to KiCad.

Comparing KiCad 5.1 with this old Protel I suppose that it could be hard to enable to migrate for people who are used to intensive use of class definitions and based on it for example clearance definitions.
I was not using it intensive but defining the clearance between net-class and net or between net-class to any other or between two net-classes I was using from time to time. I didn’t found in KiCad (5.1) any substitute for it.
In KiCad 5.1 you can define net class and clearance for it - but that sets the clearance for each track in that class but not the clearance between any track of that class and others allowing to have small clearance between tracks of the isolated part of PCB and big to the rest (other than controlling it manually).
I am not experienced KiCad user - If I am missing something here I hope someone will correct me.
I was also using element classes to control thermal connections to zones (wider for bigger pads). In KiCad I solved it by adding the right definitions directly to footprints. It is even better as having it in footprints I need not to think of it during PCB design. But that solutions seems to be valid only if you consequently use only your footprints.

@eelik
this exactly what I’m looking for !

Cedric: 16) Move the designators around on the silkscreen, so they are all visible.

Petra: “However, I’m still puzzled by one question related to bullet 16: I’d like to globally move in eeschema and in pcbnew a selection of component texts to another layer. For the moment I’m doing this one by one and it’s exhausting and prone to errors. Does it exist a procedure, a plugin or a workaround to automate the process for a selection ?”

When Altium places a component on the PCB, by default it’s designator is visible on the silkscreen, and it’s comment is hidden. Usually my PCB’s are crowded, so there’s another component overlapping the designator text. In order to correct that, I first select all designator texts on both the top and the bottom silkscreen, and use the PCB inspector to adjust their height from 1.5mm to 1mm. Then I select a single (partially) obscured designator text, and move it, so it will be readable on the final PCB. So basically when I have 2 resistors directly next to each other, I move (and rotate) their designators so they end up above the resistors where there’s free space on the board.

I frequently have the serie of R+R||C (divider and filter) at several adjacent microcontroller lines (to reduce 5V to 3V3 and filter glitches at inputs or to set the voltage and dU/dt at outputs). I end up with something like array of 0603 elements touching each other. I also reduce the text to 1mm high, but place them just in the elements rectangles. We have never placed designators at our PCBs (since 30 years) and (may be because of it) I don’t see the need for it. No one asked us for them so I assume no one really needs them. I think P&P is enough for our contract manufacturer.

You might want to try Move Selected Drawings to chosen Layer action plugin

1 Like

We have never placed designators at our PCBs (since 30 years) and (may be because of it) I don’t see the need for it. No one asked us for them so I assume no one really needs them. I think P&P is enough for our contract manufacturer.

I routinely hand-solder PCB’s because I don’t make large production runs. Typically I make 2-5 boards. In that scenario it helps me to have guidance on the PCB itself

You might be interested in Interactive Html Bom Plugin for KiCad 5.0

2 Likes

You might be interested in Interactive Html Bom Plugin for KiCad 5.0

That is so cool, it looks like this is exactly what I need to manually assemble the board.

One really great thing about the plugin is it creates a single DHTML file that any device with a modern web browser can use that you can include in the archive of production files (see your workflow step 21). That way you don’t need to worry that hand assemblers have a computer that can run KiCad. It does work on my cell phone, but the small size of the screen does make things difficult. So I would imagine that it would work well on tablets. (KiCad isn’t compiled to work on either of those types of devices…)

See https://gitlab.com/kicad/code/kicad/issues/2475.

At step 12, Draw the copper traces, Altium shows the name of the net in (very) small font in the trace. I can set the net names in the schematic using “net labels”. Also, I can set the color of the air wires per net. This is quite handy for power traces (those are dark red in my workflow), and communication buses (those have the color i feel like using at that moment).

Altium shows copper traces in their “native” colors, so red for top layer, and blue for bottom layer. Altium does not have the feature to show the copper traces in the custom net colors, like discussed above. Would this be a feature that is useful for anybody else than me?