Free Software and Free Hardware Designs

A very large number of people now accept Richard Stallman's arguments about the social benefits of free software. I am claiming that these arguments also apply to hardware design.
Richard Stallman's classic article Why Software Should be Free is built around three key themes concerning the harm caused by restrictions on copying, changing, and building on software:
Three different levels of material harm come from such obstruction: 

       Fewer people use the program. 

       None of the users can adapt or fix the program. 

       Other developers cannot learn from the program, or base new work on it. 
These three themes apply equally, though in different ways, to hardware and hardware designs.

1. Fewer people use the hardware or hardware design

Stallman's argument for software is based on the vanishing cost of reproducing software: basically it says that if fewer people can afford the software, fewer will use it.
The cost argument strictly applies to software in its executable form. It also applies in theory to designs for FPGAs or CPLDs, but in practice the relevance is small in this case since few people have programmable logic boards. It does not apply to physical hardware - yet. However, it may well apply to hardware in the future, since a proportion of hardware costs are development costs, and reducing these by increased use of shared designs should reduce overall costs.
Yet the argument still applies on other grounds than cost. The market for some types of computer hardware is limited by the fact that it cannot be used with free software, since the interface definitions are kept secret. This is the purpose of the Open Hardware Certification Program. However, this program has limitations: In addition to the direct limitation in number of users that with-holding of design information is starting to cause, there is also a more indirect effect based on the availability of the design rather than the physical hardware. If design information is made available, then it is possible for other manufacturers to second-source the design. Where hardware is not second-sourced it is less likely to be used. This fact has long been recognised by hardware manufacturers. Long before Sun's current use of their 'community source license' for the SPARC, the SPARC specifications were made available for second-sourcing by other manufacturers. This is one of the few weapons available to manufacturers in a situation of near-monopoly. Without it, a manufacturer who dominates the market, even with an inferior product, is likely to move towards a situation of full monopoly.

2. None of the users can adapt or fix the hardware or hardware design

Clearly not all physical hardware is adaptable or fixable. A manufactured IC, for example, cannot normally have its functions altered, and certainly cannot be repaired when broken. Yet this argument is still of major importance, and applies both to board-level designs and to easily implemented hardware of other types.
`Fixing hardware' is something that was once extremely common. Nowadays, broken hardware is commonly simply thrown away. The social and environmental costs of this are huge. Some reasons why modern hardware is not repaired are related to technological change: it is almost impossible to desolder fine-pitch surface mount designs, or repair multi-layer boards. But another reason is simple lack of information about devices. If it once again became normal for proper circuit diagrams of boards to be made available, so that even a small proportion of faults could be fixed, the savings (financial, social, and ecological) could be huge. With free hardware designs, even greater changes could become possible: `design for test' is a common feature of closed-source hardware design; `design for repairability' could become a common feature of free hardware design.

Being able to fix hardware is a general social need. `Adapting hardware' is something that only electronics engineers or hobbyists are likely to want to do, but is still important. A typical example is the repeated complaint on electronics newsgroups that a device programmer cannot be made to work with a new version of device, not because it is physically incapable of doing so, but because there is not enough information available to adapt the programmer (where in this case 'adapting' would mean altering the firmware).

More important is the ability to adapt designs. In current practice, a hardware design belongs to the company which created it and is known by no-one outside the company (excluding the reverse-engineering industry - itself an example of the waste of energy created by the proprietary design system). Improvements to the design can therefore only be made by people within the company (in the extreme case, if the company folds the design dies with it). Free software has shown that it is possible for software to evolve steadily over the years as amendments, improvements, and bug fixes are made available from a very large range of contributors. There is no reason why the same should not be true for hardware designs. Without it, we have had phenomena like the acceptance of video players with user interfaces so unfriendly they became a joke for years.

3. Other developers cannot learn from the design, or base new work on it

It is in this area that there are the closest parallels with software, and rms' words can be repeated almost verbatim:
Restraints on the use of existing designs tend to prevent the accumulation of knowledge that comes from building on previous designers work, making it necessary to start from scratch when developing a design. They also prevent new practitioners from studying existing designs to learn useful techniques or even how large designs can be structured - apart, of course, from those within companies who have a history of their own designs to build on, or the equipment and time to reverse-engineer the work of others.

The same restraints also obstruct education. As time has gone by, students are still likely to be familiar with and taught the use of 74 series logic devices - dating from the 1970s, and documented in the excellent Texas databooks. Many students are excellent at carrying out the small designs possible with these devices (designs completely untypical of the majority of contemporary practice). They may also be familiar with the implementation of small designs for FPGAs or ICs. They are far less likely (except in the very largest universities with commercial connections) to be familiar with the inner workings of any of the more recent devices they may actually use in their daily life - even for engineering students, these have largely become `black boxes'.
The result is a tendency to exaggerate a split between teaching and the real life use of technology, and a consequent steady decrease in interest in electronics among students. On those occasions when students are able to work on `real-life' designs, it will be subject to commercial backing and so to NDAs and all the general restraints on disclosure of information which was once central to the function of universities.

Outside the area of education, the fact that it is not legally possible to base new designs on those created by others creates huge amounts of wasted and unnecessary effort. It has also become increasingly impractical as the time-to-market for new designs shortens. The result has been the attempt to create a market in hardware `IP' decoupled from the market in physical hardware, a growth in fabless design houses, and in semiconductor fabs not tied to any one design company. But the growth of this market has been very slow, since all the participants want to make sure no-one gets their `IP' for free. Problems such as: how to encrypt or otherwise 'lock down' of IP (since no-one fully trusts the legal system); quality (since no-one knows how to guarantee that the 'IP' which has not yet been shown is of a reasonable standard); and mergeability of cores from different suppliers (since there are many different proprietary standards involved), have all made the creation of a genuine IP market difficult.
This is an area where free hardware designs can flourish: no requirement for encryption; quality can be assessed freely; and just as free software has been shown to be an excellent driver for the spreading standards, so free hardware design can be expected to do the same in this field. And above all, once designs are no longer 'closed' the rate of development and improvement can be expected to increase, as some of the energy currently put into developing similar designs from scratch in many companies at once is transferred to developing completely new designs and improving commonly available ones.

Conclusions

All three of Richard Stallman's original justifications for free software apply, in different forms, to free hardware design. The argument that in spite of this free hardware design is impossible for cost reasons is based on the cost of reproducing physical hardware, not on the cost of reproducing designs, and so is not directly relevant. In spite of differing over this point, the FSF is still broadly sympathetic to the development of free hardware designs. Creators of free hardware designs should return the sympathy: free software and free hardware design should stand together; they have the same roots.

© Graham Seaman 1999