In order not to get lost in our own projects, we must in a logical way call and label them. Everyone has their own way. In this post I will present my way to naming projects as well as describing PCBs. I met this method in one of the companies in which I worked as an engineer and in my opinion it is simple, clear and intuitive enough that I decided to use it also in private projects.
First, I will present a few examples of project descriptions, schemes and PCB design: 1801p1v1r1, 1801p1v1r2, 1801p1v1, 1801p1v2r1, 1802p1v1r1.
In general, the project description consists of 2 main elements. The first part is 4 digits. The first two digits mark the year in which we start the project. 18(…) means that the project was founded in 2018. In 2019, the projects will start from 19(…).
The next 2 digits in the first section is another project in a given year. 1801 is the first project founded in 2018. The second project in 2018 will have the designation 1802(…). 1803(…) is the 3rd project in 2018.
Why use the next project number instead of some abbreviated project description?
Because the description unnecessarily lengthens the name. And the name is well put on the PCB, and there we do not always have enough space. I have a plain text file in the main folder where I have project numbers with full descriptions.
Why only 2 digits per project number?
Because I do not assume running more projects per year than 99. If someone plans a larger number of projects a year, he can use 3 digits. And then the first project would have the designation 18001, the second 18002, etc.
The second part of the description consists of a combination of numbers and letters. After setting up the project, the first scheme gets the designation: p1v1r1, which means:
- p1-first project
- v1-first version
- r1-first revision
So how to use this designation?
Let us assume that we are 2018 and we assume the first project. Then we create a folder called 1801p1v1r1, and in it:
- Scheme: 1801p1v1r1
- BOM: 1801p1v1r1_BOM
- PCB: 1801p1v1
Suppose we have a 0603 1kΩ resistor in the project. It turned out that we need to change its value to 0603 1.1kΩ. In this case, we assume another folder with the designation 1801p1v1r2, and in it:
- Scheme: 1801p1v1r2
- BOM: 1801p1v1r2_BOM
- PCB: 1801p1v1
Here is another matter:
Why is there no revision number in the PCB description?
Because regardless of whether we take the 1801p1v1r1 or 1801p1v1r2 schema, the PCB will fit. There is no need to change it when changing. Therefore, there is no need to mark the revision number with PCB.
Now let’s assume that we change the resistor 0603 1.1kΩ to 0805 1.1kΩ . In that case, we put a folder called 1801p1v2r1, and in it:
- Scheme: 1801p1v2r1
- BOM: 1801p1v2r1_BOM
- PCB: 1801p1v2
We are now changing the PCB designation, because we have to change the PCB as well.
Let us now assume that we have a project that consists of 2 PCBs, e.g. a PCB power supply and PCB with a microcontroller, and it will be a second project in 2018. In this case, we set up 2 folders: 1802p1v1r1 and 1802p2r1v1. And in the folders:
- 1802p1v1r1:
- Scheme: 1802p1v1r1
- BOM: 1802p1v1r1_BOM
- PCB: 1802p1v1
- 1802p2v1r1:
- Scheme: 1802p2v1r1
- BOM: 1802p2v1r1_BOM
- PCB: 1802p2v1
Summary
We change the revision when, for example, the values of elements change. We change the BOM, but we do not have to change the PCB. We change the version when, in addition to the BOM, we also need to change the PCB. We increase the project number if the project contains several different PCBs.
This is a method that has been used for several years and I am very pleased with it. It is fairly simple, intuitive and transparent. Thanks to it, having 2 PCBs from the same project can very easily determine which is newer and which is older. Also very easy to find documentation for the project having the same PCB.
About how to automate the creation of project files I described in this post: https://sigaris-electronics.eu/2019/04/script-generating-project-files/
Hi,
Interesting way of versionning your files.
If I understood correctly (and what I like), the main advantage of your method is that, without asking any question, you know that BOM 1802p1v1r1_BOM, 1802p1v1r2_BOM and 1802p1v1r5_BOM will fit in PCB 1802p1v1. Is that correct?
However, when you have to slightly modify your PCB (increase solder mask opening for example, after PCB supplier feedback), according to your rules, you’ll have to modify PCB 1802p1v1 to PCB 1802p1v2? But it has no impact on BOM or schematic, so either I lose the “compatibility” rule, either I have to increment BOM and schematic to 1802p1v2r1 in order to keep compatibility but it doesn’t make sense to increase a version number where you have no change?
Thank your for your feedback.
1. Correct.
2. If I am ordering the PCB and the manufacturer repports to me about PCB problems, I am still modifying the 1802p1v1 file. Only when the manufacturer begins to produce and I have no possibility to make any changes, then when I have to make corrections, I create the project 1802p1v2.
I hope I’ve dispelled your doubts.
Thanks for your reply.
I’ve added the revision parameter to the PCB for this kind of cases (PCB supplier feedback, EMS feedback, etc) where I only have “cosmetic” changes.
Just note that if you have a revision on the PCB, then if you change the item in the BOM, then you will have a situation that BOM number 1802p1v1r2 will be to PCB 1802p1v1r1. And there is a total mess.