PC/104 (or PC104) is an embedded computer standard controlled by the PC/104 Consortium which defines both a form factor and computer bus. PC/104 is intended for specialized embedded computing environments where applications depend on reliable data acquisition despite an often extreme environment. The form factor is often sold by COTS vendors, which benefits many consumers who want a customized rugged system without committing months of design and paperwork.
The PC/104 form factor was originally devised by Ampro in 1987 (led by CTO Rick Lehrbaum), and later standardized by the PC/104 Consortium in 1992. An IEEE standard corresponding to PC/104 was drafted as IEEE P996.1, but never ratified.
Unlike the popular ATX form factor which utilizes the PCI bus and is currently used for most PCs, the PC/104 form factor has no backplane, and instead allows modules to be stacked together like building blocks. The stacking of buses is more rugged than typical bus connections in PCs and is achieved through the use of mounting holes positioned in the corner of each module, which allow the boards to be fastened to each other using standoffs.
The standard size of boards complying to the form factor is 3.550 × 3.775 inches (90 × 96 mm), while the height is typically constrained to the boundaries of the connectors. A constrained height region is intended to guarantee that modules will not interfere with their neighbors. Vendors often follow these design restrictions to ensure proper stacking of modules, although it is not uncommon to find boards which ignore the form factor requirements.
While a typical system (also referred to as a stack) includes a motherboard, analog-to-digital converter, and digital I/O (data acquisition) module, other peripherals are finding their way into the market including GPS receivers, IEEE 802.11 controllers, and USB controllers.
The PC/104 computer bus (first released in 1992) uses 104 pins. These pins include all the normal lines used in the ISA bus, with additional ground pins added to ensure bus integrity. Signal timing and voltage levels are identical to the ISA bus, with lower current requirements. The pinouts for the PC/104 connector can be obtained here. 
The PC/104-Plus form factor adds support for the PCI bus, in addition to the ISA bus of the PC/104 standard. The name is derived from its origin: a PC/104-Plus module has a PC/104 connector (ISA) plus PCI-104 connector (PCI).
The PCI-104 form factor includes the PCI connector, but not the ISA connector, in order to increase the available board real estate. The PCI-104 standard is incompatible with PC/104 boards. The PCI-104 connector has more than 104 pins, but the established name was kept.
The pinouts for the PCI-104 connector are as follows: 
The PCI/104-Express form factor includes the x16 PCI Express (PCIe) bus, and the PCI connector. The 156-pin PCI/104-Express interface can be used with PC/104, EPIC, and EBX form factors.
EBX (Embedded Board eXpandable) is a single board computer form factor, 5.75 × 8 in (146 × 203 mm). The EBX is based on the IEEE-P996 (ISA), PC/104, PC/104-Plus, PCI and PCMCIA. EBX supports PC/104 daughter boards.
EPIC (Embedded Platform for Industrial Computing) is a single board computer form factor which, like EBX, supports PC/104 daughter boards but is smaller than EBX at 6.5 × 4.5 in (165 × 114 mm). It allows I/O connections to be implemented as either pin headers or PC-style ("real world") connectors. The standard provides specific I/O zones to implement functions such as Ethernet, serial ports, digital and analog I/O, video, wireless, and various application-specific interfaces.
EPIC Express is based on EPIC, but adds the PCI Express.
A system composed of PC/104, PC/104-Plus, or PCI-104 modules is often referred to as a "stack". Although many stacks include modules which are all the same form factor, it is not uncommon to find PC/104 modules in a stack with PC/104-Plus modules.
Each stack must contain at least one motherboard or CPU, which acts as a controller for the peripheral components. The motherboard is often referred to as a single-board computer (SBC), for it often has interfaces for all standard PC components (i.e. keyboard, mouse, serial ports, etc.). This controller must support the signaling buses used on all add-in modules. It's possible, however, that a peripheral card may perform a stand alone function without requiring a separate motherboard to control it.
There is no strict limit to the number of PC/104 cards which can coexist in one system. However, as more modules are added, the stack height increases, and signaling requirements may not be maintained. A PC/104 stack will usually have a motherboard controller which is also PC/104. Peripheral PC/104 cards can reside on either side of the CPU.
A stack which has any PC/104-Plus modules must be controlled by a PC/104-Plus motherboard controller. Not counting the PC/104-Plus controller, the number of PC/104-Plus peripheral cards in a stack may not exceed four module slices. This is due to the PCI specification, which allows four PCI components in a system. (More PCI devices may be added if a bridge device is used.) The same rule applies to PCI-104 stacks.
When the PCI bus connector is used (PC/104-Plus or PCI-104 modules), all peripheral PC/104-Plus modules must connect consecutively on one side of the controller due to the signaling requirements of the PCI bus. Each card with a PCI bus should include a mechanism to assign its position in reference to the controller. Note that this is not required for traditional backplane motherboards, because a card "knows" which slot it is in. A PC/104-Plus or PCI-104 system may also have PC/104 cards, which may be positioned on either side of the CPU farthest away from the PC/104-Plus card(s) (so the PCI bus is not broken).
These small and rugged PC/104 systems often require small non volatile storage devices. Popular storage devices include Compact Flash as well as solid state disk (SSD) devices. These are often more popular than mechanical (rotating) hard drives, which are larger, and are more susceptible to failure in harsh environments. Flash based storage has a more limited amount of writes compared to a mechanical hard drive, but consume less power.
|Form Factor||Release Year||Bus Communication||Current[update] Version|
|PC/104||1992||ISA (AT and XT)||2.6|
|PC/104-Plus||1997||ISA and PCI||2.3|
|PCI/104-Express||2008||PCI and PCIe||1.1|
|Wikimedia Commons has media related to PC/104.|
- "Why PC/104? The Need for an Embedded-PC Standard". Retrieved 2008-01-29.
- Himpe, Vincent (2006). Visual Basic for Electronics Engineering Applications (2nd ed.). India: Segment B.V. / Elektor Electronics. p. 407. ISBN 0-905705-68-8. Retrieved 2008-01-29.
- "PC/104 Embedded Consortium's History". Retrieved 2008-01-29.
- Angel, Jonathan (2010-02-01). "Open standard defines tiny expansion modules". eWeek Linux for Devices. Retrieved 2010-02-08.
- "PC/104 Bus Pinout". Retrieved 2008-10-14.
- "PCI/104 Bus Pinout". Retrieved 2008-10-14.