Open-source hardware ( OSH , OSHW ) consists of physical artifacts of technology designed and offered by the open-design movement . Both free and open-source software (FOSS) and open-source hardware are created by this open-source culture movement and apply a like concept to a variety of components. It is sometimes, thus, referred to as FOSH (free and open-source hardware). The term usually means that information about the hardware is easily discerned so that others can make it – coupling it closely to the maker movement . Hardware design (i.e. mechanical drawings, schematics , bills of material , PCB layout data, HDL source code and integrated circuit layout data), in addition to the software that drives the hardware, are all released under free/ libre terms. The original sharer gains feedback and potentially improvements on the design from the FOSH community. There is now significant evidence that such sharing can drive a high return on investment for the scientific community.
64-418: The Open Graphics Project ( OGP ) was founded with the goal to design an open-source hardware / open architecture and standard for graphics cards , primarily targeting free software / open-source operating systems. The project created a reprogrammable development and prototyping board and had aimed to eventually produce a full-featured and competitive end-user graphics card. The project's first product
128-618: A message-based protocol for communicating with their devices—as user-mode drivers. If such drivers malfunction, they do not cause system instability. The Kernel-Mode Driver Framework (KMDF) model continues to allow development of kernel-mode device drivers, but attempts to provide standard implementations of functions that are known to cause problems, including cancellation of I/O operations, power management, and plug and play device support. Apple has an open-source framework for developing drivers on macOS , called I/O Kit. In Linux environments, programmers can build device drivers as parts of
192-674: A copyright license may control the distribution of the source code or design documents, a patent license may control the use and manufacturing of the physical device built from the design documents. This distinction is explicitly mentioned in the preamble of the TAPR Open Hardware License : "... those who benefit from an OHL design may not bring lawsuits claiming that design infringes their patents or other intellectual property." Noteworthy licenses include: The Open Source Hardware Association recommends seven licenses which follow their open-source hardware definition . From
256-549: A free and open 3D graphics chip set and reference graphics card, Timothy Miller suggested the creation of an organization to safeguard the interests of the Open Graphics Project community. Thus, Patrick McNamara founded the Open Hardware Foundation (OHF) in 2007. The Tucson Amateur Packet Radio Corporation (TAPR), founded in 1982 as a non-profit organization of amateur radio operators with
320-487: A high-level application for interacting with a serial port may simply have two functions for "send data" and "receive data". At a lower level, a device driver implementing these functions would communicate to the particular serial port controller installed on a user's computer. The commands needed to control a 16550 UART are much different from the commands needed to control an FTDI serial port converter, but each hardware-specific device driver abstracts these details into
384-471: A hub of activity due to the emergence of several major open-source hardware projects and companies, such as OpenCores , RepRap ( 3D printing ), Arduino , Adafruit , SparkFun , and Open Source Ecology . In 2007, Perens reactivated the openhardware.org website, but it's currently (August 2023) inactive. Following the Open Graphics Project , an effort to design, implement, and manufacture
448-405: A larger range of product categories such as machine tools, vehicles and medical equipment. In that sense, hardware refers to any form of tangible product, be it electronic hardware, mechanical hardware, textile or even construction hardware. The Open Source Hardware (OSHW) Definition 1.0 defines hardware as "tangible artifacts — machines, devices, or other physical things". Electronics is one of
512-585: A particularly active area for open source ideas to move between them. Examples of open-source hardware products can also be found to a lesser extent in construction (Wikihouse), textile (Kit Zéro Kilomètres), and firearms ( 3D printed firearm , Defense Distributed ). Rather than creating a new license, some open-source hardware projects use existing, free and open-source software licenses. These licenses may not accord well with patent law . Later, several new licenses were proposed, designed to address issues specific to hardware design. In these licenses, many of
576-586: A proprietary license, and the Balloon Project wrote their own license. The adjective "open-source" not only refers to a specific set of freedoms applying to a product, but also generally presupposes that the product is the object or the result of a "process that relies on the contributions of geographically dispersed developers via the Internet ." In practice however, in both fields of open-source hardware and open-source software, products may either be
640-955: A scientific journal HardwareX . It has featured many examples of applications of open-source hardware for scientific purposes. Further, Vasilis Kostakis [ et ] et al have argued that open-source hardware may promote values of equity, diversity and sustainability. Open-source hardware initiative transcend traditional dichotomies of global-local, urban-rural, and developed-developing contexts. They may leverage cultural differences, environmental conditions, and local needs/resources, while embracing hyper-connectivity, to foster sustainability and collaboration rather than conflict. However, open-source hardware does face some challenges and contradictions. It must navigate tensions between inclusiveness, standardization, and functionality. Additionally, while open-source hardware may reduce pressure on natural resources and local populations, it still relies on energy- and material-intensive infrastructures, such as
704-707: A specific open-source electronic component such as the Arduino electronics prototyping platform. There are many examples of specialty open-source electronics such as low-cost voltage and current GMAW open-source 3-D printer monitor and a robotics-assisted mass spectrometry assay platform. Open-source electronics finds various uses, including automation of chemical procedures. Open Standard chip designs are now common. OpenRISC (2000 - LGPL / GPL), OpenSparc (2005 - GPLv2), and RISC-V (2010 - Open Standard, free to implement for non-commercial purposes), are examples of free to use instruction set architecture . OpenCores
SECTION 10
#1732780539320768-437: A target for exploits . Bring Your Own Vulnerable Driver (BYOVD) uses signed, old drivers that contain flaws that allow hackers to insert malicious code into the kernel. Drivers that may be vulnerable include those for WiFi and Bluetooth, gaming/graphics drivers, and drivers for printers. There is a lack of effective kernel vulnerability detection tools, especially for closed-source OSes such as Microsoft Windows where
832-430: Is a large library of standard chip design subcomponents which can be combined into larger designs. Complete open source software stacks and shuttle fabrication services are now available which can take OSH chip designs from hardware description languages to masks and ASIC fabrication on maker-scale budgets. Purely mechanical OSH designs include mechanical components, machine tools, and vehicles. Open Source Ecology
896-757: Is a large project which seeks to develop a complete ecosystem of mechanical tools and components which aim to be able to replicate themselves. Open-source vehicles have also been developed including bicycles like XYZ Space Frame Vehicles and cars such as the Tabby OSVehicle. Most OSH systems combine elements of electronics and mechanics to form mechatronics systems. A large range of open-source mechatronic products have been developed, including machine tools, musical instruments, and medical equipment. Examples of open-source machine tools include 3D printers such as RepRap , Prusa , and Ultimaker , 3D printer filament extruders such as polystruder XR PRO as well as
960-538: Is accepted as of 2016 by dozens of organizations and companies. In July 2011, CERN ( European Organization for Nuclear Research ) released an open-source hardware license, CERN OHL . Javier Serrano, an engineer at CERN's Beams Department and the founder of the Open Hardware Repository, explained: "By sharing designs openly, CERN expects to improve the quality of designs through peer review and to guarantee their users – including commercial companies –
1024-530: Is an essential factor facilitating product replication and collaboration in hardware development projects. Practical guides have been developed to help practitioners to do so. Another option is to design products so they are easy to replicate, as exemplified in the concept of open-source appropriate technology . The process of developing open-source hardware in a community-based setting is alternatively called open design , open source development or open source product development . All these terms are examples of
1088-426: Is an ethical imperative for open-source hardware – specifically with respect to open-source appropriate technology for sustainable development . In 2014, he also wrote the book Open-Source Lab: How to Build Your Own Hardware and Reduce Research Costs , which details the development of free and open-source hardware primarily for scientists and university faculty . Pearce in partnership with Elsevier introduced
1152-563: Is important that the hardware manufacturer provide information on how the device communicates. Although this information can instead be learned by reverse engineering , this is much more difficult with hardware than it is with software. Microsoft has attempted to reduce system instability due to poorly written device drivers by creating a new framework for driver development, called Windows Driver Frameworks (WDF). This includes User-Mode Driver Framework (UMDF) that encourages development of certain types of drivers—primarily those that implement
1216-407: Is improved stability, since a poorly written user-mode device driver cannot crash the system by overwriting kernel memory. Because of the diversity of modern hardware and operating systems, drivers operate in many different environments. Drivers may interface with: Common levels of abstraction for device drivers include: So choosing and installing the correct device drivers for given hardware
1280-740: Is not enough to merely use an open-source license ; an open source product or project will follow open source principles, such as modular design and community collaboration. Since the rise of reconfigurable programmable logic devices , sharing of logic designs has been a form of open-source hardware. Instead of the schematics, hardware description language (HDL) code is shared. HDL descriptions are commonly used to set up system-on-a-chip systems either in field-programmable gate arrays (FPGA) or directly in application-specific integrated circuit (ASIC) designs. HDL modules, when distributed, are called semiconductor intellectual property cores , also known as IP cores. Open-source hardware also helps alleviate
1344-568: Is now known as open-source hardware). In a 2015 article in Wired Magazine, he modified this attitude; he acknowledged the importance of free hardware, but still saw no ethical parallel with free software. Also, Stallman prefers the term free hardware design over open source hardware , a request which is consistent with his earlier rejection of the term open source software (see also Alternative terms for free software ). Other authors, such as Professor Joshua Pearce have argued there
SECTION 20
#17327805393201408-472: Is often a key component of computer system configuration. Virtual device drivers represent a particular variant of device drivers. They are used to emulate a hardware device, particularly in virtualization environments, for example when a DOS program is run on a Microsoft Windows computer or when a guest operating system is run on, for example, a Xen host. Instead of enabling the guest operating system to dialog with hardware, virtual device drivers take
1472-563: Is passively cooled, and follows the DDC , EDID , DPMS and VBE VESA standards. TV-out is also planned. Versioning schema for OGD1 will go like this: {Root Number} – {Video Memory}{Video Output Interfaces}{Special Options e.g.: A1 OGA firmware installed} Main components of OGD1 graphics card (shown on the picture) The OGP project failed to gain the necessary funding to produce an ASIC version of its card. The project appears to have been discontinued in 2011. Open-source hardware It
1536-508: Is that they can be loaded only when necessary and then unloaded, thus saving kernel memory. Depending on the operating system, device drivers may be permitted to run at various different privilege levels . The choice of which level of privilege the drivers are in is largely decided by the type of kernel an operating system uses. An operating system which uses a monolithic kernel , such as the Linux kernel , will typically run device drivers with
1600-825: Is the scientific community. There has been considerable work to produce open-source hardware for scientific hardware using a combination of open-source electronics and 3-D printing . Other sources of open-source hardware production are vendors of chips and other electronic components sponsoring contests with the provision that the participants and winners must share their designs. Circuit Cellar magazine organizes some of these contests. A guide has been published ( Open-Source Lab (book) by Joshua Pearce ) on using open-source electronics and 3D printing to make open-source labs . Today, scientists are creating many such labs. Examples include: Open hardware companies are experimenting with business models . For example, littleBits implements open-source business models by making available
1664-400: Is via protection rings . On many systems, such as those with x86 and ARM processors, switching between rings imposes a performance penalty, a factor that operating system developers and embedded software engineers consider when creating drivers for devices which are preferred to be run with low latency, such as network interface cards . The primary benefit of running a driver in user mode
1728-614: The Four Freedoms . The term hardware in open-source hardware has been historically used in opposition to the term software of open-source software. That is, to refer to the electronic hardware on which the software runs (see previous section). However, as more and more non-electronic hardware products are made open source (for example WikiHouse , OpenBeam or Hovalin), this term tends to be used back in its broader sense of "physical product". The field of open-source hardware has been shown to go beyond electronic hardware and to cover
1792-1004: The Open Source Definition , co-founder of the Open Source Initiative , and a ham radio operator . He launched the Open Hardware Certification Program, which had the goal of allowing hardware manufacturers to self-certify their products as open. Shortly after the launch of the Open Hardware Certification Program, David Freeman announced the Open Hardware Specification Project (OHSpec), another attempt at licensing hardware components whose interfaces are available publicly and of creating an entirely new computing platform as an alternative to proprietary computing systems. In early 1999, Sepehr Kiani, Ryan Vallance and Samir Nayfeh joined efforts to apply
1856-612: The PCI bus or USB is identified by two IDs which consist of two bytes each. The vendor ID identifies the vendor of the device. The device ID identifies a specific device from that manufacturer/vendor. A PCI device has often an ID pair for the main chip of the device, and also a subsystem ID pair that identifies the vendor, which may be different from the chip manufacturer. Computers often have many diverse and customized device drivers running in their operating system (OS) kernel which often contain various bugs and vulnerabilities , making them
1920-405: The interrupt handling required for any necessary asynchronous time-dependent hardware interface. The main purpose of device drivers is to provide abstraction by acting as a translator between a hardware device and the applications or operating systems that use it. Programmers can write higher-level application code independently of whatever specific hardware the end-user is using. For example,
1984-529: The kernel , separately as loadable modules , or as user-mode drivers (for certain types of devices where kernel interfaces exist, such as for USB devices). Makedev includes a list of the devices in Linux, including ttyS (terminal), lp ( parallel port ), hd (disk), loop, and sound (these include mixer , sequencer , dsp , and audio). Microsoft Windows .sys files and Linux .ko files can contain loadable device drivers. The advantage of loadable device drivers
Open Graphics Project - Misplaced Pages Continue
2048-475: The open-source model applicable for the development of any product, including software, hardware, cultural and educational. Does open design and open-source hardware design process involves new design practices, or raises requirements for new tools? is the question of openness really key in OSH?. See here for a delineation of these terms. A major contributor to the production of open-source hardware product designs
2112-442: The photovoltaic industry has experimented with partnerships, franchises, secondary supplier and completely open-source models. Recently, many open-source hardware projects have been funded via crowdfunding on platforms such as Indiegogo , Kickstarter , or Crowd Supply . Richard Stallman , the founder of the free software movement, was in 1999 skeptical on the idea and relevance of free hardware (his terminology for what
2176-802: The Internet. Despite these complexities, Kostakis et al argue, the open-source hardware framework can serve as a catalyst for connecting and unifying diverse local initiatives under radical narratives, thus inspiring genuine change. OSH has grown as an academic field through the two journals Journal of Open Hardware (JOH) and HardwareX . These journals compete to publish the best OSH designs, and each define their own requirements for what constitutes acceptable quality of design documents, including specific requirements for build instructions, bill of materials, CAD files, and licences. These requirements are often used by other OSH projects to define how to do an OSH release. These journals also publish papers contributing to
2240-962: The OSHW Definition and the concerted efforts of those involved with it. Openhardware.org, led by Bruce Perens, promotes and identifies practices that meet all the combined requirements of the Open Source Hardware Definition, the Open Source Definition, and the Four Freedoms of the Free Software Foundation Since 2014 openhardware.org is not online and seems to have ceased activity. The Open Source Hardware Association (OSHWA) at oshwa.org acts as hub of open-source hardware activity of all genres, while cooperating with other entities such as TAPR, CERN, and OSI. The OSHWA
2304-647: The TAPR Open Hardware License, Creative Commons BY-SA 3.0 and GPL 3.0 license. Organizations tend to rally around a shared license. For example, OpenCores prefers the LGPL or a Modified BSD License , FreeCores insists on the GPL , Open Hardware Foundation promotes " copyleft or other permissive licenses", the Open Graphics Project uses a variety of licenses, including the MIT license , GPL , and
2368-555: The circuit designs in each electronics module, in accordance with the CERN Open Hardware License Version 1.2. Another example is Arduino , which registered its name as a trademark ; others may manufacture products from Arduino designs but cannot call the products Arduino products. There are many applicable business models for implementing some open-source hardware even in traditional firms. For example, to accelerate development and technical innovation,
2432-462: The debate about how OSH should be defined and used. Device driver In the context of an operating system , a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton . A driver provides a software interface to hardware devices, enabling operating systems and other computer programs to access hardware functions without needing to know precise details about
2496-681: The design of their hardware. Moreover, it was traditionally considered in the hardware manufacturer 's interest to guarantee that their clients can use their hardware in an optimal way. Typically, the Logical Device Driver (LDD) is written by the operating system vendor, while the Physical Device Driver (PDD) is implemented by the device vendor. However, in recent years, non-vendors have written numerous device drivers for proprietary devices, mainly for use with free and open source operating systems . In such cases, it
2560-490: The early to mid 2000s, FreeIO was a focus of free/open hardware designs released under the GNU General Public License . The FreeIO project advocated the concept of Free Hardware and proposed four freedoms that such hardware provided to users, based on the similar freedoms provided by free software licenses. The designs gained some notoriety due to Martin's naming scheme in which each free hardware project
2624-618: The first prototypes. Full specifications will be published and open-source device drivers will be released. All RTL will be released. Source code to the device drivers and BIOS will be released under the MIT and BSD licenses . The RTL (in Verilog ) used for the FPGA and the RTL used for the ASIC are planned to be released under the GNU General Public License (GPL). It has 256 MiB of DDR RAM,
Open Graphics Project - Misplaced Pages Continue
2688-455: The freedom to study, modify and manufacture them, leading to better hardware and less duplication of efforts". While initially drafted to address CERN-specific concerns, such as tracing the impact of the organization's research, in its current form it can be used by anyone developing open-source hardware. Following the 2011 Open Hardware Summit, and after heated debates on licenses and what constitutes open-source hardware, Bruce Perens abandoned
2752-534: The fundamental principles expressed in open-source software (OSS) licenses have been "ported" to their counterpart hardware projects. New hardware licenses are often explained as the "hardware equivalent" of a well-known OSS license, such as the GPL , LGPL , or BSD license . Despite superficial similarities to software licenses , most hardware licenses are fundamentally different: by nature, they typically rely more heavily on patent law than on copyright law, as many hardware designs are not copyrightable. Whereas
2816-624: The general copyleft licenses the GNU General Public License (GPL) and Creative Commons Attribution-ShareAlike license, from the hardware-specific copyleft licenses the CERN Open Hardware License (OHL) and TAPR Open Hardware License (OHL) and from the permissive licenses the FreeBSD license , the MIT license , and the Creative Commons Attribution license. Openhardware.org recommended in 2012
2880-630: The goals of supporting R&D efforts in the area of amateur digital communications, created in 2007 the first open hardware license, the TAPR Open Hardware License . The OSI president Eric S. Raymond expressed some concerns about certain aspects of the OHL and decided to not review the license. Around 2010 in context of the Freedom Defined project, the Open Hardware Definition was created as collaborative work of many and
2944-461: The hardware being used. A driver communicates with the device through the computer bus or communications subsystem to which the hardware connects. When a calling program invokes a routine in the driver, the driver issues commands to the device (drives it). Once the device sends data back to the driver, the driver may invoke routines in the original calling program. Drivers are hardware dependent and operating-system-specific. They usually provide
3008-481: The hardware itself as well as the information on communication protocols that the software (usually in the form of device drivers ) must use in order to communicate with the hardware (often called register documentation, or open documentation for hardware ), whereas open-source-friendly proprietary hardware would only include the latter without including the former. The first hardware-focused " open source " activities were started around 1997 by Bruce Perens , creator of
3072-654: The idea of zero cost and the freedom to use and modify information. While open-source hardware faces challenges in minimizing cost and reducing financial risks for individual project developers, some community members have proposed models to address these needs Given this, there are initiatives to develop sustainable community funding mechanisms, such as the Open Source Hardware Central Bank. Extensive discussion has taken place on ways to make open-source hardware as accessible as open-source software . Providing clear and detailed product documentation
3136-425: The issue of proprietary device drivers for the free and open-source software community, however, it is not a pre-requisite for it, and should not be confused with the concept of open documentation for proprietary hardware, which is already sufficient for writing FLOSS device drivers and complete operating systems. The difference between the two concepts is that OSH includes both the instructions on how to replicate
3200-429: The laser cutter Lasersaur . Examples of open source medical equipment include open-source ventilators , the echostethoscope echOpen, and a wide range of prosthetic hands listed in the review study by Ten Kate et.al. (e.g. OpenBionics' Prosthetic Hands). Open source robotics combines open source hardware mechatronics with open source AI and control software. Due to the mixture of hardware and software it serves as
3264-475: The most popular types of open-source hardware. PCB based designs can be published similarly to software as CAD files, which users can send directly to PCB fabrication companies and receive a build from them in the mail. Or users can obtain components and solder them together themselves. There are many companies that provide large varieties of open-source electronics such as Sparkfun , Adafruit , and Seeed. In addition, there are NPOs and companies that provide
SECTION 50
#17327805393203328-488: The open-source philosophy to machine design applications. Together they established the Open Design Foundation (ODF) as a non-profit corporation and set out to develop an Open Design Definition. However, most of these activities faded out after a few years. A "Free Hardware" organization, known as FreeIO, was started in the late 1990s by Diehl Martin, who also launched a FreeIO website in early 2000. In
3392-446: The opposite role and emulates a piece of hardware, so that the guest operating system and its drivers running inside a virtual machine can have the illusion of accessing real hardware. Attempts by the guest operating system to access the hardware are routed to the virtual device driver in the host operating system as e.g., function calls . The virtual device driver can also send simulated processor-level events like interrupts into
3456-442: The project, ensure continuity in a context of fickle participation of voluntary project members, among others. One of the major differences between developing open-source software and developing open-source hardware is that hardware results in tangible outputs, which cost money to prototype and manufacture. As a result, the phrase "free as in speech, not as in beer", more-formally known as gratis versus libre , distinguishes between
3520-410: The rest of the system. Even drivers executing in user mode can crash a system if the device is erroneously programmed . These factors make it more difficult and dangerous to diagnose problems. The task of writing drivers thus usually falls to software engineers or computer engineers who work for hardware-development companies. This is because they have better information than most outsiders about
3584-461: The result of a development process performed by a closed team in a private setting or by a community in a public environment, the first case being more frequent than the second which is more challenging. Establishing a community-based product development process faces several challenges such as: to find appropriate product data management tools, document not only the product but also the development process itself, accepting losing ubiquitous control over
3648-499: The same (or similar) software interface. Writing a device driver requires an in-depth understanding of how the hardware and the software works for a given platform function. Because drivers require low-level access to hardware functions in order to operate, drivers typically operate in a highly privileged environment and can cause system operational issues if something goes wrong. In contrast, most user-level software on modern operating systems can be stopped without greatly affecting
3712-509: The same privilege as all other kernel objects. By contrast, a system designed around microkernel , such as Minix , will place drivers as processes independent from the kernel but that use it for essential input-output functionalities and to pass messages between user programs and each other. On Windows NT , a system with a hybrid kernel , it is common for device drivers to run in either kernel-mode or user-mode . The most common mechanism for segregating memory into various privilege levels
3776-452: The source code of the device drivers is mostly not public (open source) and drivers often have many privileges. A group of security researchers considers the lack of isolation as one of the main factors undermining kernel security , and published an isolation framework to protect operating system kernels, primarily the monolithic Linux kernel whose drivers they say get ~80,000 commits per year. An important consideration in
3840-451: The virtual machine. Virtual devices may also operate in a non-virtualized environment. For example, a virtual network adapter is used with a virtual private network , while a virtual disk device is used with iSCSI . A good example for virtual device drivers can be Daemon Tools . There are several variants of virtual device drivers, such as VxDs , VLMs , and VDDs. Solaris descriptions of commonly used device drivers: A device on
3904-458: Was a PCI graphics card dubbed OGD1, which used a field-programmable gate array (FPGA) chip. Although the card did not have the same level of performance or functionality as graphics cards on the market at the time, it was intended to be useful as a tool for prototyping the project's first application-specific integrated circuit (ASIC) board, as well as for other professionals needing programmable graphics cards or FPGA-based prototyping boards. It
SECTION 60
#17327805393203968-471: Was also hoped that this prototype would attract enough interest to gain some profit and attract investors for the next card, since it was expected to cost around US$ 2,000,000 to start the production of a specialized ASIC design. PCI Express and/or Mini-PCI variations were planned to follow. The OGD1 began shipping in September 2010, some six years after the project began and 3 years after the appearance of
4032-800: Was established as an organization in June 2012 in Delaware and filed for tax exemption status in July 2013. After some debates about trademark interferences with the OSI, in 2012 the OSHWA and the OSI signed a co-existence agreement. The FOSSi Foundation is founded in 2015 as a UK -based non-profit to promote and protect the open source silicon chip movement, roughly a year after the official release of RISC-V architecture. The Free Software Foundation has suggested an alternative "free hardware" definition derived from
4096-410: Was given the name of a breakfast food such as Donut, Flapjack, Toast, etc. Martin's projects attracted a variety of hardware and software developers as well as other volunteers. Development of new open hardware designs at FreeIO ended in 2007 when Martin died of pancreatic cancer but the existing designs remain available from the organization's website. By the mid 2000s open-source hardware again became
#319680