← Back to team overview

kicad-developers team mailing list archive

Re: Schematic Symbol Philosophy?

 

> On Jun 8, 2015, at 12:19 PM, Heiko Rosemann <heiko.rosemann@xxxxxx> wrote:
> 
> The "components library" is the approach Eagle uses, and I have a bit
> of Eagle experience, so let me try to explain...
> 
> In that approach, you do _not_ place just a symbol in a schematic, but
> an entire component (maybe a TL072ACD) or a component for which there
> are several variants (maybe a TL072A with the variants CD and DE, one
> a SOIC8, the other a PDIP8, but same symbol).
> 
> This makes the creation of new components and variants very easy, as
> long as the symbol and the package (Eagle speak for footprint) exist.
> All you have to do is to give it a name and "connect" symbol pins to
> footprint pads. This last step is basically what you used to do with
> CVPCB, only you do it only once, when you create the component. You
> don't have to do it for every TL072ACD in your schematic (where I
> agree it's very error prone), and it's more flexible than CVPCB,
> because it can connect pin 1 (symbol) to pin 3 (footprint) or pin E
> (symbol) to pin 3 (footprint) - so you don't need the
> TO220BCE/ECB/CBE/123 footprints.

For the record: I’ve never used CvPCB, and I’ve always thought that it was a mistake. I have always embedded footprint (and custom part numbers) into my schematic symbols.

> So you have a single "canonical" version of each footprint and symbol.
> No need to copy symbols for creating new components, no need to update
> or even touch all your OP-Amps when the one you based your symbol on
> shows a bug.
> 
> Or in other words: It takes your "library with a few of your favourite
> OP-Amps, each with the correct footprint embedded" one step further:
> The components only link to symbols and footprints.

OK, so this “component” library is something that maps symbols (from a symbol library) and footprints (from a footprint library) into a third library, in much the same was as Altium does with their Integrated libraries. 

> If you place a
> component in a schematic, it shows the symbol linked from it, and
> stores the information of available footprints to be used when you
> create a PCB from the schematic.

A given component should have exactly ONE available footprint. If your opamp comes in PDIP-8 and SOIC-8, those are two different components.

> If you place a component on a PCB, it
> shows one of the footprints it links to (or a selection dialogue).

Here’s a question: why would you place a component on a PCB? That component has no connectivity information, and Kicad won’t (and IMHO, shouldn’t) let you edit the netlist in pcbnew. (How should it regenerate the schematic when you do that?)

So I see what you’re saying … the “symbol” library should contain symbols only, and have no connection to a footprint, and you need a component library to map a symbol with a footprint (and a 3D model, and a custom part number for the BOM). The engineer doing the design interacts only with the component library; only the librarian needs to be concerned with the symbol and the footprint libraries.

Gotcha.

From the perspective of the user who considers each symbol to be a component (again, that is: embedded footprint, embedded custom part number, different symbols for TL072ACD and TL072ACP) and ignores the CvPCB crap, there’s not much benefit to a separate component library. That is especially true given the inability to edit a netlist in pcbnew.

-a

Follow ups

References