I just dropped Altium after about 5 years and switched to KiCad. I’ve done 3 PCBs, including a fairly dense 4-layer board with fine pitch parts. I found KiCad was easy to learn, in all 4 of the major aspects: schematic entry, symbol creation, PCB layout, and footprint creation. I also really like the OSHPark connection, just wish I could get hot air leveled 37/63 PCBs. Minor issue there.
I kept a list of the only things I missed:
Can’t control via tenting.
Can just “Place a Pad” in the PCB editor. Note that if you could control via tenting, this would solve this problem.
Can’t copy-paste schematics pieces between projects. I know you can make small files and include them, but often I start with something and make a number of small modifications.
Manual routing is a bit more tedious than with Altium. It’s very “Protel 98” like. So you spend some extra time fighting that last little connect to a pad. “Intuitive” is another way of saying a lot of software that does what you want not what you mouse.
Can’t have a cut-out in a component pad library.
Am learning more every day. Of course there is the “usual” changing software issues like “What is the short cut for xxxx here”. But it was no worse than when I tried PADS and some other software. I found my “muscle memory” formed fairly fast. I sort of miss the two character short cuts (like “va” to view a rectangular area you then draw with the mouse). But I’ve learned to “zoom and spin the mouse wheel” to get where I want.
I will also note I had the luxury of being at a point in my work where I could basically “orphan” previous boards. There is nothing worse that being trapped in some software system because your data is stored in their “Hotel California” internal form.
My thanks to the people who have spend so many years making this a great piece of software!
Copypaste between schematics has already been implemented in the developent version. If you want to use an old design as a base for a new one, Save As (for project) is also there in the development version. I use it often for v5.1 projects (open with 5.99, Save As, close).
If you can describe accurately what you would expect in a certain situation, you could file an issue for it. I have done it for several smaller or larger details which I have found clumsy, unintuitive or difficult.
You kind-of can, but it is an all or nothing deal. When exporting to gerber you can choose to tent or not tent ALL vias:
I’m not convinced that either of those two links in @eelik’s reply will do anything for via tenting, unless the mask layer is included in the future pad stack editor. (I don’t see any explicit mention of the mask layer mentioned when quickly looking the links over.)
If by “component pad library” you mean what KiCAD calls a “footprint”, yes that is a known issue. I think it is being worked on, but I don’t know the specific gitlab issue number(s). Hopefully because the head librarian also wants this it will float up near the top of features to add before v6 is released.
I’m not familiar with Altium, (and I never will be) but I’m curious how familiar you are with the interactive router in KiCad. I find that with the right settings it just pushes traces and via’s aside to make just a little more room to squeeze in those last few tracks. I’ve made a denser board with it then I would have dared otherwise because of a too big risk of having to move QFP components on a nearly finished design.
Not to denigrate KiCad, but the Altium router is worlds above. In some cases it’s more like a guided autorouter. I especially like glossing and the nice track cleanup tools in Altium.
I love KiCad more because: freedom, open file format, scripting, etc but on nice interactive routing interface and control, Altium is so so much better
If someone needs via mask options and wants to remind developers about that, they can go to the main issue and add a comment there to make that detail explicit.
If our chain of interpretation eepete->SembazuruCDE->eelik is correct, we are talking about “keepout areas” in footprints so that you can keep tracks and zones out of an area in a footprint.
I supposed that the talk is about Edge.Cuts in footprints.
In my first KiCad PCB (4.0.7) I needed it and have to do it at PCB level so any move of footprint resulted with separate moving the opening (rectangle with 4 round extensions for milling tool).
Now I have the E ferrite going through PCB so 3 openings each with 4 round extensions.
It is not explicitly mentioned, but once KiCad can keep track of pad stacks for every hole, it is possible to modify pad stacks for individual holes easily. Pad stacks include all layers that are relevant to holes, including masks.
thanks for the reply ! I looks like these ideas are in the works which will make a great system even better. Seems like big software packages like this are prone to feature creep and “80-20” rule (80% of your use is with only 20% of the features). The “two character shortcuts” seem like a natural evolution when you run out of single keys. They support a somewhat natural hierarchy since the first letter is a general action (Place, View, Edit, Move) and the second is the object for the action. Having looked at the link you were kind enough to supply, it looks like there is good awareness here and I’m sure the same skill that produced KiCad will implement this in time. Since we are all good 'ee’s I’m sure we will argue vociferously about the letters and then learn to use the final outcome.
I’ll try some screen shots for the routing issues.
Other replies were correct on the “cut-out”. I have a small OLED display where the footprint is the overall rectangular area with 4 holes where screws hold the display in place. The display fits in an area of the board where the entire PCB has a cut-out/routed-out hole. I could not use the layers that is used to prescribe the outline of the board for final routing to get the finished shape in the footprint, so I had to add it in at the end of the layout.
OK on that being a known issue. It’s one of many things that save a few minutes. I have only one component (a display on a small PCB) where the footprint has the cutout where I place the display “inside” of the plane of the PCB and thus need to route out an area from the PCB.
It looks like the Pad Stack concepts that are in the works will get to this. Hopefully that will also allow you place an arbitrary pad in the PCB without having to create a one-pin component in your schematic.
Thank you for your reply !
Indeed the routing is the only thing I found that was in Altium favor.
It is not a “Different approach, but still gets the job done” contrast between the two systems. It certainly behaves like a system that remembers what it tried to do for you, and if you back-off it is smart enough to try another approach. So from the end users point of view, you just keep “approaching” the direction you want to go until you see what you want. Easy and quick to do. I’ll have to take some screen shots and post to better illustrate the issue.
A few years ago I was in need of an update for a PCB & schematics program that ran on Linux. Back then KiCad had some quite horrible bugs in the library management and with KiCad 4 those bugs have been fixed. In the mean time KiCad has grown considerably and it gets better every update. The stable version is still missing some “obvious” features, and some of them have already been fixed in the nightlies.
A few years back I was longing for KiCad updates and ran the nightlies just to get rid of some of the annoying bugs. The current V5.1.5 is so good that I no longer feel a real need to run nightlies, and prefer a stable platform.
At the moment I absolutely love the interactive router in KiCad. Just being able to push a track or via in between an already existing layout works already better than any other program I have used, Though that does not say much because my old software was obsolete anyway.
I am also aware there is still lots of room for improvement.
Having good descriptions of newly wanted features is one of the first steps to be taken before they can be implemented. User input of people experienced with other layout programs and detailed descriptions of how those nice features work in those other programs may help in improving KiCad.
One example of a report is https://gitlab.com/kicad/code/kicad/-/issues/2336. (Reminds me to add an example board there…) It shows how screencasts and/or screenshots can be very valuable for these kind of things. Describing with words may be nearly impossible sometimes. If you have access to Altium maybe you can take a screencast of the wanted behavior.
Honestly, this is what I was hoping. I was just pointing out that mask layer wasn’t explicit in the top level of those discussions so there was no guarantee that you Devs had that on the radar. Having heard from you, I’m now convinced.
I found this to be a major problem with KiCad. Old design files are basically un-openable. Even if it is possible to get them to open, you get a bunch of dialogs which are really hard to understand and it is unclear what the result will be (or even if your files have already been modified or not).
The way I solve this is by using brute force. I set up the (current at the moment) KiCad version in a VMware Fusion virtual machine, copy my files into that, verify that it works (without networking), and then archive the whole thing. Yes, it takes up gigabytes of space per project. It’s an insignificant cost compared to not being able to open and modify your project a year later.
I think this is a problem that some KiCad developers might simply be unaware of: if you live with the latest version every day, you don’t much care about backwards-compatibility, and not everybody needs to pull one- or two-year old projects out of storage. I had a fruitful discussion with Wayne about this during last year’s KiCon, so I hope things will improve on that front some day.
These bunch of dialogs appear because of the current symbol library system. That will change with the new file formats when symbols will be embedded into schematics, like board files/footprints are now already. Adding something to old designs may still need some work because the libraries may not be fully compatible, but we’ll get rid of the first-time dialogs and old schematics and boards will be fully understood with new versions.
If there are interpretation problems when opening old files, they are high priority bugs and will be fixed when found.
IMO it’s probable that when 6.0 is released some cases will be found where conversion from old to new schematic/symbol file format doesn’t work perfectly. But they will be fixed quickly.
Updated libraries are actually part of the problem. What I’d really like to see is a way to “freeze/archive” a project: create a static package with everything inside the project (e.g. copied from the libraries), so that the project becomes independent of external libraries.
That way I could work on a project, freeze it, and be sure that I could open it a year or two later.
This is exactly what I’m doing with my VMware virtual machines: freezing the project, libraries, KiCad and Ubuntu Linux in a single archive, which I can open two years later to make a small modification and produce another set of gerbers.