← Back to team overview

kicad-developers team mailing list archive

Re: Schematic Symbol Philosophy?

 

> On Jun 8, 2015, at 2:28 PM, Heiko Rosemann <heiko.rosemann@xxxxxx> wrote:
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On 06/08/2015 10:41 PM, Andy Peters wrote:
>> 
>>> On Jun 8, 2015, at 12:19 PM, Heiko Rosemann
>>> <heiko.rosemann@xxxxxx> wrote:
>>> 
>>> 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.
> 
> Yes, it is for Eagle (although components, footprints and symbols were
> all saved in the same file when I last used Eagle, but still during
> the schematic and PCB design phase you only interact with components)
> and I guess that's what Eldar tried to achieve too.
> 
>>> 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.
> 
> Why? There's a good point for the opposite: Making different PCBs (SMD
> for series production/no SMD for prototyping/hobbyists or different
> casings) from a single - consistent - schematic. Otherwise you are
> going to run into trouble because you'll have multiple schematics of
> the same system and you need to change something on the logical
> (schematic) side.

Maybe the hobbyist will do a through-hole prototype and then an SMD version for “production,” but here in the real world, we never do that. Really. It just doesn’t happen. Stuffing boards with SMD parts is a solved problem.

And, as Chris Pavlina has noted in a reply on this thread, it’s folly to assume that a part that is available in different packages has the same pinout for all of those packages. LT1371, for example, has an 20-pin wide SO package in addition to two 7-pin packages (TO-220 and DDR).  

> Of course the different "variants" of a single component would also
> need different BOM numbers, different 3D models etc. and stuff like
> the BOM needs to be generated from the PCB, not from the schematic, in
> this use case.

Right, and that argues AGAINST having one schematic for wildly-different implementations. It’s bad enough trying to keep track of stuffing options, which only affect the BOM and assembly, but to add in the option for a different PCB with different footprints? That’s a new design.

> 
>>> 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?)
> 
> 1) For very simple layouts, you may not need a schematic at all, but
> need a PCB file for manufacturing the board, so you just place the
> components and draw lines for tracks.

If the layout is that simple, shouldn’t drawing the schematic be equally simple? How hard is it, really? 


> 2) Other software (and maybe also kicad someday?) can do
> back-annotation, i.e. netlist editing from the PCB editor. That's
> where adding a component on a PCB really comes into play (and deleting
> is still more relevant than adding)

So let’s say you are doing your layout and you add an inverting op-amp circuit, so you need the op-amp, two resistors, and maybe two decoupling caps. You add the parts to the artwork, then you edit the netlist to connect those parts, and then you add values to the resistors and capacitors. Now to back-annotate to the schematic.

Imagine what kind of mess will be made of the schematic when you do that. How is the back-annotation thing supposed to know what looks best to the human? I mean, even in the “we need this feature” case where you are simply changing the connections to an FPGA by moving some traces around, the back-annotation would look like crap.

And, seriously, that’s FASTER than just editing the schematic properly in the first place, regenerating and importing the netlist, then moving the parts to where the need to be and routing? It’s really just crazy.

The only back-annotation I want to see is where once place and route is finished, you just tell the tools to renumber the reference designators in a geographical fashion and update the schematic with those new values.

>> 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.
> 
> If there was a library for every part the user would ever want to use,
> that would be true. I have yet to meet a PCB designer who never
> created any library components (as in: Choosing symbol, footprint,
> doing pin association) though…

Of course, it’s very common to have to create parts.

> But this topic has crept up on this list about every other year (I'd
> say) and nobody (me included) is putting any coding effort (or similar
> contribution to kicad) behind it, so we might as well drop the
> conversation here - I just wanted to drop in because I felt you and
> Eldar weren't really discussing the same thing ;)

I (now) realize what he’s asking for but I remain unconvinced of its value. And based on the fact that it comes up every year and the developers don’t take much interest in it, they don’t see the value, either.

-a

References