Defining Open Source Hardware

emm0sh
4 min readJul 28, 2024

--

TLDR

If I can’t edit, see or contribute to your calculations and CAD, it’s not open source.

A material selection analysis example: exposed publicly through Jupyter via GitHub Pages

Open Source Hardware is Hard

I’ve spent half a year now in trying to develop open source hardware. It has been one of the most frustrating challenges of my career. The reasons are not technical, which adds to that frustration.

It feels as though I am trying to train for a marathon, and I am paywalled every hundred meters. I don’t know if I’m a decent runner or not, all I know is that I can’t afford to run a marathon.

I go into it more here, but the TLDR of the article is that the state of the art tools are behind paywalls, which is fine, but there aren’t useful open source alternatives and no open source licensing available.

This is important to highlight for this issue, because the open source software movement works largely because the state of the art tools are available to them. Pytorch is free. Github is free. Any computer running x86 or ARM architecture has access to most software on the planet. Even the NSA has open sourced its software tools.

Part of having an Open Source Hardware project is ensuring that the tools you use are openly available to other people, and most hardware engineering tools are paywalled.

Defining Engineering

Before I define the minimum requirements for Open Source Hardware, I want to first define key steps in Mechanical Engineering.

  1. Defining Requirements — take your goals, define what your hardware must achieve in terms of objective performance
  2. Analysis — prove and validate that your hardware can achieve the performance
  3. CAD — this is the literal building block of your hardware. STL files are not a CAD format, they are a un-editable mesh representation
  4. Documentation Systems— this encapsulates all of the above and looks like manufacturing drawings, confluence, presentation slides, etc.

My Hard Statement on Open Source Hardware

If you do not have all of the above steps of a typical engineering process exposed to the world, your project is not open source hardware.

You can’t have engineers join your project and contribute if they do not know what the requirements are.

They can’t validate your assumptions and check your work if you do not provide the analysis.

They can’t make changes to your hardware if they do not have access to editable CAD.

They can’t meaningfully add to your project if there are no documentation systems.

For a hardare project to be “Open Source”, it must provide the items above. Period.

Three or less of these items means your project is not Open Source. At best, it’s licensed for free use, and in the worst case, it’s appearing to be Open Source as a marketing ploy.

What it Looks Like Today

For items 1 through 4 above, a “standard” engineering organization in the states today would have tools that looked like:

  1. Requirements —Powerpoints, Word docs
  2. Analysis — Spreadsheets, Powerpoints, Ansys
  3. CAD — Solidworks files on a samba share
  4. Documentation Systems — Confluence, Word docs

These paywalled tools are OK as they live within the organization that doesn’t have to deal with intermediary file formats and licensing.

What it can Look Like for Open Source

My best approximation of the above for ondroid, the open source hardware project I am leading looks like:

  1. Requirements — MKDocs running on GitHub Pages
  2. Analysis — MKDocs with Jupyter (MKDocs-Jupyter) hosted on GitHub Pages
  3. CAD — Paid for CAD, kept in FreeCAD containers and STEP files hosted on GitHub
  4. Documentation Systems — MKDocs running on GitHub Pages

These are all freely available tools.

Why is it Different for Software?

  1. Requirements — Most often, the requirement is that the software runs, or, they’re laid out in the header of the source code
  2. Analysis — Most software does not have to deal with the hard reality of physics
  3. CAD — UTF-8 is not licensed. Python is free. Github is free
  4. Documentation Systems — They often utilize MKDocs type documentation, but the comments in the source code is often enough. You can’t comment STEP files

Why Gate Keep This?

It does more harm than good to appear to be open source, when you are not. It hurts the messaging and wastes the time of engineers who want to contribute to these projects.

Even worse, it prevents new Mechanical Engineers from learning how to do the art. When I think about the risks to a great future, one of them is not distilling the art of Mechanical Engineering to the younger who are entering the field.

It’s our obligation as good engineers to do that.

My Ask to You

If you want your hardware project to be Open Source, please reach out. I’ve gone through months of pain in getting my projects to this standard, and I would be happy to assist you in getting your project to the same standard.

--

--