Best Practices in Hardware Version Control Systems
Some PCBs are simple enough that you don’t need multiple designers working on a large team. Design files basically come in two forms: as the initial project files, and the final project files once the design is complete. The way my team works, we often receive some design files from a client to help us get started, and we have to manage everything ourselves after that. Any project can get very complex, and the PCB design team needs to track revisions throughout a project.
Why worry about tracking revisions? In the event you ever receive changes to product functional requirements, major changes are made to your product’s architecture, or you’re ready to finalize the design and prepare for fabrication, it’s best to clone a project at its current state and begin working on a new version. Keeping track of all these design changes in a PCB design project takes the type of hardware version control tools you’ll find in Altium 365™.
What’s in Hardware Version Control?
What goes into hardware version control and when should you use it? What does it take, for that matter? The software world has been using version control ever since Linus Torvalds created Git in 2005, and useful hardware version control systems have struggled to catch up until only recently. Hardware version control provides a simple way to keep track of older versions of a PCB design project, encompassing everything from schematics to fabrication documents and mechanical drawings.
A version control management system is responsible for tracking and managing successive changes to any collection of information, including PCB design data. In my opinion, version control is a necessary feature to take advantage of when possible, especially if your team works on complex PCB design projects with multiple collaborators. The best version control systems for hardware development provide some important functions and pieces of information:
- Chronological list of revisions to a project. Any added or removed design documents, changes to PCB design data, commit dates, and any comments on design revisions be viewable in chronological order.
- Who made the changes. The user responsible for making and committing changes listed in the revision history should be listed alongside each revision.
- Created PCB project releases. Anytime a project release with output files is created, the release should be viewable and accessible in the revision history list.
- Ability to download or clone each revision. The ability to clone a previous revision of a project as a new version is central to version control.
Version control systems can track all of these data and revisions on a local server, or in the cloud with a managed server. This gives you access to earlier versions of a project, either to rollback/clone a project in a previous state, or to simply download the old project data for other purposes.
When to Clone Projects with Hardware Version Control
Whether you’re tracking revisions on software projects or PCB design data, you may need to roll back to an earlier project version for a number of reasons. If you do plan to clone a project within your version control system, here are some times where you should consider cloning a project.
Functional Requirements Changes
Customers or an engineering team may change your product’s functional requirements for any number of reasons. When there is a change, it is a good idea to clone the project in its current state and apply revisions to the cloned project. By forking the project to a new version, you can always revert back to the previous project if the new functional requirements are abandoned.
You should always sanitize your BOM before you begin a new design, and especially before beginning a new PCB layout. Even if you looked into component stocks early, the supply chain can change quickly, and it’s possible that important components have gone EOL, LTB, NRND, obsolete, or out of stock.
If this happens with an MCU, FPGA, or other specialty IC, the replacement component may contain an entirely different pinout. Here, you can clone the current project and place the new component in the new project. In the event the old component becomes available, simply roll back to the old project. I’ve found this is useful when a client is dead-set on a component like an MCU that they can’t source, but they still want a manufacturable board with sourceable components. You’ll definitely put a smile on their face when you hand them both versions of the project.
Preparing for Fabrication
Once you’ve released your design data to your manufacturer (and if you paid the NRE charge), they may make some changes to the layout or output files. I always make a copy of the finalized project before releasing it to the fabricator, and then I tell their team they can make whatever modifications are needed. They’ll normally send back a set of design files with any required modifications applied directly.
In the image below, Altium Designer makes it easy to clone a project on the Altium 365 managed content server without going through my web browser. I already have the project entered into version control and synced with the files in my Altium 365 Workspace, but I can easily clone the project and save a new copy to my Workspace; there's no need to download and re-upload the cloned project. I could also use this cloned project as a new variant, reuse it in a new design, or use it as a backup as needed.
There are many other ways and reasons to use hardware version control for your PCB design projects. No matter which task you need to complete, you need to use a world-class data management system that integrates directly with your PCB design software.
Altium 365 is the Future of PCB & Hardware Version Control
Version control is a simple, yet powerful concept that more designers should consciously embrace. When I was first getting started working with a remote team, each designer would track their own series of project revisions on their local computer. In some cases, the client would handle these tasks using a proprietary system. These solutions are inefficient, and third party solutions won’t integrate with your PCB design software.
The same version control processes used for software can be used for hardware version control with Altium Designer® and the Altium 365® platform. Design teams can create a productive and collaborative PCB design workflow by bringing designers, end users, and manufacturers into the development process. Everyone on your team will have access to supply chain data, commenting features, and data sharing tools to help streamline PCB design collaboration.
We have only scratched the surface of what is possible to do with Altium Designer on Altium 365. You can check the product page for a more in-depth feature description or one of the On-Demand Webinars.