Open Hardware Suitable for More and More Computing Projects
The term "open hardware" came into use several years after open source software. The first comprehensive and principled defense of free software, so far as I know, was the GNU Manifesto of 1983. In contrast, the term “open hardware” became popular with the first release of the Arduino in 2005, and the first RISC-V chip came even later in 2011. Projects labeled “free software” or “open hardware” just apply names to recognize a tradition of sharing that goes all the way back to the beginning of computer software, and far back in hardware as well. This article covers some historical details about open hardware and why so many people are rushing to use it.
The article is part of a monthly series on the LPI blog to celebrate the anniversaries of several key open source projects, by exploring different angles and directions of the broad open source movement.
Why Use Open Hardware
A useful definition of open hardware comes from the Open Source Hardware Association (OSHWA). The definition parallels definitions of open source software and open culture: freedom to make and distribute derived works, etc.
An article in EET Asia lays out some garden-variety reasons for using open hardware. People who have investigated free and open source software will recognize these considerations:
- Open hardware is standard, with transparency in the definition of the hardware so that you can trust every conforming product to work as you expect.
- You avoid vendor lock-in, which has always brought the risk of technical changes you don't want, abrupt cost increases or licensing changes, and the ultimate threat of losing access to the source of the hardware altogether.
- Open hardware is provided without legal encumberments.
But why is open hardware popular now? Perhaps it is because developers are moving more and more functions from software to hardware. Network routing and encryption used to be done by the operating system or utilities; now they are often done inside a physical processor. The same shift is happening in machine learning. Essentially, modern applications need more computing and faster response times than earlier generations of applications. And sophisticated hardware is being developed to meet these needs. Developers want the guarantees given by open hardware, in order to place their confidence in the hardware.
More and more programmers, both professional and amateur, also want to design their own hardware. The rewards of writing a program that spits out a result to the screen pale before the excitement of creating a device that can protect your doors, water your garden, or fly a drone. Developers seek cheap devices with the guarantees that open hardware brings.
Personal Computers Were Precedents
Although no one was using the term "open hardware" in the 1970s, this was essentially what the famous Homebrew Computer Club was fashioning. With no thoughts of trade secrets or other intellectual property, members of that club exchanged plans for all types of hardware. Their idealism emerged at the beginning of an era when individuals could afford to have a computer. You wouldn't get many takers if you shared the diagrams for a machine that costs a hundred thousand dollars. But if anybody could implement your design for ten bucks, sharing becomes meaningful. According to Jon "maddog" Hall, a long-time promoter of Linux and open source who reviewed this article, the historic Altair and COSMAC ELF were both open designs.
The personal computer era provides another example of open hardware—a surprising one, because it came from the most buttoned-down of companies, IBM. When they released the PC that quickly took over a new market for such computers, they adopted an open architecture that allowed competitors to produce clones. A PCMag UK article suggests that IBM took this bold path because they realized they couldn't produce everything users wanted in a PC, and that an open architecture would create an aftermarket of peripherals and software. Nowadays, we talk of this principle as providing a "platform" that third parties can build on.
Current Open Hardware Started as Research Projects
It's understandable that the two main contemporary projects highlighted in this article—the Arduino and the RISC-V processor—were released by researchers. The inventors of Wiring, the predecessor of Arduino, were designers seeking a tool to use in their design projects. RISC-V was the culmination of years of work by electrical engineers, first at U.C. Berkeley and then other research institutions, whose motivations and rewards were not tied to how many units they could sell. U.C. Berkeley is the source of many important contributions to computing, not restricted to the Berkeley Software Distribution (BSD) that included crucial Unix advances and networking software. Like other good open projects, the Arduino and RISC-V have spread far beyond their original creators.
Arduino and DIY boards
Originally popular for prototyping, education, and amateur scratch-your-own-itch projects, the Arduino has made its way into many commercial products. Programmer/hardware hacker Brian Jepson,in his review of this article, highlights one of the Arduino's strengths as a typical advantage offered by open hardware: because so many boards are based on the Arduino spec, developers can use the same code and libraries across a variety of form factors (board sizes) and chip sizes (8-bit versus 32-bit). Arduino provides a low-cost and flexible environment where programmers can quickly create programs in congenial languages like Python with ample libraries full of useful functions, and run the programs on bare metal. Support is available for other languages with followings among embedded programmers, such as Lua and Forth.
Commercial products are often also based on two other popular, low-cost boards: the BeagleBone (which is open hardware) and the Raspberry Pi (which is not open hardware). The chief reasons for the popularity of these two boards include:
- They have been designed with a variety of ports and communication devices that are useful for their target market.
- They offer a rich set of applications and libraries, taking advantage of GNU/Linux and all the software written for it or ported to it.
- Developers can control devices through popular languages such as Python and Lua, as well the more high-performance C++.
The concept of "openness" has to be considered in layers. For instance, a painting by Rembrandt is in the public domain, but if you want to grab a photo of that picture off the web, you have to check the photographer's rights. Similarly, you can run proprietary software on a free operating system, and vice versa. In the case of the BeagleBone, the board itself is open hardware but the embedded processor is not.
RISC-V is a major open hardware project at the chip level. As the project points out, RISC-V is itself just a standard, which can be used for both proprietary and open implementations. Karim Yaghmour, an open source software and embedded system developer who has spent a decade researching open hardware and RISC-V, told me that some of the more popular open processors based on RISC-V are the PULP platform from Die ETH Zürich, Rocket Chip, a chip from the U.C. Berkeley team that originally released the RISC-V design, picorv32 by Claire Wolf, the author of the Yosys RTL synthesis tool, and VexRiscv by Charles Papon, the author of the SpinalHDL hardware design language.
The idea of a Reduced Instruction Set Computer (RISC), goes back to the 1980s. It was appealing because common processors of the time were competing for market share by adding more and more complex instructions, ultimately reducing performance and raising costs. RISC was invented as an audacious rejection of this trend. RISC moved more work into the compiler and kept the instruction set as simple as possible. Theory validated the RISC approach: it meant smaller and faster chips that required less power and were easier to test. Yet decades passed while various designs struggled to establish themselves.
One of the earliest RISC vendors was MIPS, which provided chips to Silicon Graphics, a company that blazed briefly before collapsing. Silicon Graphics was rich enough to build an enormous three-building campus in the heart of Silicon Valley, now the Googleplex. At various times, Digital Equipment's Alpha, Sun Microsystems’ SPARC, and now IBM's POWER chips have played important roles in the computer industry, including data centers of their era. The design of the SPARC was eventually made open.
Although early RISC systems had only niche success, their concepts gradually became mainstream. Many innovations of early RISC designers made their way into complex chips such as Intel.
Digital’s Alpha played an important role in the evolution of Linux, as explained by maddog. He was working for Digital when they developed the Alpha chip, and urged Linus Torvalds to port Linux to the chip, which required deep changes to the code so that it could support both the original 32-bit Intel architecture for which Torvalds wrote it and the 64-bit Alpha. Given support by Digital and by maddog, once Torvalds generalized the design of the kernel to support both chips, porting it to other architectures became much easier.
Other RISC designs come and go, but the RISC-V design is here to stay. It has become particularly important in India, gathering both government funding and significant adoption in both research and industry. Proponents expect RISC-V to carry the RISC concept to great heights, taking over computer environments ranging from the Internet of Things to data centers.
The BeagleV brings together the two main strands of this article: it is an open hardware board based on a RISC-V chip from SiFive.
In addition to the open “base” specification, the RISC-V project has a mechanism for defining extensions for things such as bit manipulation and single instruction, multiple data (SIMD) parallel processing, so developers can work separately on projects that will make the open standard good for new needs and opportunities.
Open Manufacturing and Tooling
Just as developers should be able to trust the compiler and libraries when building their programs, chip designers would like to trust their manufacturers. In software, open source compilers and libraries provide the trust. According to maddog, the process of manufacturing can become more transparent by opening the Process Design Kit (PDK) used by the manufacturer. A step toward open PDK was taken by Google, which asked its chip supplier, SkyWater, to publish an open PDK.
Several benefits accrue from open PDKs:
- They make it hard for a manufacturer to slip in an error or malicious backdoor. The chip designer can compare their design to the sheet produced by the manufacturer to demonstrate what they're doing and verify that they match.
- Users who are cut off from supplies (see the following section for an example) can more easily ramp up manufacturing locally.
- New facilities can get up to speed much faster by learning from the PDKs of advanced manufacturers.
And with a current global shortage of computer chips, any new manufacturing capacity would be appreciated.
Tools for producing masks to give manufacturers for chip production also need to evolve, according to Yaghmour. He cited the SkyWater-based OpenLane as a step toward open source tooling. Yaghmour looks forward to increased innovation in chip design that open source tooling might facilitate. The speed of software development has accelerated over the decades, since you no longer have to submit a deck of punch cards and wait till the next day for results--you can compile and run a program in minutes. But taking a chip from design to manufacturing still takes years, and open source tooling may greatly reduce the cycles and help with optimization of the designs.
Some Open Hardware Projects to Keep on your Radar
- A library to make any Arduino radio-based device behave like a Yaesu FT-857D to allow full computer control of it
- Another library to control a Yaesu FT-817 radio from an Arduino device
- A tool for RF control and analysis
- A lightweight and RF-optimized library to control a popular DIY PLL solution
Milanes, in an email exchange for this article, told me that Arduinos and related shields and components cannot be bought easily in Cuba, and that hackers can obtain them only through a high-priced black market or through foreign purchases with uncertain shipping methods. In addition, he had no access to Yaesu radios, so his code was based entirely on manufacturers' data sheets, but was validated by other radio amateurs who own those radios.
Now Milanes is one of the developers on the Chirp project, a unified software system to control and program many radios from different vendors with just one app.
More Types of Open Hardware
One area where open hardware has long been popular is 3D printers. Some 3D printers can even print other 3D printers, bringing the Singularity closer to fruition. And if you want real open hardware, you can 3D-print all kinds of tools, such as hammers, clamp extensions, and more dangerous items.
The Open Source Hardware Association certifies open projects and supports efforts toward open hardware. There is also an Open-Source FPGA Foundation bringing the open hardware movement to this important facet of hardware design.
Thus, open hardware has made the journey taken by so many good ideas: first a practice without a name, then an ideal marked by scattered implementations, and now an established organization with certifications. Like software, hardware has become a complex environment where proprietary offerings overlap with open source and benefit from it.