Footprint Association should happen in PCBnew

I don’t like how footprint association currently works in Kicad. I find CvPcb to be a nuisance.

I want to propose that CvPCB be removed, and footprint association would instead happen when you place the footprint in PCBnew.

There would be a new menu in PCBnew to place a footprint from schematic component. It would appear as a list of components from the schematic (possibly looking similar to CvPcb). Doubleclicking on one of the components listed would bring up the library browser, where you select that component’s footprint right before you place it.

In addition, I think there should be a quicker, easier way to associate an already-placed footprint with a component on the schematic. One way to do this would be that when a footprint is right-clicked, the pop-up menu would have a “set component reference” option which would bring up a selection of schematic components to link to.

There is much that can be done to make Kicad’s less restrictive of your workflow (as it is currently very restrictive).

Edit: I changed some of what this post says as I have changed my mind about some details of my proposal. Most importantly, I am no longer suggesting that footprint association should be exclusively in PCBnew, due to some concerns from others. I would still love to have my proposed features added, but radical removal of features is something to be careful about.

  1. we’re a support forum, not a wishlist, that’s what the bugtracker is there for

  2. [quote=“Electric-Gecko, post:1, topic:5429”]
    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.

You don’t have to. Just leave empty what you don’t want.
But the Layout Editor (PCBnew) needs a netlist, so you can connect the correct pins.

  1. [quote=“Electric-Gecko, post:1, topic:5429”]
    I think it should be easy to associate an already-placed footprint with a schematic component. This would make Kicad’s workflow much less restrictive (as it is currently very restrictive).


Electronic design works by drafting a schematic and then doing a layout, not the other way around. You’re in opposition to about 99.9% of the industry with your POV.

  1. professionals run parts libraries with footprints already assigned to schematic symbols and don’t use CvPCB at all. They never assign footprints to symbols at any step during the development of a design (unless it’s library work).


To me this sounds like putting the cart before the horse.

Also, there is nothing wrong with the CvPCB workflow for hobbyists while professionals can ignore it completely (you would know, as you got an integrated library and never see CvPCB in your workflow).

IMHO - the only thing professionals as of now miss is an integrated library manager for ‘atomic parts’, but @c4757p seems to be headed that way:

Why didn’t you chime in on that thread yet (or are you active on the mailing list - then scratch this)? :confused:

It’s quite crazy how much both of you are misunderstanding my points. Kicad is currently too restrictive towards a specific workflow. I am not against the workflow of schematic then board (although sometimes having to do a schematic is unnecessary). In real life, sometimes you might need to occasionally do little edits that break this workflow. Sometimes you need to go back and fix mistakes, but Kicad isn’t currently very nice about this.

Well at-least I know where to post these things now.
But I had really thought that the bugtracker was for issues with current features, not new ideas.

Sorry, my mistake. I had posted that after 2 weeks of not using Kicad.

Oh please don’t assume that I’m suggesting to reverse the entire workflow. I’m talking about assigning a footprint to an existing component on the schematic that doesn’t have a footprint assigned yet. Sometimes I like to experiment with how I can make things fit on the board. For example, deciding between two dual op-amps or a single quad op-amp, depending on the space I have. I also like to add internal connectors in the board phase, and wish I didn’t have to deal with the schematic to do that.

Like I said, Kicad is currently too restrictive in how you choose to use it. Although you generally want to make the schematic before the board, occasionally you might want to make an edit that breaks that workflow.

Additionally, what if I start the project as a board, thinking that it’s too simple to need a schematic, but then I change my mind? After I make my schematic, I would much rather assign the footprints already on the board than have to place them again.

What if some of the components are going to be wired off-board? Those don’t need footprints.

[quote=“Andy_P, post:3, topic:5429, full:true”]

[quote=“Electric-Gecko, post:1, topic:5429”]
I want to propose that CvPCB be removed, and footprint association would instead happen when you place the footprint in PCBnew.[/quote]

If you read through this forum, you will soon learn what I think of the CvPCB design flow. But your idea really isn’t any different from the CvPCB flow. As it stands now, you draw a schematic, and then when it’s time to do the layout, you do the footprint association, which then allows a proper net list to be generated for layout. You suggest doing the footprint association from within the layout, and honestly, what’s the difference?[/quote]
Just easier to think about. It lets you decide on one component at a time, instead of going over the whole list and then going back if you changed your mind. Also, having this in the PCB editor allows you to experiment with how different footprints will fit on your board.

Yeah; I’m just a hobbyist. But I don’t think that my proposal will be at anyone’s expense.

For this to work the layout program would need to be able to modify the netlist and the schematic would need to be able to read that changed netlist back in… very big can of worms and I have my doubt we’ll ever see this (<5 years).

1 Like

Ideally, there would never be a need to do what I’m suggesting. But sometimes, the plan doesn’t work out, and you have must figure something out at the moment. Humans are imperfect creatures, so they sometimes plan perfectly.

I’m a hobbyist and I can tell you that it’s a pain. Thank goodness I have thought of a way to change it. :slight_smile: There is “nothing wrong” with my idea, is there?

I’m not on the mailing list right now. I just joined the forum to give some feedback, as I definitely see things that can be improved.

Before starting this thread, I compiled the dev version to see if anything has changed since 4.0.5 (which is what I’ve been using). I wanted to check out that “New Component Selector”, but my build isn’t working.
The main menu is there, but it doesn’t let me go into Eeschema or PCBnew. If I click on either then it gives me two error messages.

In my experience anywhere from about 15% of the total effort for a project, up to 80%, is used for “library work”. That seems to be the case whether you’re starting a brand-new design or revising an old one.

p.s. - I wish we had less pejorative terms to differentiate between vocational practitioners, and avocational hobbyists. Some of the most impressive board layouts I’ve ever seen came from hobbyists who had the time, and accumulated experience, to give careful attention to every detail.


That was directed at @Andy_P :wink:

Look, I’m just a mod here - not a dev, so whatever I say is moot anyway.
But from what I have read and seen it’s some very hard work to get what you want, while lower hanging fruit with much more appeal and usefulness to a lot more people sit there in a big pile.

They still need footprints, even if the “footprints” are nothing more than a group of pads where wires attach. There’s a recent thread or two where this was discussed.

(Unless you’re talking about a high-level interconnect diagram , showing the connections between modules or functional units. In that case, you probably don’t even have a PC board.)



What is stopping you from placing an unbound footprint right there for whatever housing you might propose when you route the stuff you already got, while having no footprint associated (or just delete it in PCBnew after loading the netlist)?

I do that myself sometime…
Once I got accustomed to that layout I can exchange the part in the schematic (hobbyists = mod link in CvPCB), create a new netlist, load it and move the linked footprint into position, while deleting the one that was a placeholder.

Somebody wanting to start without a schematic, just placing footprints (how many are we talking about here?) and then wanting to go back to the schematic… I don’t get it.
For low number of footprints it’s easy and fast to ‘redo’ the schematic - for large number of footprints, what kind of workflow is this?

This is normal I would say, but starting with a layout (I’m not talking rough placement test or some such) and then wanting to go from there and creating the matching schematic is not a workflow I have encountered yet as a young lady, not even rarely. :girl:

This is all IMHO anyway.
Talk to the dev’s if you want an answer from the horses mouth.
I have no say in the matter whatsoever.

WHAT?!? Not in 5 years!? That’s crazy.
Although my experience in programming is rather minimal, I find it hard to believe that such a thing would be so difficult to implement. Is it just the way that the netlist stuff currently works that makes it a dead end?

If I right click a footprint and enter the properties, then it has a box with the “sheet path”. I just think it should be possible to enter a value there (preferably with a menu to select an entry), and have it be recognized. Is that what you’re saying is hard to implement?

But I have a feeling that the way the netlist works deserves an overhaul. I think it should be stored in memory (which both Eeschema and PCBnew can access), and saved to the disk when a save button is clicked. This would make much more seamless to jump between Eeschema and PCBnew.

If it worked this way, then would it be easier to implement?

That reminds me, for some projects of mine, I might want to have multiple footprints for the same component, placed on top of each other. This is so that I can solder in whatever part I have available after I order the board. For a capacitor, I might want to have two pads for pin 2, so that it would work with a small ceramic capacitor or a larger-pitched film capacitor.

When I order from a boardhouse, they’ll give me 10 copies. I want to give the extras to my fellow Hackspace members, and I want there to be some slightly different versions of the circuit that can be built with the same board.

By the way, thank you for all that you said, dhisholm. It’s nice to see someone else understands the point of my proposals, and also to confirm that they are also useful to professionals as well as hobbyists.

What you’re calling “normal” is actually the idea that I meant. Don’t worry; Nobody ever thought the latter was a good way to go (unless if they just decided afterwards that they needed a schematic to show other people).

I might want to have the pins of that component wired to holes on different parts of the board. Also, what if pins on different components are sharing a wire to the PCB? What if it’s a section of the circuit that’s wired off-board; not just one part?

All I can say is, get involved, read the bugtracker, open the source code, join the mailing list and try to implement what you want to see in KiCAD.
Good luck.

Tie up the footprint already when you make the symbol/part in the footprint field and you will never have to open CvPCB
So i agree CvPCB could take a trip to lala land for all I care.

Pushing the footprint asscosiation into layout would be a crime, it is and should be with the part itself.

Root problem cause is generic symbols coupled with generic footprints, it leads into a many possible problems.
Create “real” parts with real part-no.

1 Like

That is fine for ICs. For RCL this would mean to have a separate part for each package, like 0402, 0603…
You can do that now anyways.
Or else you would have to implement some kind of “technology” parameter, much like EAGLE does.

1 part for each part-no
no generic footprints.

all parts.

That’s how my libraries are organized :slight_smile:
Takes a little work up front, but then you are good to go forever.


Amendment: simplifies BOM handling, too.

1 Like

Yes, the generic way will lead you to endless pain.

Quick and dirty.

theres is no way you can send such a BOM to an assembly house without some extra processing (manual work)

assembly houses only mount real parts with real part-no


It’s all about quick-and-dirty (hobby) jobs vs professional large scale projects.
No judgment here, however, and no harm ment.

No judgement , but if hobbyists starts to tweak kicad more and more into quick and dirty it will be become useless for professionals