A Versioning Scheme for PCBs

A Versioning Scheme for PCBs

There is some things in designing electronics that is not prioritized as it should. Versioning is one such thing. When discussing this with colleges I sometimes hear the argument:

-I increment a number for each revision I do. It works for me.

The problem with not using a well throughout revision number is that you loose control and traceability of produced PCBs.

The versioning scheme I use is based on a versioning scheme which I believe originate from Ericsson. It contains two version forms:

Preliminary versions uses the form “p<PCB NUMBER><PBA LETTER><ITERATION NUMBER>“.

Released versions uses the form “r<PCB NUMBER><PBA LETTER>“.

The rules are simply:

  • If the layout has changed since the last released version the PCB NUMBER is set to the PCB NUMBER of the previous released version plus one and the PBA LETTER is set to ‘a’. For example: r3d becomes r4a.
  • If the layout has not changed since the last released version the PBA LETTER is set to the next letter after old released PBA LETTER. For example: r3d becomes r3e.
  • Before a version is released a preliminary version number is used with an ITERATION NUMBER that is incremented for every review. For example: p2a1, p2a2, p2a3 …

A typical revision history may be:

  • The designer creates an initial version “p1a1”.
  • A review is done with some issues that needs to be addressed.
  • The designer fixes the issues which results in version “p1a2”.
  • A new review is done for “p1a2” which results in the design being accepted.
  • The designer replaces the ‘p’ for preliminary with a ‘r’ for released and removes the iteration number. The new version will therefore be called “r1a”.
  • The “r1a” is sent to the manufacturer.
  • After testing the boards a couple of major errors are found which needs to be fixed by modifying the PCB. The designer creates a “p2a1” version and fixes the errors.
  • A review is done which results in the changes being accepted.
  • The designer changes the version from “p2a1” to “r2a”.
  • After testing the new “r2a” boards a couple of minor errors are found which needs to be addressed by changing component values. The designer creates a “p2b1” version.
  • A review is done on the “p2b1” version and the fixes are accepted.
  • The designer renames the version from “p2b1” to “r2b” and sends the new revision to the manufacturer.


Preliminary and released version

There are often a lot preliminary versions before a board is actually produced (due to iterations after review). By using separate versions for preliminary the number of versions can be kept low.

Using preliminary versions reduces the risk of production of non released versions of PCB. Preliminary versions are never produced so you always know that you should never send a preliminary version to a producer. This reduces the risk of manufacturing incomplete or not reviewed PCBs.

Iteration number for preliminary versions

During review only preliminary versions are reviewed. To keep track of changes done since last review the files reviewed needs to be traceable. Iteration numbers makes this possible.

Dividing version into a PCBA and PCB part

Dividing in a PCB (layout) and PBA (Schematic, BOM) part makes it possible to know if a produced PCB can be reused with another revision.

Letter and digits

Mixing letters and digits is easier for the eyes to separate than using a dot. Using dots instead would introduce a risk that it would be impossible to know which is the PCBA number and which is the PBA number if the dots are not correctly printed on the PCB.

This article has been shared with us by Johan Henriksson

Share this post

Leave a Reply

Your email address will not be published. Required fields are marked *

  • Sign Up
Lost your password? Please enter your username or email address. You will receive a link to create a new password via email.