Gaia: The Open Source Hardware Platform

Although PCs (and Macs) are commonplace, for commercial reasons the technological make-up of the hardware and software changes frequently. Software, both operating systems and applications, is bloated, overloaded with features, and frequently crashes. In many parts of the world, where power supplies are unreliable, technical support scarce, and money short, this creates severe problems. The wealthy repeatedly buy new, but rarely stable hardware and software, and the poor make-do with difficult to maintain cast-offs where they can. Linux is no solution, running on expensive and difficult to maintain hardware, and being no picnic to use or maintain. OOP languages and the complexity of systems have all but killed-off the writing of useful programs by end-users.

This is an attempt to change that and to produce an open-source hardware platform for computing that is powerful enough to accomplish serious tasks and robust enough to survive a difficult environment, requiring no licensing payment to Microsoft, Intel, Apple, or anyone else. Any manufacturer, anywhere in the world can produce the hardware to publicly available schematics, download and install the firmware, and sell the machines at a modest price. The machines would also be designed to be capable of being built from common parts by hobbyists.

Ideally this would operate as an X-Prize, although there is no prize money up for grabs here, just the chance to make a difference, and bridge the digital divide.

Design criteria are given below to get you started. It is important to remember that the goal is for an easy to construct machine that uses off-the-shelf parts likely to remain available for something like the next ten years. Year-on-year speed bumps are not relevant.

1. The processor should be a widely available 16-bit CPU. This offers the best compromise between power, price, and availability.

2. Excluding the case, PSU, keyboard, and PCB, all parts must be available off the shelf, not be of a surface mount nature, and cost in total less than 100 [about US$200]. Chips should be DIL where possible. The PCB should be single layer, and the layout tidy. This is to make assembly of the main board as easy as possible in some of the more far-flung parts of the world.

3. The keyboard should be a standard PS/2 PC keyboard, whether separate from the main base-unit or built on to it like the Amiga 1200 and many 1980s micros. The unit should also have a mouse port and accomodate a PS/2 PC mouse.

4. The machine should directly access and be supplied with 4Mb RAM on board as a minimum, within the budgetary requirements. A range of standard SIMM and DIMM sockets should be included for memory expansion of which only one need be used, the hardware coping with a range of memory for expansion purposes without conflicts or timing issues. Data held in the RAM must not be lost when the machine is turned off. [The goal here is not speed, but the ability to utilise any memory available to the user and to survive in an environment where power fluctuations are a frequent occurence.] The firmware should be capable of handling up to 1Gb RAM.

5. The ROM must contain an open source BASIC interpreter (with syntax checking on line entry), an assembler, and a disassembler (think Apple II, BBC Micro). A flexible Disk Filing System should also be included. A GUI would (initially) be optional. The ROM should be Flash upgradeable like a PC's BIOS, with a physical switch to protect it.

6. The OS architecture must be modular to permit easy adaptation and development of firmware. The memory map should be well thought out to ensure expansion without backward compatibility issues.

Note, the use of BASIC is intended to offer the opportunity for end-users to write their own programs in a non-OOP environment. However rudimentary BASIC has traditionally been, this would be an extensible BASIC for the Internet age, with the addition of BASIC commands using new ROM-based routines. An example may be:

400 CONNECT PORT#1 ISP=a$,DIAL=number,[pin]=[password$],[un]=[user$]

...which would make a connection to your ISP, the square brackets indicating the use of encrypted variables.

BASIC can be extended as far as we want it to be, with the addition of new commands and new ROM routines. The use of assembler offsets the speed limitations of a 16-bit processor. Well written assembler in a ROM routine on a 16-bit processor should be able to hold its own against a Java applet running in a browser, on MS Windows.

If the platform is taken up by the global coding community, one might expect the development of a GUI, and other high-level programming languages to appear on it. Given the power of Contiki on 8-bit systems, a 16-bit system should certainly be able to handle internet access and web browsing.

7. EEPROMs and microcontrollers (as peripheral controllers for example) are acceptable. PALs, GALs, FPGAs, SID chips and other exotica are not.

8. The PSU should be an external unit. This permits a standard unit to operate globally using localised PSU bricks.

9. The machine should have no internal fan and still run silent and cool.

10. Video output should be flexible (SCART and VGA). Only one output would be required within the initial budget constraints, although space should be left on the board for both, and both should be designed. Both text and hi-res colour graphics would be required. The OS should support Unicode characters, whilst having an ASCII file 'mode'. VRAM should be separate. Audio I/O is also required.

11. Serial and parallel ports are required as they are simple to use and work with much existing hardware. USB would be a welcome option (particularly for the use of flash drives). If USB is not included, space should be left on the base board for a USB chipset and port, and the firmware and hardware should be pre-designed to accomodate such expansion.

12. A general purpose external expansion port should be included.

13. Standard off-the-shelf drive interfaces (ATAPI, IDE, FDD) may be included as optional extras, although the machine must work without them. The use of a flash drive or smart card memory device would be helpful (via USB) as these are solid state and more suited to difficult environments. The emphasis is not on the latest protocol, but on the ability to use what is out there in large numbers and at low cost (floppy disk drives, hard disks from 40Mb to 40Gb, CD-ROM drives). Solid state memory (with no moving parts) is preferable as all drives are less robust and more power-hungry than their silicon equivalents.

14. Ethernet should be included as standard, although this is not a thin client or a network computer.

15. Cartridge ports and internal sockets should permit ROM and RAM expansion, internally and externally. Thus, with an additional internal ROM, the machine can become a dedicated system.

17. File compatibility, initially with .txt, .jpg, and .htm files, would be an important issue, where legal circumstances permit. It should be possible to handle OSHP application and data files retrieved from the internet via a PC or Mac.

The fundamental requirements have been designed to ensure that it is possible for the machine to be programmed by those with a knowledge of the easiest programming language (BASIC) and used without any disk drives being attached in a location with a poor power supply. The OSHP would be easy to construct and easy to fix. Other programming languages, GUIs, and additional 3rd party hardware, software, and firmware additions will no doubt follow if the reference design proves to be popular. Any hardware, firmware, or software added to the machine should be open source, and fully documented. A flexible and properly documented design should permit trouble-free additions to the BASIC interpreter, DFS, and ROM routines. Every aspect of the design should be modular, to ensure that the fundamentals remain current for about 10 years. The constant upgrading of hardware creates considerable amounts of toxic waste and is market-led. The OSHP should offer an alternative.

As well as offering developing countries a solid, reliable, low cost, low power, and easy to produce machine, the reference platform would be helpful when used in schools globally, as an educational tool for training a new generation of programmers and engineers. Very few developed countries can put a 700 PC on a pupil's desk and let them take a soldering iron to it.

Often, the better designs fail in the marketplace (ie. the RISC OS). By creating an Open Source reference design, we may be able to cheat the market. It looks at first glance like a 1980s micro, but it would be powerful enough to send and receive e-mail, browse the web, or run a Works package, as well as run custom applications produced by users worldwide. We have become dangerously addicted to high-wattage systems that crash too often, and cost too much. We should not have to replace our bloated software every year to ensure that security patches work.

I am suggesting that we actually learn from the last quarter century of computing development, instead of ploughing on blindly to produce a faster machine that is even less stable than the one that it succeeds.

Additional Comments.

- 'Open Source' is used here merely to denote the free availability of both source code and circuit schematics. The project would have its own license rather than using the GPL, to cater for the unique nature of the project. The hardware reference design should be a minimum standard, boards could be produced by any individual, group, or company, and may be sold at cost or for a profit. The source code of all Gaia-based software must be freely available, although software on a convenient medium such as a flash-memory device, or with a manual could be sold (retaining a market for software as a viable product). If software is linked to a service then the service may be charged for, but the source code must still be freely available. The intention is not to hamper the penetration of the design in the market place through the use of restrictions that might put software producers off, but to reduce the use of wasteful and unsustainable practices (activation and other security techniques limit the long term usage of software). A free for non-commercial use license is a good idea. Writing software should not be the province of comfortably-off westerners with spare time to devote to charitably-minded programming. As with any craft, programmers deserve some return from the application of their skills. A modest charge for the use of their software in a commercial environment should permit the free use of software by private individuals. Be aware that this is a global platform, and that a commercial operation in the developed world will have a different technology budget to one in the developing world: remember to stagger your fees for commercial usage accordingly. Wherever you might be able to produce software without charge, we would encourage it. It benefits all of us. The core Gaia firmware will be free for all to use. Some firmware cannot be supplied without charge on any platform (MP3 encoding software springs to mind). There is usually an alternative. In those rare cases where core technologies still require licensing fees, we would enourage their owners to alter their licenses for this platform, as such software cannot otherwise be included in the core firmware.

- There are already open source initiatives out there. Linux appears to now be primarily directed as a PC OS up against Windows, running on an expensive, over-complex, and polluting platform. Although built upon the best of intentions, Linux is at best the methadone to society's PC addiction. The problem is the PC. What use is free software, if it runs on expensive hardware?

- The need for coherence is great. A re-run of Betamax v. VHS, multiple CD/DVD standards, and the vast array of Linux distros would be unhelpful, as such splits cause confusion for users. A single Gaia design and firmware core is vital to promote the platform. Consequently the license under which the Gaia OSHP is here established incorporates the holding of copyright in the name for the platform. This is solely to ensure that 4 competing platforms don't pop up across the internet all called 'Gaia'. Anyone can, of course, produce their own OSHP called something other than Gaia. Given the open source nature of the project, any appearance of the word copyright needs to be explained.

- Aside from the issues of the basic cost of PC hardware and the foreign-market dependency of owned designs sold as consumer products, one of the greatest barriers to global digital equality may be the way technology is produced in the west: as a continuously upgraded/fashion-based commodity. The life cycle of a product is often very short ('planned obsolesence'), and when obsolete it becomes very hard for users to obtain support. Exporting large numbers of old PCs as a 'charitable act', when it is really little more than a cheap way to dispose of toxic waste is no solution. The PC platform is environmentally unsustainable and a clear example of the developed world's addiction to wasteful consumerism and unsustainable consumption.

- Most hardware alternatives to the PC have failed as commercial ventures. But here we are not a company selling a product. We manufacture no machines. We have no warehouses for stock, require no marketing budget, and employ no call centre staff to answer support hotlines. Production of Gaia-based hardware is distributed. If you want one, you make it, or you buy one locally from someone else who makes it. We will be the source of hardware schematics, and maintainers of the core firmware (much as the Linux kernel is maintained). We do not have to sell a certain number of units to survive as we do not sell anything. Gaia OSHP will be a not-for-profit organisation.

- Gaia does not deprive the developing-world of PCs by offering them a second-rate computing platform. These machines will access the web, send and receive e-mail, and will do everything most people (in the developing- or the developed-world) need a computer to do. We know this because we in the west used similarly specced machine a few years ago. They can also act as client machines in GRID systems, and as nodes in file-sharing-based distributed processing. This is a better machine than a Wintel (or Linux) PC. Easier for the user, better for the environment, and considerably cheaper. The path chosen for PC development in the consumer society is unsustainable, fraught with bugs and viruses, and overly complicated. Gaia is a better platform, based upon needs rather than wants.

- For computing that is not dependent upon your processor power or bandwidth, see Active Distributed Network Computing.

- For an example of the importance of stripping feature-bloat from GUI design, see the browser screen display outlined in the WebPuter and Generic 'Puter design brief.

Gaia OSHP Copyright 2004.

Back to Stig's Dump.