KiCad 5.0 Videos

I think it’s improved from v4, and user poeschlr’s post on the Kicad forum (he linked it above) is good. The one thing I find missing from the documentation, or I should say, well hidden, is how to make/use project libraries. When one begins a design, you pull in parts from a global library. This can be from Kicad libraries, 3rd party libraries, libraries that you or your company has developed, etc.

But once you pull in parts for a certain project, you want them to be stored in a local project library, a real copy, not just a link. The issue is that changes in the global library, even well-intentioned ones, could potentially “break” your design unknowingly.

I’ve been able to implement this workflow in v5 by copying the project’s cache library file into a project library file. It isn’t that much effort, but it would be nice if the tool supported this workflow more easily (and it might do so, and I just haven’t found it).

Another thing that would be nice, and wouldn’t be difficult to do in a script, is to run a comparison between each part in a project library against its counterpart in the global library from which it was initially cloned (well, all parts that were cloned from global libraries - some parts might be created uniquely for the project and don’t come from anywhere). This way, if you pull a project out of hibernation two years from now, you can review any changes to global library parts and decide if you want to incorporate them into your project or not.

2 Likes

Made a video today about footprints and how to add them to the project. I don’t think this was exactly what @Steve_Mayze was asking about, but is part of a larger effort to discuss library stuff

3 Likes

It looks like not all of these are going in the Kicad 5.0 playlist on YouTube, is that intentional? I’m a big fan of playlists from folks with a lot of content :slight_smile:

Also, yes the via automatically grabbing the net when you add it is fantastic

I definitely like the footprint library collections in the .pretty directory. It’d be nice to bundle the symbols the same way and potentially have an external way to directly correlate the two.

How about a video on optimizing Symbols for more accurate/valuable ERC?

Disclaimer: I deleted my previous answer as i wrote it before updating my tutorial. (Meaning i did not really fully think about all possibilities.)

I have now added a section regarding project local libs.

I however advice strongly against your usecase:

Reasons for why i would advice against that are stated in the new section.


I would assume this workflow comes from a time before kicad had proper global library management. (Even back in v4 it was quite hard to setup global symbol libs. With v5 it is however much easier to setup global libs than it is to manage local libs.)

Ever heard of version control? (git, svn, …)

(A bit of a disclaimer: I am the head of the kicad library and assume any central library to be managed to at least our standard. Nothing can help you if this is not the case. Not even having your libs locally as the asset could have been damaged between you used it successfully in your past project and the time when you copy it for you current project.)


There is however the valid usecase of wanting a fully atomic archive of the project for documentation or accountability reasons.
This can not really be done with kicad internal tools. (Ok with a lot of manual work but that is really error prone. Or if you ignore both the default footprints assigned to symbols and 3d models.)
Luckily there are scripts for that: Kicad_action_plugins/archive_project/action_archive_project.py at master · MitjaNemec/Kicad_action_plugins · GitHub


The only real valid reason i can think of that would require a user to manually setup project local libs is for creating specialized symbols for micro-controllers, connectors, … (See my new tutorial section for more details.) TlDr: Makes ERC more useful and the schematic easier to read.

1 Like

Thank you for the detailed reply, and for updating your library guide. I will review the part about 3D symbols especially. I agree with your individual points, but in the end, I still find significant value in keeping a local project library.

I didn’t arrive at this conclusion from older Kicad versions, just from all my years working in the industry with many different PCB layout packages. This was something driven into our work flow by both our seniors and by our own experiences. Even a package with perfect global library management needs local project libraries, based on my experience. I just don’t see any way around this fact, but I’m open to learning new ways, if they address my concerns:

(1) Once a part/symbol is placed in a design, it shouldn’t change automatically
(2) Parts/symbols may need to be uniquely modified for a certain project
(3) Archival and re-use needs to be straightforward

Maybe it is helpful to look at this issue from the other end, that is, the library maintainer. Do you really want to push a footprint change blindly into thousands of PCB designs?

No. And kicad (or any proper current design program) does not allow that.
Even if the symbol or footprint you use changes on the library level you still need to manually tell it to update your project.
Symbols are slightly worse with regards to this as users are often confused by the rescue dialog and accidentally damage the project that way. (Some users even delete the cache lib as they do not notice how important its role is.) This is a known problem of the current file format and will be fixed in version 6.

Introducing another manual layer between the central lib and the project simply adds another point of error that i see no reason to be there. It fixes a problem that in my opinion has to be fixed in the design program. (And that luckily is fixed for the most part in kicad.)


Additionally: I do not expect the central library to change without reason. If a footprint (or symbol) is changed in there then somebody discovered that it has a problem. You want an easy route to update all projects actively in development to use the fixed footprint.

You might have noticed that i differentiate between projects in development and projects that are archived. An archived project should be in an unchangeable state. This is for accountability and documentation reasons. (The archive would live somewhere separate. And is created from the state of the project that was send to the manufacturer. It should be somewhere well protected for read only access.)

The archive would not be the source for a later revision.
That is still the original design project that is still included with the current library setup. If it has been some time since the project was last worked on then it would be expected that the industry moved forward. Meaning you might want an easy way to update footprints to newer standards.
This should be easily possible but not automatic. The first requirement is only fulfilled by using global libs. The second one is fulfilled by kicad including footprints directly in the project file.

1 Like

Good points. I’m keeping an open mind and will give it a try. Perhaps further discussion should be on the Kicad forums, not here. Thanks for the information.

A TlDr answer to your questions:

This is the responsibility of the design program. I do not know of a single modern program that would do that.
Maybe it took the industry some time to notice that. Meaning at least part of your reasoning is based on a workaround for a bug fixed long ago.

Symbols at this point in time yes. (Has a special section in my tutorial) Hopefully the new file format allows for better options here. (For example a proper implementation for alternative functions.)

Footprints less so. They are after all designed to fit the component. The component dimensions do not change just because your project would require that.

These are two different workflows. An archive should not really be the source for future reuse. An archive is by definition something unchangeable.
Reuse does not normally need special attention. At least not if you have your global library setup done properly. (If you need to switch to local libs to be able to reuse stuff then this is an indication that something is wrong with your global setup.)

1 Like

Hi to everyone, I have mayby silly question but I am wondering that it is any chance to change functions of buttons on my mause?, For example to change view(mowing from one point to another) I have to press middle button so it is any settings inside kicad that I could change this, I want replace this with left button on my mause. Thank all of you who can help me with this. Like always have a nice day and see you soon.

I don’t think this is the right place to ask this question. A better place would be the kicad forum (if you think this already exists but you did not find it) or the bug tracker (for requesting features.)

Love the new video series, keep it up! How about one on how to do custom silk screen items? I’ve noticed your logo in some of your boards and would appreciate a walk-through on how to do something similar :slight_smile:

Also, on the topic of GIT integration – have a look at GitKraken! Wow, it’s pretty awesome for having a consistent Git(hub) experience between Windows, Mac, and Ubuntu. Using a GUI for this is tons better and it’s a great (free) tool. I’ve only been using it for a few hours, so I could be missing something

Not a video but till there is one you can look at this: Creating Custom Footprints For KiCad
(I think this was demonstrated at fosdem so there might be a video out there on the fosdem website.)

@ChrisGammell, If you have not touched on it already, I have been using the Align/Distribute menu items for a recent board. It was a great help to get things in line and even. I had not noticed this in the previous release (or I was not looking in the right spot).

This could be one of your KiCad Two-Minute-Topics.

… I also use the “Create Array” for Via stitching.

3 Likes

I was wondering if there could be a video on setting up DRC in PCBnew. I was looking around last night and couldn’t really see a good overview of what all of my rules were. In particular track to pad, solder mask expansion, pad to pad, and fill clearance settings.

As much as I dislike Altium (I use it at work), I feel like it has a better DRC interface for both setting them and then if they should be used in the project or not.

Overall, it Altium provides me with more confidence that the board passes DRC since I can see all of the different rules in one place. This is likely just due to the fact that I don’t know where everything is in KiCAD.

Great topics! I’ll add them to the list!

1 Like

This one is for you @Steve_Mayze: https://www.youtube.com/watch?v=a5CxKZYDqpk

Still working on the DRC video @ScottS

1 Like

Just saw it. Thanks :slight_smile:

No rush… it’s not like I’m waiting on you or anything! :wink:

JKJK, Take your time. I think I’ve finished my four layer version, but I’m thinking I might try a 2 layer layout to bring the cost down. Haven’t decided yet.

@ChrisGammell Looks like you are going to have to start the whole series over again with the release of 5.1!

hahahahaha. Although I have to say that I’m loving some of the new dialog boxes. Particularly the component properties in EESchema and the board options in PCBnew.

Are there any plans on a series for 5.1? Or is the 5.0 playlist wrongly marked with 5.0?