Embedded Open Modular Architecture
With recent embedded processors becoming mainstream and powerful enough for general-purpose computing, the Embedded Open Modular Architecture is an initiative to create robust, reliable and interoperable hardware standards for mass-volume systems based around embedded processors, where average users can interchange modules, even several times a day, without risk of damage or requiring a technician to assist them.
The first initiative is to re-use the PCMCIA form-factor, in a similar way to Conditional Access Modules. Below, various alternative interfaces are analysed, and thus explain, given the requirements, why PCMCIA was chosen as the preferred modular format, despite the greatly-reduced pin-count (only 68 pins).
The re-use of industry-standard connectors and sockets is a very common practice, but usually it is for embedded or factory-installation purposes only. Typically in the Embedded world, SO-DIMM is the form-factor of choice to re-purpose, because CPU, RAM, NAND Flash and even some micro-connectors can fit onto the 35mm x 68mm size. Other suitable form-factors include MXM and PCMCIA (CardBus) and potentially ExpressCard, although the limited pincount of ExpressCard makes it much less attractive. Cogcomp have defined their own standard, and have achieved significant backwards-interoperability over a very wide range of CPU types - however this is not re-use of a de-facto standard, but is included for completeness.
Mini PCI (not to be confused with Mini PCIe) has 3 variants, one of which is a 124-pin standard. Pictures have been seen of removable Mini PCI cards and ejector assemblies (similar to PCMCIA but wider). Tracking down the supplier proved impossible: Mini PCI never really took off into a mass-produced standard. If it still existed, the removable Mini PCI card form-factor would be perfect, because of the extra pins available (124) and the rugged nature of the socket and housing that was seen (once).
This form-factor is suitable for factory-only installation. The 35mm x 68mm size also makes it very tight to fit more than the CPU (up to 25mm sq), NAND Flash (up to 20mm) and more than two RAM ICs (appx 20mmsq each), as well as PMICs. However, some companies such as Gumstix have created a de-facto modular standard for their own products such as the Overo range, using the more expensive POP RAM to make space even for on-board WIFI SIP modules. The majority of SO-DIMM form-factor modules, such as Magniel's OMAPMOD, are double-sided.
All of these options are fantastic for prototyping and for the low-to-mid-range volumes, especially for Hardware enthusiasts. However, when it comes to placing designs based around SO-DIMM and other similar form-factors of this size into mass-volume production, the space-saving decisions that had to be made immediately become a problem. Many Chinese Factories are simply not equipped to handle the higher number of layers required, nor the smaller PCB track sizes, and simply do not have access to the plasma-based equipment needed to solder Package-on-Package ICs.
Use of the PCMCIA 85mm x 55mm form-factor for purposes other than the CardBus standard is not without precedent: [Conditional Access Modules] do not comply with the CardBus electrical and electronic specification. The size and design however is highly suited to hot-swapping and provides convenient carrying and storage. It therefore makes sense to put the entire embedded computer onto the card. The size is large enough to fit CPU (up to 25mm), up to 4 RAM ICs (typically 20mm sq), a NAND Flash IC (up to 20mm) as well as PMICs and other components - even single-sided, thus reducing the cost.
The specification is at Embedded_Open_Modular_Architecture/EOMA-68.
Compact Flash form-factor
Compact Flash Type II Cards are 43mm x 36mm x 5mm, and the connector is 50 pins. There is therefore just enough space to fit a CPU, RAM and NAND ICs. There exists precedent for such tiny processor boards, in the form of the [Enyxos4210 CPU Board] from hardkernel.com. In the case of the Enyxos4210, a Samsung Dual-Core 1ghz ARM Cortex A9 is used, with POP DDR RAM. Unlike the hardkernel CPU board, however, the Compact Flash form-factor would allow the use of the bottom of the board for ICs instead of B2B connectors, because the Compact Flash connector is on the edge. A typical layout would therefore involve CPU, PMIC and one other (small!) IC on the TOP side, and NAND Flash and possibly 2 low-cost DDR RAM ICs on the BOTTOM side.
The only distinct disadvantage of the reuse of Compact Flash is that it is sufficiently small that re-use of existing casework for CF is not really possible. With PCMCIA, existing cases can be purchased off-the-shelf, leaving just the moulding at the end as the only customised casework required. Additionally, the smaller size may require high-density parts for high-specification devices, increasing the price. However for ultra-low-cost cards, the lower part count would not be a problem.
The specification is being developed at Embedded_Open_Modular_Architecture/CompactFlash.
This section covers alternative standards for modular computing.
Q7 http://www.qseven-standard.org/index.php?id=43 is an embedded 70mm x 70mm standard which is large enough and powerful enough to house x86 CPUs as well as embedded ARM SoCs. However, like the other edge-connector-based standards, it is not suitable for mass-volume user-installable usage, being only suitable for factory-installation. Also, as it is a larger form-factor, it rules out usage for smaller devices (it is almost 400% bigger than Compact Flash, for example). Also, the Q7 standard sets quite a high bar for the required interfaces, including PCI-e, MIPI and others, all of which must be placed on the edge-connector, thus requiring some 200+ pins. It is mentioned here for completeness.
PC104 and other such small-form-factor embedded boards are based around the assumption that the architecture is based around the x86 PC. In fact, PC104 is a compact form of the legacy PC/AT bus (even PCMCIA is based around the ISA bus). PC-104 is mentioned here for completeness, because due to its age it can be considered as a legacy interface, where the pins, connectors, headers and PCB sizes could potentially be re-used for alternative purposes. The problem with that is that PC104 was designed for Industrial and other embedded purposes, and was never a mass-produced interface in the first place, but is mentioned here merely for contrast and for completeness.
EDM is a new small-form-factor embedded board standard, with sizes of 82 x 60 mm, 82 x 95 mm and 82 x 145 mm. The standard, which is released under a Creative Commons License, uses a 314 pin connector which carries all signals ranging from HDMI to gigabit ethernet to control pins such as GPIO's, I2C, SPI and serial interfaces.
EDM is very similar to the Q-Seven Standard, and as such has the same limitations, including being restricted to factory-installation only (unsuitable for installation by the average non-technical end-user). Additionally, the fact that many of its interfaces are optional means that the marketplace will automatically become fragmented on both sides of the standard.
ULP-COM is a new small-form-factor embedded board standard, with sizes of 82 x 80mm and 82 x 50mm, and a maximum height limit of 4mm. It re-uses the x86-based MXM form-factor and sockets, just as EDM does.
ULP-COM includes many industrial interfaces (SPI, 4x CAN, 12x Serial) as well as requiring 3 PCIe x1 ports, and offering Single-channel LVDS, 24-pin RGB/TTL, and HDMI (with an option for DisplayPort), 2 CSI Camera Interfaces (one 2-lane, one 4-lane). This basically raises the bar to an extremely high level, eliminating many low-cost ARM SoCs from participating with the standard, whilst still leaving it highly suitable for many Industrial and other Factory-install purposes. It should become more suitable as a general-purpose computing standard once more SoCs have PCIe, CSI and so on.
However, like EDM, the inclusion of optional (multiplexed) functionality leaves some concern over the viability of the standard: should motherboards support both alternative options? What if one module does not support the alternative function that is required by a motherboard? In the cases where the Module is to be effectively permanently installed in its motherboard, this question is not of such concern, but then why use that standard at all; why not just make a Single Board computer (for large volumes, at least). This issue applies equally across all of the edge-connector-style Modules.