Do we need Open Source Hardware?

A recent article at Linux.Com asks a question of whether we need an Open Source Hardware License (OSHL). It wonders if current Open Source Software (OSS) licenses might suffice. There is also an issue raised on whether we actually need Open Source Hardware (OSH) at all. Coming from that particular source, I find it weird that they would even think such things, much less voicing it like that.

There is no doubt that OSS licenses have proven good for software. However, hardware is quite another issue. The article says that most hardware designs are software anyway. VHDL and Verilog are examples of hardware design languages that are semantically similar to software programming languages. This though, points out a big difference between the software and hardware people. There is a slight lack of understanding of hardware by the software people.

Hardware can certainly be designed in VHDL and Verilog. However, that’s only one way of representing hardware. Hardware can also be designed in schematics. Now, you may wonder who still designs stuff in schematics. In this age of multi-million gate designs, how could anyone still design stuff in schematics. The answer is, the hardware people still do. This is done everyday by people working on analogue and mixed-signal designs. There is currently no way of describing analogue designs in a “language” such as VHDL or Verilog. Although both of these languages feature analogue extensions, these extensions are currently only suitable for simulation and not synthesis. Analogue design is still very much an art form. So, a lot of work is still done in drawings. So, such works could by extension, be conveyed under copyright law. That is rightly so, but the OSS licenses aren’t necessarily applicable to drawings.

Derivative works are another issue altogether. In OSS licenses, they usually mention terms for binary or compiled versions of the code. But for hardware, it isn’t exactly compiled into binary form. Some may argue that synthesis is akin to a compilation process. That is true, as synthesis does convert design descriptions into a hardware representation. However, it’s neither binaries nor compiled. It’s called “synthesis”. The OSS license leaves things like that ambiguous and arguable. If it mentions “synthesised” specifically, then there will be less questions on compiled versions of code. So, a OSHL is absolutely necessary if we wish to see better proliferation and uptake of hardware designs.

Then, the whole question on whether we actually need OSH at all, is just silly. Coming from a platform that advocates open source, I cannot imagine such a silly question being asked. They raise a question on whether or not people can hack hardware like they do software. Since not many people can afford to play with hardware (even with FPGA) and fewer still can afford tape-out runs, the article wonders who the license would actually benefit. The answer was given straight by one of the comments, everyone. If hardware was open sourced, there would be very little problem writing OSS drivers for it. There would no longer be a need for reverse engineering to write Linux drivers. The people can just look at the hardware source and write the drivers directly.

We haven’t even gone into the whole idea of community hardware development. Complex pieces of hardware like modern microprocessors have lots of bugs in them. Wouldn’t it be nice if there were many eye-balls looking at the design code to help fix it? I have always thought felt that greater transparency in everything is a good thing for everyone. Let’s stop all these secrets.

Published by

Shawn Tan

Chip Doctor, Chartered Engineer, Entrepreneur, Law Graduate.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s