Best Practices in Hardware Version Control Systems

Zachariah Peterson
|  Created: October 21, 2020  |  Updated: March 10, 2021
Best Practices in Hardware Version Control Systems
Whenever you collaborate with a remote team, you need to track revisions throughout a project’s lifecycle with a hardware version control system.

Some PCBs are simple enough that you don’t need multiple designers working on a large team. Design files basically come in two forms: 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 hardware 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 tools for hardware version control for PCB designers you’ll find in Altium 365™. In this article, we will discuss hardware version control best practices and version control numbering best practices.

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 for electronics 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 electronics version control of a PCB design project, encompassing everything from schematics to fabrication documents and mechanical drawings.

A version control management system is responsible to track hardware changes and managing successive changes to any collection of information, including PCB design data. In my opinion, version control for electronics 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 hardware 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. 
Hardware version control for PCB design
Whenever you collaborate with a remote team, you need to track revisions throughout a project’s lifecycle with a hardware version control system.

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 when 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.

Components Changes

You should always sanitize your BOM before you begin a new design, 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 specialties 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 a 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.

Hardware version control
Altium 365 makes it easy to clone a project from directly within Altium Designer. Simply select this option from the Projects panel.

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.

About Author

About Author

Zachariah Peterson has an extensive technical background in academia and industry. He currently provides research, design, and marketing services to companies in the electronics industry. Prior to working in the PCB industry, he taught at Portland State University and conducted research on random laser theory, materials, and stability. His background in scientific research spans topics in nanoparticle lasers, electronic and optoelectronic semiconductor devices, environmental sensors, and stochastics. His work has been published in over a dozen peer-reviewed journals and conference proceedings, and he has written 2000+ technical articles on PCB design for a number of companies. He is a member of IEEE Photonics Society, IEEE Electronics Packaging Society, American Physical Society, and the Printed Circuit Engineering Association (PCEA). He previously served as a voting member on the INCITS Quantum Computing Technical Advisory Committee working on technical standards for quantum electronics, and he currently serves on the IEEE P3186 Working Group focused on Port Interface Representing Photonic Signals Using SPICE-class Circuit Simulators.

Related Resources

Related Technical Documentation

Back to Home
Thank you, you are now subscribed to updates.