What is 'Open Source Hardware'? I'm not wild about the whole of this definition. If you have any suggestions about how it could be improved (polite ones, anyway!) mail graham@opencollector.org and maybe I'll incorporate them ;-)

How can Hardware be `open'?

Open-ness in hardware terms can have a whole range of meanings. In all the cases listed below, some hardware is open and some is not - but the trend is for open-ness to become more and more limited, restricting the freedom of designers to create or implement their own designs, and even of programmers to write the programs they wish. Truly open hardware would have to satisfy all the requirements below:

Information on using the hardware must be available.

It sounds crazy that people could sell hardware and not tell you how to use it, but it is actually a growing trend. If a company sells any device which interfaces to a computer without publishing the interface specs, they then have a monopoly on interface software (or can sell the monopoly to a software company). WinModems and WinPrinters - which also cannot be supported by Linux - are a related problem. This aspect of open-ness in hardware is so closely linked with work on free software that the FSF, Debian, and FreeBSD are all among the sponsors for the Open Hardware Certification program which

... is a self-certification program for hardware manufacturers. By certifying a hardware device as Open, the manufacturer makes a set of promises about the availability of documentation for programming the device-driver interface of a specific hardware device.... sufficient documentation for the device must be available for a competent systems programmer to write a device-driver.
[Note that the term Open Hardware (with capitals) is a trademark of this project]

The design of the hardware must be available.

Designs can be free in exactly the same senses as software can be free.

If the design is published others can learn from it, improve on it, or even second-source the same device. Much digital hardware has never been open in this sense, creating a whole industry of reverse-engineering and patent claims and counter claims. But there have been exceptions; most notably, the SPARC architecture. Here the lessons from open-source software as a tool for companies with a minority market share have been successfully imported to hardware.

Although many designs have always been patented, there is also a long traditional of engineers borrowing and improving on designs that just 'float around'. Many of these can be found in various places on the Internet, but few of them have been gpl-ed or otherwise protected as `free' designs. The attempt to create IP design libraries which are available only for sale will tend to destroy this tradition (one such IP company is already `giving' away the Strasburg library as a free offer ...).

Design software for hardware must be available.

For many devices this has never been a problem -- until recently. For the old 74 series logic devices, enough information was always made available for people to be able to create free design tools. Processor manufacturers have always published their processor Instruction Set Architectures, so it has always been possible to write free compilers. Now it seems that even this may change - the ISA for the Philips Trimedia Processor is not available (it is a compressed VLIW and they consider the compression algorithm a trade secret).

But for other types of hardware, information about the underlying technologies is a commercial secret so that only the companies which own these secrets can create libraries or even efficient design tools which use them. This applies both to some types of VLSI design and to programmable logic: in the days of the first PALs, internal structure and programming details were widely published in order to expand the market. Now no manufacturer publishes the bit-stream format for programming FPGAs (the one exception, the Xilinx XC6200, now seems to have been dropped). As a result, the only design software available for these devices has been commercial software, and it has not been possible to create free software to make up for some of the deficiencies in these tools.


To fully qualify as 'open hardware':
  1. The interface to the hardware must be explicitly made public, so the hardware can be used freely.
  2. The design of the hardware must be made public, so that others can implement it and learn from it.
  3. The tools used to create the design should be free, so that others can develop and improve the design.
© Graham Seaman 1998