Standards Make the World

I have a theory about why Open Hardware has struggled to achieve the same sort of impact and uptake as Open Source Software. I want to share it here because I care about the idea of OSH and I’m hoping these ideas can start a productive discussion about how to do better.

In summary: I think OSH copied the wrong lessons from OSS. Transparency and version control were OK, but Interoperability is the most important idea.

I’ve laid out my thinking in a long essay titled “Standards Make the World”: Standards Make the World - Summer of Protocols

I’d love to hear what people think about the ideas discussed in the essay.


The article is interesting, well written and very well documented. I
personally think this is not the main reason why OH is not as advanced
as OS. The main reason is that OS requires little or no resources
beside a computer and it can compete with the industry on a level
playing field. To make an industry similar necessay custom box for
instance in OH costs 30K and requires injection molds etc.
On the other hand larger systems or larger team built systems require
divide and conquer approach. That means modularity which means
compatibility in connectivity which require standardized interfaces
which means both connector pins and signals which in computers are
sometimes called communication protocols.
I sometimes wish I can get on Off-the-shelf board with 10 on off power
io, i2c,spi and 4 stepper drivers with OS software and standardized
cheap connectors. Unfortunately I cannot see an off the shelf custom
box and 3d printing is not a viable option for anything rugged.
For sure modularity is extremely important. The term protocol is very
overloaded so it can be confusing without further explanations.
Pin standardisation for connectivity would also be beneficial.

Quoting David Lang via GOSH Community Forum

1 Like

The Internet of Production are a charity that specifically looks into open source hardware standards. It is certainly worth talking to them if this is your passion.

Personally, I have some grave misgivings about the focus on standardisation. Standards are essentials, but they form late in the game when we want to pull people together and they need all the major players to buy into them. Standards are about buy in. Open source is about cooperation, standards can arrise from that, but they don’t necessarily.

Hardware is incredibly interoperable at the lower component level. Any country in the world (except America to some degree) I can walk into a shop and buy matching screws (America has McMasterCarr to make up for this!). Compare this to the pain of continually updating software for the moving target of token interoperability.

I think any comparison of Open Source Hardware uptake to Open Source Software uptake is fundamentally meaningless. Software is ultimately infinitely replicable, open source code can be freely replicated. Not only this open source software as approximately as old a software itself, it is a continuation of the early ways that everyone shared code and worked together.

Hardware is embroiled in a world of patents, and mass manufacturing. The landscape we work in is entirely different. But the values we share, are transparency and collaborations. These bring us together, but just like how open source software is repeating the transparency of early software. Take a look at the writings of the Victorian era. Read James Joule painstakingly explaining how to seal valves, I see you have read some Whitworth, read Brunel rallying against the evil of patents. The sprit of collaboration, and the search for knowledge to share with all rather than to exploit, this is what we need to rekindle.

OSS hasn’t ruled the world because of interoperability. It has ruled because of collaboration. Collaboration, and openness creates opportunities for interoperability. A focus on standardisation as the ultimate goal is the reason why software has so many competing standards, we don’t want to become this:

Standards work best when all the major players buy in before hand, when the major players have an incentive for standardisation.


Hi David,

I’m not sure we’re looking at it the right way. It’s not that OSH should be like OSS because they are both open, it is that hardware is very different than software, so we should not expect them to behave the same way regardless of openness or closedness. The temptation to analogise the two is understandable but I think ultimately doing so does not yield insight.

Every time one imposes a standard solution onto a custom problem, some degree of efficiency is naturally lost because a compromise has been made. In the virtual or abstract domain this loss is small and is more than offset by the advantages. So while you might get a faster executable by programming in assembly, in most cases it makes much more sense to use a higher level language in which it is faster to write, and that is more debuggable. The standard imposed is the language. The advantage lost is the execution speed, the gain that offsets it is the ease of writing and debugging, and portability, maintainability, etc.

In the physical domain, consider the handphone that doesn’t have a jack for headphones. A physical standard has been replaced with a virtual one (bluetooth maybe), thereby saving space. The Macbook air laptop was designed without a LAN port for the same reason.

Bicycle parts are notoriously made to different different standards. Threads can be in inch or metric sizes. Seat post diameters come in different sizes. This is ostensibly due to bike design lying so close to the performance edge: a folding bike is different than a fatbike, but to get decent performance (like low weight), different standards are required.

The example of screw threads carries its own counterexample. While it’s true that screw thread forms are today standardised, and that this is unequivocally a good thing, it is also true that every engineered product will carry multiple sizes of the screws, whether UNC or ISO. It’s not a case of one size (diameter, or length, or head style) fits all use cases. Each different size is manufactured with different tooling (think forge dies for heads) and requires (potentially) a different tool to assemble it (think socket sets), then consider proof strength, surface coating, and material… The interchangeability of the screw is very much more limited than it might first appear.

Hardware is just different than software. The trend in software is towards greater modularity (reusable components like DLLs in runtime or libraries/classes at programming-time, distributed computing), whereas in hardware the trend is towards greater integratedness, like phones without headphone jacks, or removable batteries, screens that are glued in and not easy to replace. Passenger cars have gone to front wheel drive to integrate drive train with the engine, thereby saving space that can be devoted to the passenger cabin, but also becoming more difficult to service. Hardware has to deal with the real world. Software deals with a world that we create for it.

1 Like