On 3/24/2025 11:14 AM, bitrex wrote:
How do you version control your PCBs these days?
Just like any other version control. Part number with revision identifier.
For *everything* (including the tools used to do this!)
I'm at the point I need to implement a more consistent schema for hardware versions, prototype, and production boards.
Why would there be any difference between them? They are all just
"things placed under version control". Each deserves its own unique
identifier.
DON'T fall for the trap of wanting to assign significance to your
identifiers. That's "small shop" mentality. Avoid the "urge" to
pick identifiers just to make it "easy" on yourself to "recall"
related objects:
product PRD123 is built from
bare PCB PCB123 shot from
with gerbers GER123 defined from
schematic SCH123 populated with parts from
bill-of-material BOM123 and
firmware FRM123 tested to
acceptance procedure ACC123...
This just leads to stupidly long identifiers that will, eventually, prove
incapable of "encoding" the information that you want to be able to "recall"
unaided.
I've got a small board, here, in front of me. It's a management interface
for a UPS. Likely produced in tens of thousands, if not more.
There are two different barcode labels affixed. At least 6 different
"process stamps". Two different identifiers *in* the silkscreen.
Yet, obviously only partially populated -- so, we know the silkscreened
identifiers won't tell me what *this* unit actually is!
The manufacturer will have adopted some convention as to which of
the identifiers actually is associated with the topmost level for
this board -- which is likely different than the identifier
assigned to the *kit* in which it was packaged (which included
still other materials).
Perhaps it is not possible to truly and unambiguously identify
THIS item as there may be identifiers "hidden" from view (i.e.,
only "visible" with tools that can directly query the device)
E.g. PCB-12345-R-B where 12345 is the PCB/product identifier and B is the manufacturing revision. Would you letter designate prototypes that are manufactured as well, or just revisions intended for public consumption?
Why "PCB-"? Will that help you find the schematic for the device
(SCH-12345-Q-D because the schematic need not have a 1:1 correspondence
with the actual *board*!) What about the BoM: BOM-12345-L-F (because
the board might find use in different products each with different
stuffing options)?
Will you end up choosing a marketing name that allows you to similarly
associate with these "manufacturing identifiers": Frajistat 12345?
Will you keep it in the stockroom immediately adjacent to the 12346
device (to make it easier for you to find)? Or, will you let SOMETHING
BETTER EQUIPPED (than your grey matter) keep track of this association
FOR you?
(Identifier, revision). End of story. Whether it is a screw, resistor,
case, procedure, compiled binary, source code, etc.