Mail Archives: geda-user/2016/02/28/12:19:53
--=-=-=
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
"Nicklas Karlsson (nicklas DOT karlsson17 AT gmail DOT com) [via
geda-user AT delorie DOT com]" <geda-user AT delorie DOT com> writes:
> A BOM generator which automatically heavify symbols with ordering
> information is what I ultimately want to write. Of course there have
> to be a database with values to pick from.
Keith and I recently put something like this together for Altus Metrum.
We now, by default, only set three attributes on a part: 'device',
'footprint', and 'value'. We have a "preferred parts" database that's
just a tab-separated-values flat file, and a couple awk scripts that
take the attributes for each part in a csv file, use the triplet above
to index into the database, and fill in any missing attributes.
This means that for almost all parts, we only have one place to update
when we change manufacturer part data or vendor info for our 'preferred
parts', yet we can override any attribute we need to on a per-design
basis. It's also encouraging us to consider adding more attributes to
each of the parts in our common parts database, like the partial
pathname to the datasheet for that part within our shared local
datasheet file tree, additional physical attributes, etc... which we
could never get motivated to keep up with on a per-design basis.
We've also consolidated other things like the Makefile content for a
project. A typical per-project Makefile now just contains something
like this:=20
# name of project, also used for PCB file
PROJECT=3Dtelemega
# list of schematic files that make up this design
SCHEMATICS=3Dtelemega.sch
# number of PCB layers
LAYERS=3D4
# sides with silkscreen, can be none|top|bottom|both
SILK=3Dboth
include ../altusmetrum/pcb.mk
This makes it really easy to maintain in one place the rules required to
target different board shops, the rules to do our BOM generation using
the preferred parts database, etc.
Anyone who wants to play with this is welcome to clone our shared repo
From=20git.gag.com, what you want is the "hw/altusmetrum" repo... then
pick one of our product repos like "hw/telemega" to see how it's
used... these need to be adjacent directories in your file system for
the "../" references to work, of course. There is no real documentation
on any of this, but if you can read Makefile and awk sources it's all
pretty obvious.
Anyway, hope this helps someone. It's working well for us, but feedback
is of course welcome!=20
Bdale
--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIVAwUBVtMr3zqTYZbAldlBAQorQg/+JRH3S3xGvgvi/MoAafAtLe4Al0NRACc3
vIE/RNIPB+DXw1krDVUDtKKeprOUVLOGJgnRqN/VkfU7OOXbbKWkVEoe4LPJE+rd
FG5XqqDG/59qte46JXHrQJ2PnFcvIkOHokBLHiWQH8DclfBEA530GctLIR1GQWxL
EI+ReBx+3xKYdmeqsG275okYBrOGzCMjsW8sXIjdG+42HSivBWec1wRw3azT8eae
l5r8jtjYFQ0fnd6LnXflBWa2whlO0YHCKMt9wjF7LOblO87+kD6pwLyaKnGCAP8h
w5vkuLNsU5WFfuG6cDwrX1xDb3hG+BqCtgY7SQKyVxi7tRWJ0yYiM6RoX5G/IGYE
i2X1CMlso/GQDYjuieeO48U6ZoCLX+P2QcwFE97WVbelZOek6vmyfFp77GW18T54
VZ7vdSdMzOOETQMN/FCti6UJejkgXqKVwMmKN/2QkQAodu2vJcXlCAlH3o97SHlE
9zYkHaLtrL16D54tQXKMvk4jrRQmeOYc+3Y6PTXe5OG+FT4YvW8pCydFYSJZqg6i
eRqCdQ7TrVOUf86HuEYTfFq1ypK/hmN4y+ONfxb/WMdKBn/L5wzqPHyNNEhYUsSl
4IMmpV8z1EuXNh5Po9rY6P40vaRocFDXsdjCqPWMRb2qSCiokNSLEbeaias0/c3v
AuLKdKB2tDI=
=3yeK
-----END PGP SIGNATURE-----
--=-=-=--
- Raw text -