KiCad 5.0 Videos

This thread will be used to request videos about particular features in KiCad 5.0. Please respond with the video you’d like to see. If you want an update to a previous KiCad video on YouTube, please include the link to that video.

Library management is a topic that comes up often.

  • The differences
  • Migrating an existing library
  • Best practice going forward

(sounds like a good topic for KiCON :slight_smile: )

3 Likes

Symbol library editor has been completely redesigned in version 5, so I would like a video about it.

2 Likes

No work needed :wink: Kicad 5 can use all kicad 4 libs normally. (The other way round is not always possible as kicad 5 has more features.)

If you mean migrating a project then this is a different story. Here one needs to use the remap process. I wrote some detailed tutorials about that over at the kicad forum: Converting KiCad version 4 projects to version 5 (Remap a project) - FAQ - KiCad.info Forums

Or do you mean the troubles that can arrive from the fact that the official library changed quite a bit coupled with the fact that kicad 4 used the github plugin by default? (Updating kicad does not update your personal config. This creates inconsistencies for the user. Noticeable by having no 3d models for your footprints and your symbols pointing to non existing footprints.) I had KiCad 4 installed previosly. Now i updated to v5. Now i have some problems with the library setup - FAQ - KiCad.info Forums

Most important part of this should be “Never modify system libraries, Never place your own libs inside the system folders”

I would further refrain from the use of path variables unless one needs to share the fp-lib-tables directly with others. (It is easier to tell everone who needs your library setup to manually add the libs using the library managers. Path variables are very powerful but also very hard to understand for many users.)

The only path variable a normal user will need to use is the KIPRJMOD variable if they have project local libs. Maybe also a MY_3d_models variable to be able to point to personal 3d models as they are sadly not managed by library tables.

You might want to hold of a bit and go directly to version 5.1.
It has massive changes to the user interface compared to version 5.0 and would therefore render your work obsolete quite quickly.

By the way if you ever have questions while making such a tutorial feel free to contact me either via the forum or by mail. (I would however suggest the kicad forum as i rarely visit this one.)

Took me a bit longer than planned but now i have an article about library management in general. Library management in KiCad version 5 - FAQ - KiCad.info Forums

2 Likes

Library management still feels a bit disorganized to me. I’d really like to see more from them on organizing the footprints in the future. So maybe something around best practices for symbol and footprint libraries?

Also, I’m not seeing the option to right-click and spread out the footprints in a new PCB layout. :man_shrugging:

It could be entertaining to see a video on auto-routing and reasonable ways to use it.

I have to say that I started out from zero, I’m a hobbyist at best, and feel very comfortable with KiCad and designing my own circuits and PCBs now. This courseware has been fantastic!

This should no longer be necessary as the update from schematic tool already spreads out your footprints. (Grouped by sheet)

There are plans to bring back the “optimize placement tool”. (Or maybe even implement a better version of it.) But i am not sure if this got finished for 5.1 or if this is something that needs to wait for version 6. (If it has been added then i do not know how to activate it.)

KiCad no longer has an internal autorouter.

1 Like

It is any chance that you will do some video about
1.Layer aligment target
2.Drill and place offset
And last one is 3.Grid origin
I know that for everyone it might be obvious but not for me, also I will be glad for any kind of helping with this topic.

Have a nice day for those of you who will reading this.

First request fulfilled! It fit well with yesterday’s video:

3 Likes

Thank you so much for this video, right now this topic is clear for me :D, keep this content and KiCad will be in 1st place :smiley: , once again thank’s

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.