What is special about hardware?¶
Sharing hardware designs is mostly sharing files, as you would do in any open-source project. There are however some specifics worth bearing in mind.
File formats¶
Many of the most popular hardware design tools, be it for Printed Circuit Boards (PCB), mechanics or other domains, are proprietary. In addition, the formats of the files these tools produce are often not publicly documented and binary (i.e. not text-based) in nature. Large binary files are not a good fit for traditional software version control systems such as Git. So, as described in the best practices, we recommend storing these binary files in other places, and pointing to them from the main wiki page of the project in the collaboration platform (GitHub, GitLab...).
Companies¶
This is a big difference with respect to the software case. In Open-Source Hardware (OSHW) projects, the involvement of companies is virtually always necessary. At the very least you need to interface to a company which will manufacture the hardware and send it to you. Because companies are necessary actors when you want to go beyond simple prototyping, it is good practice to involve them early on. More details on the best practices page.
Iterations and cost¶
Another big difference with software projects is that a design iteration in hardware, typically involving the production and test of prototypes, takes much longer and costs money. This is why typical development flows for hardware stress quality by including several specification and review stages in each iteration. See the how-to guides for an example flow for PCB design.
More than just hardware¶
Very often, a hardware project also includes software that runs on or interfaces with the hardware, as well as gateware and documentation. It is important to treat all these as an integral part of the project, because people who want to use your hardware design will typically need these extra bits too. In addition, the testing of the hardware may require specific developments, including ancillary hardware designs whose only purpose is to facilitate these tests. These additional designs are a key part of the success of many projects and should be considered jointly when open-sourcing hardware.