3 Open Source Hardware
popularity : 36%
Wikipedia defines "open source hardware" as follows:
Open source hardware refers to computer and electronic hardware that is designed in the same fashion as free and open-source software.
- The interface to the hardware must be explicitly made public, so the hardware can be used freely.
- The design of the hardware must be made public, so that others can implement it and learn from it.
- The tools used to create the design should be free, so that others can develop and improve the design.
The first point above means that full information about how to use a device which interfaces to a computer should be made available. The manufacturer should publish the interface specifications, which indicate how to program the device-driver interface, so that any competent systems programmer can write a driver for the device. Otherwise the company which sells the device retains a monopoly on interface software.
The second point means that the design of the hardware should be published so that others can learn from it, improve on it, or even manufacture the same device. The design of much digital hardware is kept secret, creating a whole industry of reverse-engineering and patent claims. Making the design public can be a strategy for companies with a minority market share, in the same way that open-source software is used as a marketing strategy. Thus hardware designs can be free in the same way that software can be free.
The third point means that design software for the hardware should be available. For most types of hardware, information about the underlying technologies is a commercial secret. As a result, the only design software available for these devices has been commercial software, and it is impossible to create free software to make up for some of the deficiencies in these tools. An exception is logic devices: processor manufacturers have always published their processor Instruction Set Architectures, so it has always been possible to write free compilers.
History of Open Source Hardware: Early Hardware Hackers
Graham Seaman gives an outline of the history of open source hardware in an article on the Open Collector website.
The key person in the early development of open hardware (before the term even existed) was Lee Felsenstein, an electronic engineer who in the early 1970s was maintaining the first community bulletin board system in the San Francisco area. Felsenstein had read Ivan Illich’s “Tools for Conviviality,” and was trying to apply the abstract ideas set out in that book to the concrete problems of maintaining the community bulletin board system. Felsenstein’s insight was that the hardware for the system, such as modems and terminals, should be designed, built and maintained collectively, creating pools of people in each community who understood every detail of the systems they were running. To create “tools for conviviality” the whole design process for computers should become a convivial process in itself. Felsenstein’s first attempts towards this goal were to design the “Pennywhistle modem” and the “Tom Swift Computer Terminal,” for which he distributed the schematics as widely as he could. Felsenstein went on to play a central role in the development of the personal computer (see the article on Lee Felsenstein on this website).
Felsenstein was also a founding member of the Homebrew Computer Club, which brought together many future personal computer designers including the creators of the Apple computer. The Homebrew Computer Club, which formed following the appearance of the Altair, the first rudimentary personal computer, encouraged open, cooperative sharing and discussion of computer design.
The initial home computer industry was thus a loose collection of small manufacturing companies and hobbyist groups built on a culture of openness. When the old computer companies woke up to the potential market in home computer, it was too late for them to impose closed systems. As Felsenstein explained in a 1984 interview:
In 1978 IBM put its foot over the line and said `that’s mine’ with the 5100, a bread-box size wonder of incompatibility that epitomized the IBM way. They don’t like to talk about what happened to them. In 1981 they returned with the 5150 (the PC), and with it they followed the rules we had laid out. Anyone can play, these rules read, but you must make your architecture and executive code as public as possible, and you must encourage individuals to write programs and create add-ons. You can play games, but you must help others to play as well.
This first generation of hardware hackers developed designs based on the first commercial microprocessor chips. (A microprocessor is a central processing unit on a single integrated circuit.) These early microprocessors were well documented, in that the instruction set architecture (ISA), which at that time was invariably hard-wired, was made available, for example in the form of instruction set cards. Chip designs were not hugely complex logically, and the computer designs themselves were largely drawn by hand.
History of Open Source Hardware: the Multi-Project Chip
By the late 1970s, however, the size and complexity of chips was becoming enormous. The "Large-Scale Integration" (LSI) of the mid 1970s, with tens of thousands of transistors per chip, evolved into "Very Large-Scale Integration" (VLSI) in the early 1980s, with single chips holding hundreds of thousands of transistors. Chip design began to require vast knowledge which went beyond the capacity of any single person. One technical response to this complexity was to automate the process of physical design of the chip. By the mid-70s, developers began to use Electronic Design Automation (EDA) to design and lay out chips, and the first placement and routing (place and route) tools were developed. Another technical response was to separate the design of logical architecture from the physical design of the chip, by writing microcode to implement machine instructions, rather than directly designing the circuitry to do so. The microcode is stored, in a part of the CPU’s control unit called the “control store,” in either ROM or writable RAM.
These technical developments were advocated in "Introduction to VLSI Systems" by Carver Mead and Lynn Conway, a groundbreaking textbook published in 1980, which helped schools educate more designers. However, the increasing complexity was such that it also required a social response, in addition to the technical ones. The social response was the Multi-Project Chip (MPC), first organized for the MIT 1978 VLSI System Design Course, as described in Lynne Conway’s paper The MPC Adventures.
The MPC approach integrates onto a single microchip block several different integrated circuit designs from various teams. For delivery to a particular team the MPC is configured to provide only their circuit. This allows several design teams to share the extremely high cost of fabricating integrated circuit prototypes in very low quantities.
The MPC approach requires the existence of a computer network (initially the ARPANET) and transparent co-operation between large numbers of participants. The design software needs to be free to encourage the spread of the method. Mead and Conway’s original software, which was simply for layout, appeared before Stallman’s Free Software Movement and the creation of the GPL. Its descendant Chipmunk, which is still used for teaching and research, is now under the GPL. As the MPC method spread worldwide, it created a flowering of university-developed design automation software, including Magic for layout, SIS and Espresso for logic minimization, Ocean for sea-of-gates designs, Olympus for synthesis, all of which were naturally created under free licenses.
As noted by Graham Seaman, the MPC approach is also an example of what Eric Raymond would years later call “the bazaar,” as described in Raymond’s book “The Cathedral and the Bazaar.” A bazaar-style community involves large numbers of people who are both designers and users of a software system, who debug it in parallel, and who let standards evolve from common usage.
History of Open Source Hardware: Open Design Circuits
However, by the early 90s universities began to switch from the development of free software (which could nonetheless be used commercially) to the development of software under contract to the EDA companies, or even set up their own companies to commercialize their own EDA products. EDA software thus became closed source.
At the same time, the technology changes made it increasingly difficult to produce circuit designs. Those who sought to perpetuate the openness of the earlier period were reduced to merely updating the designs of the early 80s. Certain individuals nonetheless carried on work with their own designs or with developing EDA software. Then in the mid 90s technological and social changes once again drove a new interest in free hardware design. The technical changes included the development of the field-programmable gate array (FPGA), which is a microprocessor that can be reprogrammed by the user. The social changes included the flowering of the free software community.
In March 1998, Reinoud Lamberts of the University of Delft, on his site “Open Design Circuits,” was the first to propose creating a hardware design community in the spirit of free software. In his initial announcement, Lamberts stated:
Open Design Circuits are the chip design counterparts of Open Source Software, with designs (sources) openly shared among developers and users. The open-design circuit approach outlined here captures the true advantages of open-source software, and applies them to hardware. It avoids the large initial investments usually needed for hardware development, and it allows for the rapid design sharing, testing, and user feedback which are key to open-source software success.
The development process was to be based on open internet development and use of FPGAs to allow the exchange of free designs electronically. (More information on the initial Open Design Circuits website is given under the heading "Free Design History" on the Open Collector site.)
The community which grew up around the Reinoud Lamberts site for the first time involved large numbers of people in discussions about the practical development of open chip design. The community was divided over the question of whether free designs needed free software (which however did not exist at that time) or could use commercial freeware. No actual designs were created in the site itself, and the site is now defunct. However, it provoked a rapid growth in free hardware design.
The ever-growing scale of integrated circuits lead to larger FPGAs and to the system-on-a chip (SOC). These developments created a need for libraries of designs at least in part independent of their physical realization. Attempts to create commercial libraries of such designs in the 90s were largely failures (one commercial site that still exists is Design and Reuse). The first established free site for these designs was Free-IP (this site seems to be defunct). The group with the largest number of participants is currently OpenCores, a loose community grouped around the OpenCores website.
Current trends in open-source hardware: FPGAs
A field-programmable gate array (FPGA) is a semiconductor device containing logic blocks (which may also include memory elements or more complete memory blocks) and programmable interconnects. Within the FPGA the hierarchy of programmable interconnects allows logic blocks to be interconnected to implement any logical function, as needed by the system designer, after the FPGA is manufactured - hence the name "field-programmable."
The widespread use of field-programmable gate arrays (FPGAs) allows implementation of complex designs even without access to factories. The FPGA can be loaded with different designs at will. There is no need to make a new board for each use, and designing, testing and debugging of circuits is thus much closer to software development.
The first stage in a long-term strategy for open source hardware would be to develop a set of simple and generic FPGA-based prototyping boards that could be used to test and implement simple open-source IP cores (see below). Open-source Electronic Design Automation (EDA) development tools would also be used, and the hardware designers would provide feedback to developers of the open-source EDA tools. The communication between FPGA-based board designers, open IP core designers, and open EDA developers would improve the whole development process of open source-hardware and could lead to the next phase, in which growing demand for open-source FPGA prototyping boards would encourage vendors to produce larger volumes at lower prices. The vendors could also produce open-source device programming tools in order to enlarge their market base. An open-source hardware user could then download open designs from Internet and implement them on prototyping boards.
Current trends in open-source hardware: IP cores
The stated goal of OpenCores is to produce a full library of SOC components, and to have this manufactured. The library will include design elements from processors, memory controllers, peripherals, motherboards, and other components.
OpenCores puts emphasis on Intellectual Property Cores, commonly called IP cores. An IP core is a reusable unit of chip layout design which is the intellectual property of one party. The intellectual property rights in the design, including the patent and the source code copyright, may be licensed to another party.
An IP core may be offered as:
- a generic gate netlist, which is representation of the IP’s logical-function, thereby protecting the vendor against reverse-engineering, while maintaining portability to different chip-making foundries
- a synthesizable version of the IP cores, which is delivered in a hardware description language such as Verilog or VHDL, permitting customer modification at the functional level
- analog IP and some digital IP cores requiring a lower-level, physical description are distributed in transistor-layout format
Netlists and synthesizable cores are called “soft cores.” Transistor-layout formats are called “hard cores” because the core’s function cannot be modified by the customer, and cannot be easily ported to a different foundry process.
The OpenCores group seems to be oriented towards implementation of synthesizable cores, since they specifically mention cores implemented in the hardware description languages Verilog, VHDL or SystemC, which may be synthesized to either silicon or grid arrays.
The IP core can be described as being for chip design what a software library is for computer programming.
IP cores may be used as building blocks within design of:
- an Application-Specific Integrated Circuit (ASIC), which is an integrated circuit customized for a particular use, such as to run a cell phone
- a Field-Programmable Gate Array (FPGA), which is a microprocessor that can be reprogrammed by the user
Flextronics have announced they may finance production of the first ASIC based on OpenCores designs.
For interconnections within the chips, the OpenCores project aims at using a common non-proprietary system bus named Wishbone, to which most components can be adapted. Silicore Corporation have made the Wishbone bus design public domain, and OpenCores have begun to enhance it, hoping it will emerge as the standard.
Current trends in open-source hardware: embedded systems
The expansion of the market for embedded systems opens up new possibilities for a multitude of small, handheld computer systems on a scale that hobbyists can build.
An embedded system can be a small, cheap device with a novel application. There exist a number of embedded boards, such as the Lart, which was originally designed for radio applications, and which runs Debian Linux on a StrongArm CPU. The MorphyOne is a Japanese palmtop based on an uncommitted Complex Programmable Logic Device (CPLD), which is a device having at most tens of thousands of logic gates, thus less complex than an FPGA. The programmable CPLD allows users to design their own additional interfaces.
The Sourceforge “OpenH323 Project“ provides Open Source implementation of the ITU H323 teleconferencing protocol, which can be used by embedded systems hardware designers without charge.
Current trends in open-source hardware: developing countries
With the expansion of the internet to cover the world, free hardware design includes participants in Japan (Morphy), Indonesia (many OpenCores participants), India (Simputer), Egypt and South Africa (OpenH). At the same time, the imposition of Intellectual Property laws on developing countries pushes them into developing convivial technologies as an alternative strategy, as shown by the Bangalore Declaration on Information Technology for Developing Countries.
The first product to be mass-produced will be the Indian Simputer, which will also be used in Africa. The Simputer is not a Personal Computer in the conventional sense, since the Win-tel architecture is unsuitable for deployment in the low-cost mass-market of any developing country. The Simputer is targeted as a shared computing device for a local community of users, which will be given out to individuals for a specific period of time and then passed on to others in the community. With this application in mind, the Simputer is based on personalization through the use of smart cards.