The goal of the Programmers Hardware Database is to provide software developers with a comprehensive source of information on any kind of hardware that is related to their software projects. It is meant to be an encyclopedia of devices such as PC hardware or consumer electronics, their CPUs, connectors, protocols and any information that is useful in making them work with free and open source software.
Nowadays many electronic devices, including consumer electronics and scientific hardware, are in fact embedded computing devices. It is often possible to put new software onto these devices, provided either by the hardware vendors or by creative hobby programmers, in order to extend or modify the possible applications for these devices. This often allows re-using old hardware for completely new purposes, thus increasing hardware lifetimes and reducing costs, resource consumption and waste production. Re-programming existing hardware usually requires a thorough knowledge of hardware internals. Sometimes the necessary information is provided by hardware vendors, but for older devices, especially those that are out of production or out of service, it is rather hard to obtain any information, except from some hobbyists' sites spread across the web. The idea of the Programmers Hardware Database is to centrally collect this information, providing links to hardware vendors' documentation or hobbyists' sites whenever available. Based on the Wiki principle that anyone may contribute and edit contents, the Programmers Hardware Database would further provide a platform where hobbyist programmers can present their own hardware / software projects without running their own websites. In addition, programmers of open source operating systems and hardware drivers for these systems would highly profit from a comprehensive database containing information on PC hardware and peripherals, as well as non-PC platforms for their software. Providing a comprehensive directory for hardware information would thus ease various fields of open source software development.
The primary audience is constituted by the developers of free and open source software, with a special focus on:
- operating systems,
- hardware drivers,
- embedded applications,
and related software. A secondary audience is constituted by hardware developers aiming to construct their own hardware from components listed in the Programmers Hardware Database.
Project description and goals
The goal of the Programmers Hardware Database is to provide software developers with a comprehensive source of information on any kind of hardware that is related to their software projects. The key concept of the Programmers Hardware Database is the Wiki principle which allows anyone to contribute and edit the contents of the database. It is meant to be an encyclopedia of devices such as:
- PC hardware: graphics cards, network interface cards, sound cards, mainboard chipsets, notebooks, handheld computers...
- peripheral hardware: printers, scanners, network routers, card readers...
- consumer electronics: set-top-boxes, video recorders, GPS devices, digital picture frames, phones, ebook readers, media players...
- scientific devices: oscilloscopes, sensors, data acquisition hardware, function generators...
- development systems: evaluation boards, embedded programming systems...
Most of these devices are either intended to be used in combination with computing hardware, or are based on embedded computing hardware, and are therefore particularly interesting for software developers. In particular, the aim of the Programmers Hardware Database is to address questions such as:
- Which devices are out there?
- Which components (CPU, memory, other ICs) do they use?
- Which protocols do they use to communicate with other hardware?
- Which software do they use natively / can be run?
- Can they be used with free / open source software?
- Where can one find information necessary for software development (documentation of hardware registers and so on), data sheets etc.?
- Which software has been ported so far and where is it available?
As a comprehensive encyclopedia it should contain links to further documentation, such as datasheets and specifications, on topics such as:
- CPUs, microcontrollers, embedded processors, instruction set architectures...
- buses, connectors, communication protocols...
Much of this information is already available on the web, either provided by hardware vendors or researchers / driver developers from the open source community, or simply by hobbyists who enjoy disassembling devices. However, there is no central resource which puts together these lots of information in a comprehensive fashion. Hence, it is the primary goal of the Programmers Hardware Database to centrally collect this information, and to bring together software and hardware developers from different areas to easily and freely exchange their knowledge.