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

Re: gEDA-user: Solving the light/heavy symbol problem



   Oh boy am I glad y'all are having this conversation, and I hope you
   don't mind some comments from the peanut gallery.

   On Fri, May 20, 2011 at 11:01 AM, DJ Delorie <[1]dj@xxxxxxxxxxx> wrote:

     [Subject changed to start new thread]
     > When I first read geda documentation, there were already
     references
     > that this had been discussed ad nauseam.
     Sigh, yes.  It's not an easy problem to solve, and I would consider
     any solution a "major effort" because it touches everything from
     gschem to pcb to sim.


   No it isn't easy but for the reasons mentioned above has the potential
   to improve gEDA usability (ergo adoption) in significant ways.

       ...the ability for the user to manage their library
     from either gschem or pcb would be ideal.

   Yes please! (right click and or hotkey -> attach footprint to symbol)

     Bonus points for backwards compatibility, but I think that would
     only
     make things much harder for us.  I'm willing to start fresh with the
     caveat that old designs would need to point to old libraries.  In
     the
     past the desire for backwards compatibility was a stumbling block
     for
     this, but perhaps we just need to accept the breakage.
     I'm also willing to consider a new method for auto-generating
     families
     of footprints.  I think M4 is not the preferred method for anyone
     anymore, despite a general disagreement about what *is* preferred
     :-)

   Put me down for intense dislike of M4. Sorry. I'm sure it's a fine
   choice for some, but I've never had to touch or know anything about M4
   for anything else, ever. Which means that on some occasion that all I
   had wanted to do was make a printed circuit board; now I have to go and
   learn enough about M4 to make my little footprint(s). It also means
   that I'll probably do something wrong, or in a non-optimal way, since
   I'll never use it enough to achieve any sort of proficiency.
   tl;dr I would love an easier way to generate footprints.

     > If the default lib is to be changed now, then there should be some
     kind
     > of new consensus on the heavy/light issue.

   There are many perfectly reasonable occasions / individuals who would
   prefer the heavy option.
   It is also reasonable to say that the light option gets you the most
   flexibility.
   After years of watching this debate go nowhere, may I suggest that you
   must either find a way to do both, or tell some of us to bugger off.

     IIRC there are a few proposals and/or active solutions in play:
     * Standard library is light, users heavyify them (we need a better
      verb for that ;) into a project-specific (or even site-global)
     heavy
      symbol library.
     * Standard library is heavy, users either use those as-is or modify
      them to alternate heavy symbols.
     * Standard library is light, the tools automatically heavyify them
      based on some database somewhere (both static and dynamic
      conversions have been seen/suggested).
     * Standard library is some mix of heavy/light.  I think this is what
      we have now, although not ideally implemented.
     In all cases, one key problem is that there are so many potential
     heavy symbols that we cannot possibly have "all" of them.

   Nobody needs all possible heavy symbols, and disk space is cheap.

      The
     solutions either accept a common subset of heavy symbols or


     defer the
     problem to the user, who only puts effort intothe symbols they
     needed.


   Which puts many (often novice users) to the task of creating their own
   symbol/footprints, and probably doing it wrong. This is bad for so many
   reasons, not the least of which is that there will be so much
   duplicated effort spent on a very mundane task, like creating a
   symbol/footprint for some three-terminal regulator, or TTL logic gate
   or something.

     My own proposal (posted in the past) is here:
       [2]http://www.delorie.com/pcb/component-dbs.html
     It moves the problem out of gschem and into the netlister, which
     gives
     PCB the opportunity to be part of the process as well (the netlist
     can
     accept input from both gschem and pcb), but adds the requirement for
     back-annotation for those who prefer the master schematics to have
     that info in them.  It is also an optional step in the flow, so it
     doesn't block other solutions (like a heavy-only library).
     Note that any solution should have these attributes:
     * It should be easy to go from a light symbol to a heavy one, so
     that
      users can add, say, a generic resistor to a schematic and later
      allocate a specific part to it.  While text editing is technically
      easy, it doesn't streamline into a gui-centric flow, mor is it
      readily scriptable.
     * New users should find it easy to make their first PCB.

   Yes! New users, casual users, experienced users, all users.

      This might
      mean a "starter" set of heavy symbols, or it might mean the GUI is
      streamlined for heavyifying light ones.
     * It should be equally easy for newbies to, say, do their first
      simulation.  This might mean an alternate database for sim vs
     layout
      with "modes", or it might mean distinct "domains" for heavyifying
     so
      that one schematic can hold both sets of information, or it might
      mean storing flow-specific heavy data elsewhere and merging in the
      netlister.
     * Massively scripted flows should remain massively scriptable, while
      gui-centric flows should remain gui-centric.

   My suggestion for symbols and footprints (and maybe other / metadata).
   Don't ship gSchem or PCB with any. At first run, and in preferences,
   and in config files, give users the ability to choose their own poison.
   Use git to synchronize with a (set of) master symbol and or footprints,
   and or something else databases. Include options to use others' symbols
   / parts (gedasymbols, luciani, etc). Include options for users to share
   their own symbols via git. Create online symbol and footprint
   generators that create standard footprints (at least for JEDEC standard
   stuff) properly (according to best practices).
   By the way, if you guys decide to tackle a big re-write, the IPC and
   NIST tried to tackle this problem a few years ago. I don't know what
   ended up happening to their efforts, but it might be worth looking at
   what they did. They produced a nice little GUI thing which can be
   downloaded at the link:
   [3]http://webstds.ipc.org/viewer/Offspringviewer.htm#
   Many Thanks,
   -CN

References

   1. mailto:dj@xxxxxxxxxxx
   2. http://www.delorie.com/pcb/component-dbs.html
   3. http://webstds.ipc.org/viewer/Offspringviewer.htm

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