# COM Express

COM Express is a form factor for computer-on-modules (COMs), which are highly integrated and compact computers that can be used in design applications much like integrated circuit components. Each module integrates core CPU and memory functionality, the common I/O of a PC/AT, USB, audio, graphics (PEG), and Ethernet. All I/O signals are mapped to two high density, low profile connectors on the bottom side of the module. COM Express employs a mezzanine-based approach. The COM modules plug into a baseboard that is typically customized to the application. Over time, the COM Express mezzanine modules can be upgraded to newer, backwards-compatible versions. COM Express is commonly used in Industrial, military, aerospace, gaming, medical, transportation, Internet of things, and general computing embedded applications.

## History

The COM Express standard was first released in 2005 by the PCI Industrial Computer Manufacturers Group (PICMG). It defined five module types, each implementing different pinout configurations and feature sets on one or two 220-pin connectors. It also defined 2 module sizes (later expanded to 4) to serve more applications while maintaining compatibility within each module type. COM Express is used in railway, industrial, and military applications. There are also efforts for a Rugged COM Express specification through VITA.

## Types

There are 8 different pin outs defined in the specification. The most commonly used pin outs are Type 6 and Type 10. The latest pin-out added in revision 3.0 of the COM Express specification (available from www.picmg.org) is Type 7. The Type 7 provides up to four 10 GbE interfaces and up to 32 PCIe lanes, making COM Express 3.0 appropriate for data center, server, and high-bandwidth video applications. COM Express Rev 3.0 removed legacy Type 1, Type 2, Type 3, Type 4, and Type 5, recommending that new designs should use Type 6, 7 or 10.
Maximum available interfaces for the defined types:
| Type | Connectors | PCI Express lanes | PEG | PCI | IDE | SATA | LAN | Video | Serial | Other features | Note |
| 1 | AB (Single) | 6 | No | No | No | 4 | 1 | LVDS A & B, VGA | | | Legacy |
| 2 | AB & CD (Double) | 22 | Yes | Yes | 1 | 4 | 1 | LVDS A & B, VGA, PEG/SDVO | | | Legacy |
| 3 | AB & CD (Double) | 22 | Yes | Yes | No | 4 | 3 | LVDS A & B, VGA, PEG/SDVO | | | Legacy |
| 4 | AB & CD (Double) | 32 | Yes | No | 1 | 4 | 1 | LVDS A & B, VGA, PEG/SDVO | | | Legacy |
| 5 | AB & CD (Double) | 32 | Yes | No | No | 4 | 3 | LVDS A & B, VGA, PEG/SDVO | | | Legacy |
| 6 | AB & CD (Double) | 24 | Yes | No | No | 4 | 1 | LVDS A & B, VGA, 3 x DDI $^{(*2)}$ | 2 TX/RX serial pairs with option to overlay CAN interface on 1 port | 4x USB 3.0 8x USB 2.0 | |
| 7 | AB & CD (Double) | 32 | Yes, for 16 lanes. | Yes | No | 2 | 1 + 4x 10G KR | None | 2 TX/RX serial pairs with option to overlay CAN interface on 1 port | 4x USB 3.0 4x USB 3.0 | Added in Rev 3.0 |
| 10 | AB (Single) | 4 | No | No | No | 2 | 1 | LVDS A only (AB (Single) channel), DDI $^{(*2)}$ | 2 Serial COM, 1 optional CAN | USB 3.0 $^{(*1)}$ | |
(*1) Option on previously allocated SATA2 and SATA3 pins. Implementor specific.
(*2) DDI can be adapted to DisplayPort, HDMI, DVI or SDVO (legacy, no longer supported for types 6, 7 and 10) in the carrier board.
Legend: PEG - PCI Express Graphics. Legacy - not recommended for new designs.

## Size

The specification defines 4 module sizes:
* Mini: 55 × 84 mm (2.2 × 3.3 in)
* Compact: 95 × 95 mm (3.7 × 3.7 in)
* Basic: 95 × 125 mm (3.7 × 4.9 in)
* Extended: 110 × 155 mm (4.3 × 6.1 in)

## Specification

The COM Express specification is hosted by PICMG. It is not freely available but a paper copy may be purchased for $150USD from the PICMG website. However, the COM Express Design Guide is free to download.
The original revision 1.0 was released July 10, 2005. Revision 3.0 (PICMG COM.0 R3.0) was released in March 2017. COM Express also specifies an API to control embedded functionalities like watchdog timer or I2C. This is a separate document which is freely available (EAPI 1.0).
It also defines a carrier board eeprom to hold configuration information. This is also a separate and free available document (EeeP R1.0).