21

Most of us know open-source and open-source concepts from software. Code is easily distributable. We have various licences that help us legalize and regulate how people use our code, and we have various services that help us reach out and show-off.

How (and how well) do these concepts apply to hardware? How do I open-source a hardware product?

  • 2
    What do you mean by hardware? Do you mean computer hardware, electrical (non-computational) hardware, or machinery (as someone below mentioned)? Because you're getting answers to different questions. – Parthian Shot Jun 24 '15 at 0:36
  • @ParthianShot All of the above. – Madara Uchiha Jun 24 '15 at 7:12
7

The Open Source Hardware Association has a list of guidelines that should be met to call a project Open Source Hardware.

Electronics is different from source code in that circuits themselves cannot be copyrighted (can anyone suggest references on this point?) while all material around them, such as design files, can be. Things are further complicated because once you dip below the software side, it's unclear where the threshold should stop. If I run free and open source software on a chip that is closed, does that count as open? If I release the VHDL under a permissive license but the toolchain to program the chip is closed, can it really be considered open?

All these subtleties aside, the idea behind 'open sourcing hardware' is to provide all the necessary information available that would enable someone with similar means to reproduce your project. This includes:

  • Releasing the electronic design files, such as schematics and PCBs, under a free (as in libre) license (for example, CC-BY-SA, CC-BY or CC0).
  • Making the source code available (if any) under a free (as in libre) license (for example, some GPL compatible license).
  • Releasing the design files for other hardware under a free (as in libre) license (for example, CAD files for the enclosure under a CC-BY-SA, CC-BY or CC0 license).

Note that any CC-NC (non-commercial) or CC-ND (no-derivatives) license does not qualify as 'open source hardware' in this context as it restricts the freedom to redistribute, sell and alter.

  • @FreeRadical thanks, changed to 'free' instead of 'permissive'. – abetusk Jul 16 '15 at 12:38
  • For some more information about what components of a hardware project are fall under copyright or not, check out Ari Douglas's talk from the Open Hardware Summit 2014. – abetusk Jul 19 '15 at 3:15
13

You'll have to start by defining what your 'source' is.

Data-sheets are usually not restricted, but only the author contributes to it. If you make your data-sheets a shared effort, you are already well on your way. Of-course, you can expand this to all documentation.

Second would be the actual hardware. Do you want your contributors to have a say in what chips to use and how to route your lanes? What colours should be used? What should be the features of the next board? Those are all questions which could be handled in an Open Source way.

The problem with hardware relative to software is the production cost. Software can be shared without cost. Schematics and documentation can as well, but the actual product it results in always needs to be produced. Ergo, it's difficult to completely Open Source hardware projects.

But wait!

What if only the theory behind the hardware should be freely available? Well, that's where sites like Instructables come in (there are probably better examples around). Somebody states how he build something, uploads some pictures and the next person comes around. He rebuilds it, tweaks it a little, uploads some pictures, etc..

Is it doable? Yes.

Is it more difficult than open-sourcing software? Usually.

How? WIRED recently wrote an article about whether or not open source hardware can work. One of their examples is the Arduino team (do note this may turn out to be a bad example as well, since the Arduino team is currently involved in a naming conflict). The basic idea behind their approach is 'We built something, please copy this!', which doesn't happen often in the hardware business.

A quote from the article (page 2):

Sure enough, that's what happened. Within months, geeks suggested wiring changes and improvements to the programming language.

Another example from the article is the Linksys WRT54G router. It probably wasn't intended as an open source project. Since the firmware was running Linux, hackers took it upon themselves to modify it anyway. Their efforts boosted the sale of that router (and other routers in that series later).

  • If you think of software as a blue print for the end product, I think the similarities quickly appear. The difference, as you pointed out, is that software costs next to nothing to build once you have a good blue print. The cost for manufacturing a physical product will always be higher, but the design can be opened sourced in the same way the "design" of a piece of software is open sourced. – RubberDuck Aug 8 '15 at 18:32
6

If you mean computer hardware, then yes, communities exist. The problem is that writing hardware is not nearly as intuitive as writing software, debugging is a much more involved process, and writing comprehensive test suites is far more important.

Essentially, the problem is that most of the people writing open source hardware have only a software background, and treat hardware the same way, despite the fact that the hardware paradigm is fundamentally different. They can even get away with this in simulation, because HDLs generally contain constructs that would never actually work or make sense in hardware, but which are necessary for simulation.

So, while the community exists, it is smaller and less reliable. Partly because it's slightly more expensive (because to test on hardware you need an oscope, or at least a logic analyzer), and partly because, in order for it to be at all useful, it must be very thoroughly tested, and written by someone with some formal training.

Although, really, expense is not the primary issue. Because in a very real sense you don't need to actually produce hardware; you can just program an FPGA or CPLD and in the overwhelming majority of cases you don't need to actually test by fabbing an ASIC. You can get an FPGA + JTAG programmer for under $100.

In theory it could work, and in practice I'm sure there are some projects where it does work, but overall I wouldn't trust most open source hardware in stuff I write. I'd need to be sure the people writing it were actually qualified computer engineers. Because, otherwise, I might have a thing that simulates completely fine, but causes my FPGA to burst into flame as soon as it's programmed; in hardware it's not as easy as simply running untrusted code in a VM.

  • 1
    Not just computer hardware. I've seen open source hardware products in robotics, computing, batteries, mobile phones, etc. – Madara Uchiha Jun 24 '15 at 7:12
2

The concepts of Open source can be applied to other fields, with some minor modifications. Well known is creative commons adapting open source for the arts.

Open source hardware also exists. It usually involves, that the blueprints to build the hardware are available under a license that follows the ideas of open source. Actually many projects choose an open source license to distribute their designs.

Examples of open hardware include Novena, Arduino or RepRap.

2

One option would be to make it easy to manufacture the product, e.g. by supplying blueprints or AutoCAD designs/files online. With the rise of 3D printers, it's much easier for people to use readily-available designs to make hardware. It's not cheap enough for the typical person to buy a 3D printer or CNC mill, but makerspaces/hackerspaces are becoming decently prolific, and it's easier (and sometimes free) for people to join one.

1

The Verilog, VHDL or any other hw specification language code for (digital) designs can be open sourced just like any sw code.

You could publish the design as libraries for various FPGA families (in a similar manner in which the FPGA manuafacturers share sample designs/code/libraries for their evaluation boards, for example).

1

By releasing the blue prints and documents detailing the manufacturing process under a permissive license. Windowfarms is a great example of how hardware can be open sourced. Release your design & process into the wild and hope people contribute their improvements back. The philosophy is not so different from open sourcing software. It's the implementation that differs.

The hard part about open sourcing hardware is merging changes back in upstream. There's really no infrastructure for version control of blue prints, although I could potentially see leveraging existing VCS to help with that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.