Footprint Association should happen in PCBnew

if the libraries from kicad was more complete (symbol and footprint tied togheter) for the most hobbyist used parts, we could avoid some discussions similar to this one.

a kick-start with ready to use “real” parts for new-users, without having to think about symbol-footprint connections initially.

also serve as template/example how footprints are conncted in the symbol with the footprint field.

1 Like

If they are linked the user has to think of the footprint/package earlier than with the CvPCB workflow.
Also the maintenance workload for those libraries is higher then and they become bigger.

there are already tons of parts on diffrent github places ready to use.

problem is that the overly stringent requirements from kicad rules makes it hard to contribute to the offical libs

bigger = more bytes ?

end of the day you need the symbol and footprint = bytes

Get them together, vet them and open them up to the public?
This has been done before for 3d shapes…

It’s that groups rules to get consistent and mostly trouble free components for people to use created by a bunch of strangers.
I got my own local libs with my own local rules.

Open a repo and show them how it’s done is all I can suggest - be the change you want to see in the world (or KiCAD in that case).

Nope.
Bigger as in you need a lot (and I mean a lot) more entries in the libraries to cover the options that are out there. An example if you don’t mind…

unless you think of some framework where one component covers a lot of packages… oh… wait… that’s the CvPCB workflow :wink:

1 Like

Volume ≠ Quality

Whilst some, even many footprints, are good, you would be well advised to check before using them in a production environment.

But if you want volume, you could start here…

Personally, I would like to see the whole symbol/footprint/3d/spice etc model managed as a database driven system. But that is probably not going to happen any time soon :slight_smile:

2 Likes

I’m sorry but the fact that a few people from a few companies do something a particular way because that’s how their employer told them to do it is not a basis for a statement stating that all “professionals” do it that way.

Why do you feel the need to label the groups? Label the methodologies, that is what the discussion is about.

They are not over stringent.
Poor quality symbols cause problems connecting wires (off grid pins), missing pins, wrong pins etc
Poor quality footprints cause written off PCBs

REF** is not even mandatory on fab-layer so that is a bit of under-stringent.

Fab layer in general often missing totaly, including pin1 marking.

Silkscreen is required i think , but for smaller components silk is often just in the way

maybe over-stringent is wrong word, unbalanced rather.

below example probaly would not go clear beacuse of wrong line-widths or something.
I tried to contribute perfectly working footprints that went trough production runs with pick and place and everything.
Rejected by admin

Point taken, will do my best.

Have a look at the new (not yet published) version of the KLC.

https://github.com/SchrodingersGat/kicad-library/wiki/KLC

1 Like

I admit its been a while since I checked

I really would like to contribute, but i cant start to edit my footprints for silliness just to comply.

Maybe I will pass KLC now if revised.

Let’s say the two user categories have different core requirements, each in its own right :wink:

1 Like

You are correct! I have been working with a misunderstanding. More later . . .

Dale

Well, the first thing I must get out of the way is that I said something about Kicad in my first post that isn’t true, and also implied something not fully true. This is because I wrote that after two weeks of not using Kicad, and it looks like my memory faded.

[quote=“Electric-Gecko, post:1, topic:5429, full:true”]
…I find CvPcb to be a nuisance. I shouldn’t have to assign a footprint to every schematic component before I place any of them on the board. [/quote]

Sorry. After checking it again, I see that it does let you leave some symbols unassigned. I must have just been annoyed by the error messages when loading the netlist in PCBnew. But I’ve gotten over that one.

Well, I just tried again and found that there is a way to associate a placed footprint with a part. Just change the “REF**” to the part reference, and then load the netlist. Going into the part properties, you will see an entry in “sheet path”, which was blank before reloading the netlist.

So what I implied wasn’t fully true, as there’s a way to do it. But it would still be nice to have an easier way to do it. Like by right-clicking the footprint, then one of the options on the pop-up menu would be “set part reference”, which would give you a list of components from the schematic that can be assigned.

[quote=“nicholas, post:14, topic:5429, full:true”]
Tie up the footprint already when you make the symbol/part in the footprint field and you will never have to open CvPCB

Pushing the footprint association into layout would be a crime, it is and should be with the part itself. [/quote]
Assigning footprints to symbols the way you suggested wouldn’t help me.

But anyway, forget what I said about “removing CvPCB”, as it’s now clear that some people would rather decide on footprints during the schematic stage. Instead, I’ll now suggest that footprint association can be done in either the schematic editor or the board layout editor. I still like my idea for a menu in PCBnew to “place footprint from schematic component”. But might as well keep the existing methods until nobody wants them (if that ever happens).

But if the “hobbyists” end-up using my method, then future tweaks to CvPCB could be more directed at “professionals”.

I don’t think that will be a problem. There’s plenty that can be done to make Kicad better for hobbyists without any expense to professionals. I suppose what you’re saying could (theoretically) happen after a few years development if the devs were pushing it to either extreme. But now, I don’t think there’s any threat of such a thing happening.

However, I feel like there could be more benefit of improvements to Kicad directed at hobbyists (though not the point of making it worse for professionals). The reason is that hobbyists have fewer alternatives. As far as I’m aware, professionals are more likely to use something like Altium (which expensive beyond consideration for hobbyists). For me, Kicad is what I’m using after I decided to “graduate” from Fritzing (which is more beginner-oriented then Kicad should ever be). But all that is just my opinion. But anyway, I don’t think there needs to be any struggle between hobbyists and professionals at this point of Kicad’s development.

Hmmm. Maybe there could be separate libraries for generic and specific component symbols, with the specific ones already assigned a footprint by default. Maybe there would be separate tools to place them in the schematic, or maybe they would just be clearly distinguished in the “Choose component” menu.

Yeah, that’s right. For me the whole advantage of even bothering with the schematic is that I can plan-out the circuit before deciding on the packages. Or else I would just go straight to the board layout. Having separate symbol/footprint libraries could be a bigger advantage with the new features that I propose.

If anything, having linked symbols and footprints is not for beginners.
But I suppose it could be nice if each symbol had a list of suggested footprints so that there’s less to dig through. It might rely on some categorization system of symbols and footprints.

Already in there…

PCBnew has scripting enabled/built in… there is even someone on the forums currently that writes tutorials for this and some others that seem actively involved in using it.
Might want to check them out and ask them if scripting can do that and how you should go about it to get it programmed… :wink:

See, that I don’t understand at all.
What kind of circuitry are you talking about, how many resistors, ICs, etc are involved in your head when you say this?
I’ve never encountered someone who was developing electronic circuits that would start with the layout, never.

I mostly do guitar pedal stuff.
I’m currently designing one that has 28 components. But that doesn’t count, as I started that one as a schematic. For guitar pedals, I would generally prefer to first draw the schematic. However, I would almost rather just draw it on paper and go straight to the schematic in Kicad. I find paper to be without a doubt quicker than making the schematic in Kicad. But having the ratsnest in PCBnew makes it just worth it to remake the schematic in Eeschema; for all but the simplest designs.

However, I made a guitar pedal power supply in Fritzing which I am now remaking in Kicad. It has 41 components in the complete layout I have in Fritzing, and it looks like I never even touched the schematic in that program. However, it’s actually a fairly simple for it’s part count, as there’s much duplication; 9 of those components are linear regulators for different voltages, each with an accompanying capacitor. But it also has a rather clean layout which a schematic would not make easier to understand.
In the Kicad remake of that project, I only touch the schematic when I need it for some reason, such as when placing the ground plane.

you use kicad more like a sketch book

I do also but i use real parts.
if it turns out that the real part during layout did not fit the bill, i
change the part to another real life part.

When I started with Kicad I had nothing, i made every single part from
scratch.
What I did had was previous experience from many other tools.

I understand the way you reason and that Kicad need to cater to the guys
who just occasinally want to do something quick and some of us who spend
lot of time in the tool.

I think the balance is already in place, you can do it either way.

regards
/Nicholas

Me? I, use Kicad “more like a sketch book”? As opposed to what? I don’t understand.

Honestly, although I am definately a hobbyist & not a professional, I don’t like to rush what I do. In Kicad, I actually like to spend time bringing my board to perfection.
What I proposed is meant to shave off redundant time; time spent dealing with the software.

My workflow is the following:
simulate -> schematic, (part definition) -> complete part definintion -> layout

To be clear: I also don’t like CvPcb.
Lets say you have the capacitors C1 - C100 in CvPcb in the list, I can’t decide which footprint C51 should have in CvPcb because I don’t know what’s the function of this capacitor and based on that the requirements on that part - that’s something only the schematic can tell me.

That’s why I think the footprint definition (and part definition, part no., manufacturer etc.) should be done in the schematic. And that’s already there (assign footprint and component properties), improved by the upcoming component selector.

Layout is the last thing, done when the part definition is complete. If you have to change the package of a part to fit in the layout, change it in the schematic and read in the new updated netlist - the schematic is the source, layout the destination, not the other way round.

That’s what I always hated about Eagle/Altium, because often there is a right symbol and a right part, but not associated together to a “device” with part number, manufacturer etc. So I have to copy them together, and save them before I can continue with the schematic.
I can’t say it better than this:

Eagle’s way of handling things really breaks my concentration and gets me distracted as I look up specific parts to use rather than just putting a generic symbol down and worrying about the exact part later.
(Quote from http://www.eevblog.com/forum/eagle/eagle-workflow)

Blown-up libraries with a lot of “different” devices for one device-type, only because of different packages or manufacturer ? Changing the package of an IC, you have to delete the schematic symbol although the new symbol is the same ?
Changing the manufacturer of parts, you have to delete all components in the schematic, create a new device in the library, add it again to the schematic and place it again on the layout although neither the schematic symbol nor the footprint is different ?
Thats professional, really ?

Starting to create a schematic (from existing simulation schematic), for generic parts which are available for many manufacturers, I don’t want to think about the part number, manufacturer or footprint at all.
If anything, let’s say for capacitors, I want to define what type of capacitor it is and assign the corresponding footprint.

When the schematic is done, it’s time to go into the part definition for (until now) undecided generic parts, packages & part numbers, manufacturer, supplier etc.
And these information go into the property fields of the component in this schematic, not into a library.

Discussing the part numbers and suppliers with the purchasing department, need to change some part numbers ? No problem at all, simply edit the property field and re-geneate the BOM. Schematic and layout don’t need to be changed at all!

I understand that for large-scale companies, the “Atomic parts” may be useful, when other people than the developer decide what parts are allowed to use and maintain a company-specific library fixed with part numbers etc. You can do this right now with KiCad, create your own library and preselect a footprint or apply a footprint filter in the component and don’t use the generic parts.

I think for the whole community, it doesn’t make sense to have thousands of capacitors in the library just to cover all manufacturers and packages. Who should create or even maintain this ?
Therefore, components and footprints should not be tied up, if anything, a component should have a default suggestion for a footprint or a filter to make it easy to assign the footprint quickly.

1 Like

EXCELLENT EXAMPLE.

But, you were not complete in the ridiculousness of this mess.

In some cases, for EACH AND EVERY part number for the PART, there is also a different ORDER number for what PACKAGE each part comes in.

All I want to do is draw a resistor on the schematic page to complete my circuit.

Some of my circuits will be the same electrically; but some of them will be through hole parts for maker space assembly and others will be smaller SMT for manufactured assembly.

KiCad works well with concept that not all parts need to be assigned specific part numbers.

For the MAKER SPACE, I’m going to use GENERIC through hole spacing and use a ShapeOko to cut the traces. Atomic parts would NOT work in this situation.

Have Fun!

KiCad roxors! … lol