[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: Database on symbols, footprints and other (was "Re: gattrib")



On May 2, 2010, at 5:21 AM, Armin Faltl wrote:

> 
>> I'd avoid data base solutions for footprints, symbols, simulation models and the like.   
> Appart from my attempt to come up with my own table layout, I try now to get gparts working.
> It's an independent tool like gattrib and you are free not to use it.
> The idea of the tool is, to describe the relations between the entities you mention.
> You are also free to do searches among the thousands of little packets some of them
> with wrong lables as of now by hand.

But you don't have to struggle so much if your project symbols are organized. The mistake to avoid is using the library symbols directly.

> 
>> * Unless there are excellent import/export functions, a data base is an additional obstacle to collaboration. These functions need to be written and maintained-
>>  
> Inventing yet another cryptic file spec to describe the relations is even more obstructive.

By this reasoning, gparts should work with the project symbol files. We are already using this file spec, and it has already proven its value, comprehensibility, and flexibility over and over.

The problem here is that few seem to recognize that it is perfectly sensible to see a .sym file as a container for a relation.

>> * Only a very small subset of the operations available on file systems is present by default in data bases. Just to get the same level of user power as with files, a major effort of data base scripting is needed.
>>  
> ???
>> * A data base can easily be corrupted on update of the data base driver.
>>  
> A file backend driver on changes of the file format can mess up as well, esp. if one tries
> to reuse some parts of the parser. So can format converters of any kind.
>> * Open source data base drivers like postgres or mysql may be quite mature. Compared to the stability of the unix file utils they still look shaky. And fast moving.
>>  
> The implementations are evolving. The good thing is, there is an ANSI/ISO-standard called SQL99
> and that is stable and more than sufficient to describe what we need.
>> * A data base would add a major dependency to the already significant set.
>>  
> True. For me still a lighter burden, than to implement the functionality of a database engine.

Except that we already have much more than you recognize.

>> * The number of all objects in the library is fairly moderate. All symbols and footprints from the distribution plus all of gedasymbols are currently about 4300. This can easily be handled by a file system.
>>  
> Even the millions of parts with their several packages each could be handled by a proper
> directory tree. It's the connections that are the problem and a database expresses them
> implicitly. (there is no such thing as a "symbolic half-link" that connects to everything
> that happens to have "the other half" ;-)
> 
> As the name "gparts" suggests, the databases main objective is not to map symbols to
> footprints but to map vendor-parts to geda-aggregats.

Why not express that mapping as a set of .sym files?

> 
> Independent of this post of Kai-Martin I've thought about how to express the relations
> in the files we have now. Heavy symbols are restrictive and don't really do the trick.
> E.g. just now, I'm in the situation to work from a breed board towards a series-board
> and in this process may replace throughhole resistors with SMD.

I will guess you let the defaults in gEDA take you down the usual low-productivity path:

1. You used a library resistor symbol by reference rather than making a project copy.

2. Then, of necessity, you attached footprint= attributes to each instance instead of your resistor symbol instead of placing a footprint= symbol in your project symbol.

Your situation is very familiar to me, and is precisely why I use the project symbol collection approach for any large gEDA project.

> It's clearly undesirable to replace the symbols in my schematic. Likewise it's very
> tedious to replace footprint attributes in the symbols and error prone as of now.
> And then I may not want to replace all the through-hole parts because I like the
> via-functionaltiy of their legs or because I can put more traces beneath one.

Use attached attributes at the schematic level to override your project symbol's attributes. Or make another symbol, substitute. This is another thing that's easy, but clumsy with the existing GUI.

> 
> What one needs is an abstract description of the pinout of a component.
> This pinout can be embodied in several packages. This I think, is what the
> device attribute is really for. This won't catch all cases, therefore a direct
> connection from symbol to part should be possible.
> Reading the article on transistors (http://www.geda.seul.org/wiki/geda:transistor_guide)
> the example of "the same transistor" being available as TO and SOT package,
> the concept of freezing package pins to symbol connections breaks down
> completely.
> - I never understood the difference of pinnumber- and pinseq attributes in a symbol.
> As far as I can tell, the number is redundant to the seq and used for nothing.
> It would be intelligable, if the number were used for the netlist and using
> the same number for different seq's means, the physical pins denoted by seq
> are electrically connected. This of course doesn't go well with the rendering
> of symbols as of now.

No, that's not how it works.

The pinnumber is the physical pin on the footprint. It doesn't really need to be a number. Ideally, it should match the physical pin designation on the manufacturer's datasheet for the package (while pinlabel should match the functional pin designation). Except different manufacturers use different mappings...

And then pinseq is, unfortunately, overloaded.

1. It serves to identify the pin for the slotting mechanism.

2. It orders net connections in the positional component-centric netlist formats, SPICE and Vipec.

> Therefore, the whole business may be moved into a device-entity, that maps
> the electrical connections of a part (that are represented in a symbol) to
> the physical pins of its package. (I know this has been described before)

Except that can already be described by the symbol file, so why have a redundant way to do this?

I'm not sure what the correct approach is here. These days, too many users seem to want separate, labelled things like "databases", rather than seeing all the isomorphisms that make life in the technical world simpler, better connected, and easier to comprehend.

John Doty              Noqsi Aerospace, Ltd.
http://www.noqsi.com/
jpd@xxxxxxxxx




_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user