About librairies, project folders and pcb_new standalone use

after a year of mucking about with Kicad5.1 I need the following answered/confirmed if possible … btw, I design small analog boards - coming from expressPCB - and usually go straight to layout instead of through a schematic …

(i) is it fair to assume/conclude that the “offical” (github) Kicad librairies is sufficient for doing most typical/average (non-specialty) pcb work - I know this is going to sound stupid but nowhere is this explicitly noted … reason why I’m asking is I might have confused myself in installing third party libraries (thinking it was the better way to go) and now considering simply sticking to the official ones … curious if people are using, say, digi-key footprints over official ones for any specific reason I may not be aware of …

(ii) I don’t get what opening a new (.pro) project folder versus going stand-alone with pcb_new does for me …

(iii) I read somewhere on this forum that project folders can only contain one pcb_new file … this doesn’t make sense to me - but if so, then how do people save progressive versions of their layout work ??

thx much!

  1. I don’t think there is such a thing as “typical/average” electronics design work. Everyones requirements are different. Yes, official libraries cover a lot of ground and chances are you will find most of the things you use there. But learning how to create your own symbols and footprints is a must.
  2. .pro is just some project settings file. The biggest benefit is having an actual schematic and being able to do erc check and having a netlist that will enable doing a drc check in layout. Saves you from doing a lot of silly mistakes. Past some level of board complexity it’s pretty much guaranteed that you will screw something up without drc.
  3. You can have more pcb files in project folder. But only one pcb is associated with the project, i.e. that’s the one that will be opened when you click pcbnew icon in kicad manager and that;s the one that the netlist will be transferred to when you click corresponding button in eeschema.
    People employ various methods of doing backups of their work. One of the more efficient and elegant ways is by using a version control system like git.
2 Likes

thanks for the reply qu1ck, like I said I go straight to layout usually and the stuff I do is typically small enough that a good visual check is all I need - of course, I understand that Kicad was intended to be used for building more complex systems.

(i) reason why I was asking about libraries, I did one job with “official” diode footprints and a second job with a Digi-key footprint, both for SOD-523 devices, but I didn’t notice the pads were actually different which caused the job with the DK ones to flop all over the place, whereas using official footprints for those parts provided proper part alignment during reflow … as a result I’ve decided to side with the “official” releases for now // of course, I understand the need for custom footprints etc … although, I’m more of a circuit designer than layout tech so some of this is new to me still

(ii) sorry, I don’t see why a netlist is needed for drc … afaik, other than for SPICE and such, the netlist really only acts as a go-between schematic and layout … I understand the complexity aspect of all of this, but it just doesn’t apply to my stuff

(iii) unfortunately, I’m having a hard time wrapping my head around the git-hub stuff, I’m not a coder by any means and I have little time to learn - installing Kicad was painful enough in itself (LOL) … so, if I have no real need for drawing schematics I can just open a project folder and “save as” to my heart’s contentment just as I would in any folder ?! I was wondering if the libraries were locked together inside the project folder (makes sense to me to have libraries project specific)

let me re-phrase

(iv) is there any documentation that specifically addresses using Kicad in layout mode only ?! - which, I guess, lies outside the normal Kicad work flow …

I’ve have two pcb’s successfully manufactured using Kicad this way … I just want to better my understanding of the file management part

thx much

I have a short tutorial that explains the normal workflow found here: Tutorial: Introduction to PCB design with KiCad version 5.1 (Getting Started)

Maybe following it will show you what a schematic will bring for you. My general tip is just play around and find what works for you.

  1. Kicad libraries follow industry standards which are of course designed with industrial practices like reflow in mind. Kicad also provides some variants that are optimized for handsoldering as extras.
  2. For DRC algorithm to perform clearance and connectivity check it has to know which footprint pads are supposed to be connected and what the clearance to other nets should be. Netlist provides connectivity and nets, board rules provide net classes and clearance.
  3. Git is not github. It can be a bit intimidating to use for non programmers, I’ll give you that. You can do save as and/or zip files or whatever you are used to doing with ordinary files.
  4. There is no specific documentation for that but the gist of it is that without netlist pcbnew is just a drawing application, you might as well draw your boards in inkscape. You are loosing the 2 most powerful tools by going schematicless: DRC/ERC and push and shove router.
1 Like

I think the reason why you don’t see the usefulness of the netlist (or nets in general) is that you have designed only very simple boards. If you go to more complex it becomes necessary to control the track width and clearances, do it automatically and check the result with DRC. It’s humanly impossible to design a complex board (with any reasonable amount of work) without automated DRC.

No there isn’t and you already told the reason. In the future version 6.0 will support schematicless workflow better, but actually in a way you don’t necessarily need: it allows defining nets inside the layout editor. If you don’t see need for nets, you of course don’t need to define nets. But if you don’t use nets and DRC, what more would you need for your workflow which you don’t have already? I think you have found the way to use Pcbnew as much as you need now – unless you start using nets.

thank-you for your replies, much there for me to digest although I’ve already had a run at the (standard work-flow) documentation several times from different sources … I will go over Rene’s page to refresh things …

my simple logic was this: as long as the courtyards didn’t overlap and I was using standardized (non-custom) footprints then why run DRC and other checks … ?!

like I said, my designs are no-brainer simple …
and if I can cut (time saving) corners in the right places, why not ?!

looking forward to version 6 and what the future might bring
cheers, … and thanks again for your input

Don’t mean to add to the Clutter but, sounds like we have similarity of Usage Needs…

Re: The Simplicity of Use (with or without Netlists)

I usually work from Hand-Drawn schematics (it’s quicker for me). (But, when time permits or, need arises, I doodle up a real schematic.)

Thus, my preference is to usually build the PCB and worry about eeschema down the road…

For Projects of Similar Type, for example, I have several variations of Hydroponic Controller PCB’s, all located in the same Project Folder along with related schematics.

A simple Example, for clarity:

Project: “Multiple_PCBs”
Contains:
• Original Schem and Original PCB
• 3 copies of the PCB
• 1 copy of Schem
(the copies are ‘Copies’ and renamed)

There are No relationships between any of the files Unless wanted (via Netlists) and/or Copy&Paste. You can load a specific Netlist for any PCB…

Schem_Multiple is original one
Schem_1 is a copy with deleted circuit

PCB_Multiple is original PCB with circuit from Schem_Multiple
PCB_1, 2, 3 are copies with deleted contents

PCB_1 was then loaded from the Netlist of Schem_Multiple
PCB_2 is loaded by adding parts/footprints
PCB_3 is loaded by adding parts/footprints

BOM’s (.csv)for each PCB was generated in each opened PCB via, File>Fabrication_Outputs>BOM_File

The Main Panel shows the files.

1 Like

thanks for providing your details BlackCoffee … that helps me quite a bit !

The DigiKey libraries include ordering information in the symbols and I understand that they are ‘atomic’ - one symbol/footprint per unique, orderable part (with DigiKey pn, datasheet etc). This may be of less relevance if you go straight to layout and skip the schematic
I have been very pleased with the quality of the KiCad supplied footprints. I have yet to come across a duff footprint and have confidence that many eyes and many users would call out dodgy versions. The bar for submission of footprints is high - some have argued that it is too difficult to get footprints accepted but needing to stick to the KLC ensures that the assets are consistent. The DigiKey ones are possibly less used and perhaps less tested.

1 Like

The KLC is not the problem for most contributions. Most are rejected because users do not seem to be able to follow the datasheet (There is always at least one measurement wrong, some contributors have the ability to get every single measurement wrong).

1 Like

Continuing the discussion from About librairies, project folders and pcb_new standalone use:
Let me apologize in advance for this long-winded post …

Now, I hate to come out strong like this, and I’ve thought about it lots, but at this point I can’t help but feel that Kicad is a big waste of effort for me. Indeed, so far the cost in time has been more than considerable in trying to learn about Kicad’s inner intricacies - totally unreasonable in my view. Please follow me for a minute or two as I’ll explain in more details …

To put things into perspective, in the last two years I’ve successfully completed 36 working pcb projects, 2 of which were done in Kicad, the others with the much simpler and more straight-forward expressPCB - with a level of confidence still hovering around the zero mark in the Kicad case. With expressPCB I can get a layout done in hours and then sent out to my CNC board maker using someone else’s perl script (like I said, I ain’t no coder). Today, I tried giving Kicad another fair shot as I still wish to graduate away from my CNC-prototyping setup and ran into yet another dumb nightmare. I can’t imagine trying to do more complicated work with this thing - maybe it’s me.

So, I went poking around some of my previous Kicad project folders just to “see” what I had done a year ago (which I vaguely remember as I’m doing so much work) and whenever I merely opened and closed any pcb layout in standalone mode I noticed that one of the files (fp-info-cache) in the project folder got re-dated automatically even though all it contains is the character 0 - like, what’s the point ?? Consequently, the said project folder gets automatically re-dated as well. Since I rely lots more on creation dates rather than folder names etc. (last thing I worked on) everything gets screwed up date wise, and I end up having to go through all my project folders to find what which layout went to print. I feel this is the most retarded thing I’ve ever seen. With expressPCB there’s only one file to deal with, no managerial issues whatsoever. In that case a project folder means what it means, a project pcb, with files saved in the same folder in a no-brainer sort of way date-wise - ie., with no automatic re-dating if I simply open and close a file without re-saving. I’m sure you guys have a reason for doing this - but, it’s totally beyond me.

I’ll be honest, from day one Kicad has been a complete PITA for me - I can’t imagine I’m the only one. IMO there should be a note right up front in the distros that says very clearly Kicad doesn’t look up libraries and such. Instead, after installing the problem the user (me) is made to feel like the install didn’t work properly. As I’m no coder I ended up spending days in frustration going through a rabbit hole of webpages before “learning” that Kicad was designed this way - there’s should be a note up front that says this thing won’t work out of the box. Why this is not made un-ambiguously clear in https://kicad.org/help/getting-started/ is beyond me.

When I brought up the issue on the linux side as to why this is not stated in the program description I was treated like an idiot for not reading the documentation on the app side - I had to dig so deep to learn this basic fact it’s something I find completely stupid. I can see the lack of mutual cooperation as part the cause - seriously ill-thought documentation the other. One piece of open source working with another piece of open source, neither taking the proper responsibility to make things clear enough for the new would-be user.

IMO your file management tactics should form Chapter 0 of your documentation …

I feel like I’m done with this program as I’ve wasted so much time with issues I shouldn’t be dealing with. I think it’s time for me to bail as it’s been nothing but one headache after another, and then to worry of “when’s the next piece of BS gonna hit me ?!” Hence the seemingly inane questions that started this thread. Like I said, I’m no coder - so these things are really not clear or obvious to me as I imagine they would be to a coder.

Feeling forced to come here after mucking with it for this long just to ask “very basic” questions about how the program works (or wants to see things structured) is telling. I’ve read and re-read the docs countless times, and have even bought an outside guide - to no real avail of solid info at this level.

My recommendation if you care to listen: first, I think you guys need to work better with the distros to make sure the “software managers” have a note at the very top of the program description stating what to expect (and not) - specifically, that it won’t work out of the box as is. Rather than expecting the would-be-user to go on a wild chase to find out libraries aren’t included (or linked-to) in the installation process somebody in your organization I think should contact various distros to make sure their content description better matches this/your reality. I can’t stress how confounding the auto-date file management appears to me - somebody better explain. Indeed, I feel there really should be warnings up front and lots more clarity in the documentation on how to properly do this. Remember, some of us are not career layout jockeys nor programmers and if the program is not really designed for more casual users (I guess that would be me) then there should be an indication of this somewhere up front in a thoroughly clear and un-ambiguous way.

Based on some of the confirmations I got above (thank-you !) it seems to me so much work or effort is needed to do this right that you would have to be a coder. I think, somehow, this should be stressed up front as well. Either that or this software really isn’t designed for casual work - the overhead is unreasonable in this regard. I still don’t know what Git is, and have no desire to know, mainly because I don’t have any more days to throw at this “ongoing” dilemma. It’s almost misleading IMO to call this free software considering the amount of time I’ve lost on it.

I’m at the point now where I want to have nothing to do with this thing. I was hoping I could import art work (tracks as you guys call them) from expressPCB, say, the same way logo’s are brought in, but you guys don’t support users who might have another style of work-flow, hence this post. Your documentation mentions none of this outside of an already obvious and typical schematic->netlist->pcb work flow. It seems that a big part of the documentation is redundantly aimed at people who’ve never done design work before - not your job IMO - while the salient features a somewhat experienced EDA user would want to know are missing.

If the program isn’t really geared for simpleton or off-road users like myself, a career mixed-signal design engineer with some experience with Cadence and other platforms, then there should be notes indicating that programming experience is mandatory here. I’m an old school analogue circuit designer and despise anything requiring coding - I need to focus on my design work not the inner workings of the tool. This is a major FAIL for me.

I know you guys are trying your best, but seriously I find this is a really screwed up approach to documenting your layout tool - sorry. Version 5 and it’s still confusing as hell for me - having to spend hours in this forum to find the missing parts to your documentation - which says lots. In comparison I’m still screaming along with ver1 of expressPCB, thank-you very much; child’s play in comparison. Yes, I realize Kicad is edging itself towards the more involved user, but still …

Again, sorry if my critique sounds harsh or misplaced (and long-winded) since this is probably mostly a documentation issue. I don’t mean to go on the attack here, just giving you my feedback. Hopefully you’ll find something useful this rant.

Best regards nonetheless and thanks for any useful input. I have otherwise enjoyed working with the program and see it as a serious piece of work but personally I feel the lack of transparency and straight-forwardness extremely frustrating … like I said, maybe it’s me

Hi,
This is a user forum, users helping other users. From time to time a developer can drop in, not guaranteed.

1 Like

It is totally ok to come to the conclusion that a certain tool is not suitable for you. If you prefer expressPCB then by all means use it. KiCad does not intent to replace this tool. As far as i can tell it tries to replace tools like altium which are a lot more complex still than kicad is.


Also kicad works out of the box. At least for the platforms i used it at (both windows and fedora). But most importatnly if you use it as intented. Which means you go from a schematic to a pcb. Yes schematicless design will get easier in v6 but it is still not the core usecase of kicad.


Further notice that most people here (and at other places) will give suggestions that fit their own requirements.

I personally give all suggestions in a way such that the workflow i suggest is scalable (all my FAQ articles are written with that in mind). Which means going from one board a year to hundreds should not need a change in workflow. And i discovered that the additional time investment is minor so it is a feasible workflow for casual users as well. (I focus heavily on proper library management - management in the sense of proper scalable organization with consistant rules - this comes from my past as the head of the kicad library team)

KiCad is very flexible here. If you want to use a different workflow than what i suggest then this is fine. However don’t expect others to magically know what workflow is best for you. A flexible tool either requires you accept the workflow of somebody else well knowing it will not fit you perfectly or it will require you to invest time into finding the one workflow best fitting yourself. I am convinced kicad is flexible enough to work similar to expressPCB. However as i do not know that tool i can not even give any guidance towards that.

Thanks for the reply Rene - and thanks for confirming the new installer bundles the official libraries, something that didn’t occur for me when I went through the process two years ago. Like I said, expressPCB is child’s play compared to Kicad or any serious program - but I find it well suited for rapid proto work. I’m simply looking for an alternative that doesn’t take forever to ramp up to - ie., with not too many hidden gotchas.

I just wished the Kicad docs did a better job at pointing out the inner workings of the file management aspects so I can decide for myself how to better use the program in my context. Again, my work flow is straightforward - basically just jumping into the layout side right from the get-go, no fussing with all the extra checking. It’s the file management stuff that’s slowing me down at this point. Hoping to find the right resources at some point.

Maybe more experienced users using a similar approach to mine can start a thread detailing how they go about doing this in an efficient manner. Actually, come to think of it - maybe a work-around is to rename fp-info-cache before opening the layout in standalone mode, and then deleting the new version of that file that gets created. A bit of a nuisance, but it might do the trick. In that respect I wish there was something in the docs that explains in clear detail what I get (and don’t) from running it in stand-alone mode.

To be honest, it’s not my primary wish to abandon Kicad since all software ultimately tends to frustrate me. Thanks again … and apologies for being a pain.

It’s just a cache file, i.e. temporary data that is basically a look-up table for footprints so the program doesn’t have to re-scan the library folders on the filesystem every time you go to look at the list of available footprints. You can delete it when you are done working on a layout. I think that I’ve heard talk about moving that file somewhere else non-project specific, but I’m not really plugged in to the development circles.

thanks for your reply SembazuruCDE … my problem is not about what it does when it’s needed - no argument with how the program is structured in that sense … rather, like I said, it’s what it does (ie., fp-info-cache automatically re-writing itself) after merely opening a layout file just to look at it … I’m wondering, would it not be possible to have Kicad written with the option of putting this very process in automatic versus manual mode ?! this would then make it possible to avoid project folders from being re-dated after, again, merely opening my layout files without re-saving … unless there’s a way to re-date files and/or folders in Linux this is a real PITA for me //

Well, I think this might have also been answered in my previous post here:

So… The devs see that cache file as an issue for other reasons and are already thinking/applying a correction. I just don’t know what the current status is.

There is the “touch” command in Linux that is used to change the date of a file (and also presumably a directory?) to the current date. I remember back in the Uni days when the mainframe temporary drive was HUGE (like several hundred MegaBytes Huge, maybe even astronomically as large as 1 or 2 GigaBytes). The temporary drive was available to all users to put temporary files, but the system would delete any files over a certain age. I would store large files there long-term by setting up a crontab to “touch” those files periodically.

I haven’t used touch in a long time so I’m not sure if you are able to set a target date to touch the files with, or if you would have to temporarily set your computer clock back and then touch the files. If the latter, what a major PITA…

“man touch”

TOUCH(1)                           User Commands                          TOUCH(1)

NAME
       touch - change file timestamps

SYNOPSIS
       touch [OPTION]... FILE...

DESCRIPTION
       Update the access and modification times of each FILE to the current time.
       -a     change only the access time
       -c, --no-create
              do not create any files
       -d, --date=STRING
              parse STRING and use it instead of current time
...

Thanks much, but this only made me waste another evening to no avail … changing the timestamp of the file alone does not change the timestamp of the folder (makes sense) … I tried doing it to the folder thereafter, nada … also, what’s the difference between ‘touch’ and ‘man touch’ ?? sorry if this is a stupid question

I certainly can appreciate SembazuruCDE’s idea, but then again it’s none of my business to make any suggestions or approvals here …

as I said, I’m no coder - am I missing the obvious ?! … is this something that will be different in ver6 by chance ?!