Directory Organization

I’m strictly hobby these days, and the only one using this computer and program.
It is a desktop.

Same here.

Same here.

All Kicad 6 data is on D.
Each personal library group has a directory. eg Kicad_6_symbol
Current Kicad projects have a single directory with subs. for each project.
Completed projects are transferred to a Kicad archive directory, each having a decent descriptive name as sub directories with sub directories for each project element within.

I “play” with the nightlies.
6.99 libraries are duplicated and used from E drive so there is minimal chance of “polluting” my “6” libraries.
6.99 has a test directory on E, usually just copies of old 6 projects,that are deleted after testing.
6.99 also has current and archive directories on E. 6 projects will migrate here when 7 arrives, 7.99 directories will be set up and these new 7s (ex 6s) will be pushed back to D.

This works for me. This is how I moved from 5 & 5.99
I suppose the most important feature is using descriptive folder names for ease of referencing in the future.

How far have you managed to get?
Have you created personal libraries?

A few comments:
Kicad only gives you one layer for symbols and footprint libraries… the final library.

Use your Operating System to set up your directories and sub-directories and sub-sub-directories, then, when happy with these, create your personal footprint and symbol libraries with Kicad. Place each in the appropriate sub-directory, then populate these libraries with suitable symbols and footprints.

If you intend using all the resources available, you will end up needing four basic sub-directories:
Symbol, Footprint, 3D & Simulation.

For 3D you may also need to create libraries, unless you copy complete libraries from the Kicad system.
If you wish to create your own 3D libraries and populate them yourself (from kicad or outside) opening the Kicad system libraries will give you a good idea into naming your personal 3D libraries

I have never used the simulation so others may comment on that requirement.

When naming symbol and footprint libraries, try to include the ability for future expansion of those libraries to suit future needs. eg, don’t just place all ICs in the one library. see the Kicad system as a guide.
Restructuring personal libraries because of past thoughtlessness is a PITA! :slightly_smiling_face:

Negative example is the “device” symbol library. OMG…

Not so much for footprints. That’s tedious file shuffling. But for symbols it’s hell.

I think for a noob, the hardest part is wrapping your head around the word library and the enormity of it. When I think of a part, it is a part, not a library. So now that it is a library, there are many factors which can come into play as to how you break down your library. Do I go - SYMBOLS-RESISTORS-TH-SMD-SIZE-Part # or am I overthinking it? Copy and Paste for FOOTPRINTS, 3D, SIM??
I do a lot of automotive reverse engineering on paper and none of mine will ever become builds. Mostly I like the schematic portion of it.
I downloaded the Library Loader and still trying to figure out what I am doing there, I believe I downloaded a part and received three libraries…which I should now divide up into respective sub-folders?? Maybe I am just a hobbyist and perhaps I am not ready for this?? Seems like it should be in my wheelhouse but this part is frustrating. I will figure it out.

My train of thought actually follows something similar to this which I found in another post.

I don’t have project specific libraries. My personal libraries are usable across all my projects.

I am thinking Global is the way to go for all libraries. Not sure what the CONS are but just seems to make sense to have them all there for whatever you are doing. Maybe I see this wrong? Makes sense in my head.

I use:
D > Kicad6SymbolLibrary > Resistors > Rs603

I think most have a “Kicad_Libraries” between D & Symbols. I chose not to.

I have many Resistors in my library. All have the same symbol, each a different footprint.
Rs603 is a SMD size 603. Rt.4 is a THT with .4 inches between holes. I also have a basic R for odd, occasional resistors.
It is easy to build the library, just “save as” the Kicad R in device into my personal library then keep "save as"ing the R in my personal library but change the name then place the relevant footprint in the properties.

Absolutely! Otherwise, 2 years later, “now which project library had that IC ???”… opens each project, then library, in turn, after finding which thumb drive is Kicad archives, then, in the very last…

Pardon my ignorance, but what is this?

Agree. I use only global libraries and I use only symbols and footprints and 3D models from my libraries. All symbols I define myself. Footprints I copy from KiCad libraries and modify a little.
Before even trying to design my first KiCad PCB I have checked what are the possibilities to prepare files for documentation I need. And I found being it a problem with KiCad footprints. So I decided to have them defined a little differently (I have Reference and Value at CrtYd layer).
I also don’t like if I can’t place one footprint touching the other. If I see a gap there I think they can be placed closer to each other and then trying to do that I find that one have CrtYd at 0.1mm raster and the other ar 0.05mm and working with 0.1mm I can’t do what I am trying to do. So all my footprints have CrtYd rectangles at 0.1mm raster. It is why I edit each footprint I plan to use.
MM is my directory I backup each day. My KiCad directory:

I start names with ‘_’ to have them at the beginning.
_FreeCad, _LibreCad are not used by KiCad, but I have there work connected with KiCad. If I define 3D model than sources I have in _FreeCad. Untypical PCB shape - source in _LibreCad. In _MM there are Page layout description files for sch and pcb and little modified python script used to generate BOMs. _Out I use whenever I generate any output files. They are then moved to different directory so _Out is typically empty.
Directoris named without ‘_’ at the beginning are the project groups. One level lower are the project directories. There are no exceptions. It is in case some paths are defined relatively.
My Symbol Libraries:
I have C, C1 and R,R1,R2,R3 libraries because you can’t have two symbols with the same name in one library and I want it. Previously (in Protel) I had 1k as 1k 0603 resistor and 1k_4 as 1k 0402 resistor, but moving to KiCad I decided to have them both at schematic as 1k. One of the reason was that I couldn’t use (as previously) ‘Univers Condensed’ font in KiCad.
I don’t change anything in symbol after placing it at schematic. So if I want to use 1k1 resistor and I don’t have it in library I add it to library and then place at schematic.
Each symbol in my libraries are connected to its footprint and I never change it. If I want to use element with different footprint I define new symbol in library (and the same symbol in spreadsheet I use to generate BOM). That way if I have specified exact element we use and we have it on stock there is no way that by mistake I will use it in other case that we don’t have.
My PcbLib:
_3DMod contains sub-directories named as PcbLib directory.

1 Like

Library Loader is a tool that you can find here:

It is supposed to help find parts, download the symbol, footprint, 3D model etc to your libraries and is supposed to be good for finding really odd parts. I stumbled upon it accidentally while in Mouser where you will also find the connection and Library loader tool. If you figure it out, let me know. I downloaded a part IRLL2705 and found a ZIP file and inside, four more files. Not sure what I do with them at this point. I think I am supposed to put them in their relative files? Symbol/Footprint/3D etc but not sure.

@Piotr I see what you are doing and it makes perfect sense but it is a lot of work. It would be nice if everything was just default. You look up a part number, it comes with your necessary files, it downloads it to your KICAD directory and splits them off into the sub-categories. What a perfect world that would be. Maybe I don’t put enough thought into it? Just makes sense to me but I am but a noob at this part of it.

It is a lot of work but it is to be done once. Then when you have all typical parts you are using you typically need to add one or two parts whenever you design the next PCB. That is provided all your PCBs are similar (mine are).
For me it was obvious that before starting to work with KiCad I have to prepare my workplace to meet my needs.
Thanks to that I have never went through the step of selecting footprints for all symbols at schematic. Skipping this I save some time with each PCB. But that’s not the main point. I am trying to protect myself against my own mistake like - choosing too small footprint for a high-capacity ceramic capacitor. Then it wouldn’t be a matter of buying the new capacitor. The PCB would simply have to be thrown away.
My assumption is - if you select symbol from library than you get all with it and you are sure that such element exists.
Last times even you know such element exists you sometimes have to wait till end of 2024 to get it :slight_smile:

1 Like

@bwilliams60, I too ‘find “parts” libraries very confusing’. I think the idea of a “library” is not like a library from which you borrow a book, but rather a place where you make a photocopy of the book–in this case, a set of footprints or a 3D model.

I think these 2D models and the 3D models are copied into your project files, specifically the project_name.kicad_prl
project_name.kicad_pro, and the
project_name.kicad_pcb files.

By “copied” I mean copying the text associated with each of the parts, since kicad6 uses text files.
I’d guess the 2D graphics would be stored in the .kicad_pcb, and the 3D graphics in the .kcad_prl file.
But that’s just a guess.

The main issue that could thwart the proper drawing of the PCB would be if the origin (0,0,0) for the 3D model doesn’t coincide with the origin (0,0) for the set of footprints in the real world. If these two points do not coincide where exactly do you make the change and which kicad6 tool do you use to do it?

1 Like

Perhaps the answer to that lies in FreeCAD when we install KICAD new?

All I know is this library thing makes my brain hurt. I think I am getting my head wrapped around it but it would seem like there would be a very easy and intuitive way of doing this.

A post was split to a new topic: Connect to part outside schematic

I’m leery of those third party libraries. Sometimes they require work to correct infelicities before use. Even when all the symbol pins are numbered correctly and in a good orientation they often have the wrong or indifferent electrical types for ERC. Sometimes it’s faster to DIY symbol. As for footprints most parts are covered by the standard collection. Occasionally I use the wizard to make a footprint, e.g. for some nixies. I’ve put together a 3D model using Freecad for a LED digit but often I do without a full 3D rendering since the project is for myself.

I think you’re overthinking this. There’s no need to build a comprehensive personal library, just accumulate entries as you go, either by adapting the standard entries, DIY, or from other sources.

BTW I’ve split off your question about off schematic parts. A new topic is needed so that your question won’t get lost and also be off topic for this thread.


Agree, except sometimes lots of work.
Which brings up another point:

It may well be quicker to “figure out” using the Kicad Symbol and Footprint Editors for you, after which, you won’t have to bother searching for 3rd party stuff. :slightly_smiling_face:

I use GitHub for my projects, and I copy the entire folder every time I send a “version” for manufacture. So if I find the PCB later on I know where is the project.
Inside the project folder, I have a mess because I do not understand what the files are, but I try if possible to put all files in there and not use the library, since a new version of Kicad can esily break them:

There is a fantastic project that automatically generates images, schematics files, and production files every time I commit to Git: GitHub - INTI-CMNB/KiBot: KiCad automation utility

I still have a lot of room for improvement, but I feel it’s the right direction (for my use case)

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.