In the world of software development, Git has etched its name as the go-to version control system. Git’s advantages to productivity and focus on continuous improvement have helped spawn entire industries. But what about its application in the realm of hardware?
Git for Hardware
Most electronics designs are more complicated than a single PCBA. Very often, designs are compartmentalized into multiple interconnected PCBAs, wiring harnesses, enclosures, mechanical fasteners, labels, packaging, and anything else necessary to run the design.
One of the biggest differences between using Git for software vs Git for hardware is that software tends to use Git as source control whereas hardware tends to use Git as version control.
Hardware project management is one of the most important facets of delivering reliable hardware under budget and on time. It is critical to be able to capture all of the things your team wants to work on and schedule who works on what and when.
Every hardware engineer is familiar with traditional design review. In the past, it made sense to gather a group of people in a room, staring at a projector screen, and manually walk through the schematics and PCB layout. Every person has a chance to voice their input and create action items.
Revision control has made huge strides in the past 15 years. File repos no longer need dedicated IT employees to set up and maintain servers. Numerous providers offer turnkey solutions for revision control. The most popular and functional tool has been the git.
In a previous post, we covered git for hardware commit best practices. To review, changes to the files are captured in commits to your local filesystem. Commits should collect small, purposeful, and related changes to the files.
Revision control can be overwhelming when first starting out. Engineers used to releasing files once per PCBA revision can be daunted by commits. It’s very easy to finish working on a section of a schematic and instantly jump to another. Keeping the development momentum flowing is important.