A System-on-Module (SoM), also known as a Computer-on-Module (CoM), is a small board with the key components of a computer such as SoC, memory, and possibly others components such as PMIC (Power Management IC), an Ethernet PHY, as well as one or more connectors used to connect to a baseboard, also called carrier board, which features standard ports such as Ethernet (RJ45), USB ports, SATA, power jack and so on. The advantages of using of baseboard + SoM design compared to a single board are at least twofold:
- Most of the PCB design complexity is often around the CPU/SoC and high-speed buses connected to the CPU/SoC. So you could buy an SoM, design your own baseboard and get a complete design relatively in a short amount of time, with reduced development resources and costs.
- The design is modular, so you could easily upgrade from one SoM to another one. For example, in order to provide a product with several options, you could use one baseboard with 3 SoMs featuring single, dual, and quad-core processors.
This all looks very nice, but many SoM solutions are proprietary often based on a 2xx-pin SO-DIMM connector or castellated holes (soldered to the base board), and in that case, albeit you may still have a wide range of different SoMs, you’d be stuck with the same vendor, unless you also change your baseboard design. To work around this problem, companies are started to launch SoM standards in order to be able to mix SoMs and baseboards from different vendors. The only problem is that in recent years, different companies have tried to launch their own standard, which in some cases, appear to be only used by the company. Exceptions are SMARC and QSeven where I’ve seen ARM and x86 SoMs from several companies, and older x86 only standards such as COM Express and PC/104. AFAIK, All 4 standards are targeting industrial embedded applications, and not focused on the higher-volume consumer market where the hardware needs to be cost-optimized.
So I’d like to list a non-exhaustive list of SoM / CoM standards, and possibly start a discussion as to why there need to be so many standards, and companies do not come together behind a handful of standards instead. I’ll focus mostly on low-power SoMs, but I’ll also mention “conventional” x86 only standards at the end of the list.
- QSeven (Q7) – The latest version of the Qseven standard (2.1) was adopted by the Standardization Group for Embedded Technologies in March 2016. The standard is said to be low cost, low power consumption (12W max), legacy-free (No support for PCI, ISA, RS-232 or EIDE), and provides access to fast serial interfaces. The following interfaces are available: PCI Express, SATA, USB 2.0, 1000BaseT Ethernet, SDIO, LVDS, SDVO / HDMI / DisplayPort (shared), HDA (High Definition Audio), I²C Bus, LPC (Low Pin Count Bus), CAN Bus, Fan Control, Power Management Signals, Battery Management, and 5V Power. A unique API for I²C Bus, watchdog timer, and EPI (Embedded Panel Interface) is provided, and a Thermal Cooling Interface is defined.
-
- Connector – 230-pin MXM2 SMT edge connector
- Dimensions
- 70 mm x 70 mm
- 70 mm x 40 mm (μQseven)
- Architectures – ARM and x86
- Specifications – Qseven-Spec_2.1.pdf
We’ve already written about many SoMs based on the Qseven standard, but there are many more.
-
- SMARC – Previously known as ULPCOM (Ultra Low Power COM), SMARC (Smart Mobility ARChitecture) is another SoM standard published by the Standardization Group for Embedded Technologies (SGET). The more recent standard is also targeting low-power ARM and x86 SoMs, but with a connector with more pins, and 2 board dimensions depending on requirements. It is somewhat similar to COM Express (see below) but reserved for low-power applications.
-
- Connector – 314-pin MXM 3.0
- Dimensions
- 82 mm × 50 mm for extremely compact low-power designs
- 82 mm × 80 mm for SoCs with higher performance and with increased space and cooling requirement
- Architectures – ARM and x86
- SMARC 2.1 specifications – SMARC_V21-specification.pdf SMARC_Hardware_Specification_V1p0.pdf
Here again, several companies have launched SMARC SoMs for x86 and ARM systems, but since it’s newer, maybe not quite as many as QSeven ones.
-
- COM Express – The next 4 standards have been typically used with x86 hardware only and may support high power pins (~100W), although some companies have also designed some COM Express Modules with ARM SoCs.
- Connector – 220-pin or 440-pin connector
- Dimensions
- Mini – 55 × 84 mm
- Compact – 95 × 95 mm
- Basic – 95 × 125 mm
- Extended – 110 × 155 mm
- Architectures – x86 and to a much lesser extent Arm.
- Documentation and specifications – https://www.picmg.org/openstandards/com-express
- PC/104 (Plus) – Another widely used SoM standard for x86
- Connector – 104- to 156- pin depending on the version
- Dimensions – 96 x 90 mm
- Architectures – x86
- Specifications – https://pc104.org/hardware-specifications/pc104/
- ETX / XTX – Actually two standards but they are similar. XTX drops the ISA bus and adds PCI-Express, SATA, and LPC.
- Connector – Four Hirose FX8-100P-SV connectos
- Dimensions – 95 × 114 mm
- Architectures – x86
- Specifications – ETX and XTX
- COM HPC – A new standard ratified in 2021 for high-performance systems (including Xeon based modules) with more interfaces and support for higher TDP (up to 150W) than COM Express
- Connector – 2 x 400-pin connectors
- Dimensions
- 95 x 120mm Size A recommended for Client use
- 120 x 120mm Size B recommended for Client use
- 160 x 120mm Size C recommended for Client use
- 160 x 160mm Size D recommended for Server use
- 200 x 160mm Size E recommended for Server use
- Architecture – x86 for now
- Documentation and specifications – https://www.picmg.org/openstandards/com-hpc/
In 2014, I also listed some other SoM standards, but they ended up only being used by the companies that defined them, and even not used anymore. Here there are for reference:
- EDM – The EDM Standard is an open hardware and software standard for x86 and ARM Computer on Modules created by TechNexion. It defines three form factors for ARM and/or x86 SoMs.
-
- Connector – 314-pin MXM 3.0
- Dimensions
- EDM Compact – 82 x 60 mm (ARM only)
- EDM Standard – 82 x 95 mm (ARM and x86)
- EDM Extended – 82 x 145 mm (x86 only)
- Architectures – ARM and/or x86
- Specifications – Not available anymore
Despite the standard being open, I could not find other companies apart from TechNexion making EDM modules. One product featuring the standard is Wandboard development board.
-
- Apalis – Toradex’s Apalis Module Architecture defines the interfaces (electrical characteristics, signal definitions and pin assignments), and the mechanical form factor, including key dimensions.
-
- Connector – 314-pin MXM3 connector
- Dimensions
- Standard: 82 x 45mm
- Extended: 82 x 56mm
- Architectures – ARM and x86
- Specifications – http://developer.toradex.com/hardware-resources/arm-family/apalis-module-architecture
Again all documentation is available online, but I believe Toradex is the only company providing Apalis SoMs. You can also check out my earlier Apalis article.
-
- EOMA68 – This is a standard defined by Qimod/Rhombus Tech based on the PCMCIA, which gives EOMA68 compliant CoMs 68-pin to play with the following non-optional interfaces: 24-pin RGB/TTL, I2C, USB (Low Speed, Full Speed, optionally Hi-Speed/480 Mbit/s and optionally USB3), 10/100M Ethernet (optionally 1,000M Ethernet), SATA-II (optionally SATA-III), 8 GPIOs, SD/MMC, and TTL-compatible UART (Tx and Rx only).
-
- Connector – 68-pin PCMCIA
- Dimensions
- Type II – 85.6mm x 54.0mm (TBC) x 5mm max
- Type III – 85.6mm x 54.0mm (TBC) x 8mm max
- Architectures – ARM and x86
- Specifications – EOMA68 on Elinux.org
At the time of writing, I only know of one product to feature an EOMA68 module: The Allwinner A20 EOMA68 CPU module. It’s still under development but takes a very long time to complete.
-
- Rabbit – This was a new standard designed by Radxa, and which made me decide to write this post in 2014 because I wondered why there should be so many standards, or why companies would run roll their own instead of using what’s there. It’s using a SO-DIMM connector and at the time AllWinner A20, and AllWinner A80 SoMs were being developed but it eventually died off, and even the website is offline.
- CoreExpress
- Connector – 220-pin connector
- Dimensions – 58 mm × 65 mm
- Architectures – x86
- Specifications – The website is now down, and the standard seldom used.
The list is not complete, and there are other standards, mainly, or only, used within the company that defined them, such as SolidRun μSOM found in Cubox-i and Hummingboard.
[First posted in May 2014, and updated in August 2021]
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Isn’t VITA arguably another standard rather than just an extention of COM Express? VITA 59 RCE (or Rugged COM Express) is based on PICMG’s COM Express and can be ARM based (http://www.men.de/products/15CC10C.html#t=overview) or Intel based (https://www.men.de/products/15CB70C.html#t=overview) for example.
@linuxium
I never heard about it, but VITA 59 RCE (aka Rugged COM Express) looks like another standard. The boards linked seem to comply with both COM Express and VITA 59 RCE however: “VITA 59 in process, compliant with COM Express® Compact, type 6”. So both must be really similar.
Do any of these support MIPS architecture? At one point EOMA68 was considering an Ingenic processor.
The Overo/Gumstix, Beaglebone Capes, Arduino, Olimex modules are making their own de-facto standards to extend their system into various applications, while those are not industrial standards, they’re very popular and can be added in a non-standard list for practical reasons.
Also a list for all open source hardware designs/projects(imx6, a20, etc such as wandboard, cubieboard, olimex etc) will be very helpful for quick reference.
@Ray Knight
Actually I’m not quite sure why there are architecture limitations, because these standard just defined mechanical and electrical characteristics. The only reason to distinguish between x86 an ARM that I can think of is power requirement / dimensions. For example, you would not be able to put an Intel Core i7 processor on a microQSeven module for example. So mu guess is that anything that works for ARM, would probably work for MIPS as well. I haven’t gone into the specifications details, so there may be another reason that I missed.
Somethign else… Someone, who works with SoMs, told me privately that Qseven may be be compatible between versions, For example v1.20 and v2.00 may not the compatible due to the addition of USB 3 for example, and it’s apparently done in a way that your Q7 v1.20 baseboard may not be compatible with a Q7 v2.00 SoM.
The Raspberry Pi Foundation’s recently announced (7 April 2014) Compute Module and IO Board seem likely to find plenty of support for embedded industrial/bussiness applications. A 200-way DDR2 SODIMM connector is used.
Freescale presentation about different SoM standards for i.mx6, including pin to pin comparison, and buy vs make discussion
http://www.freescale.com/files/training/doc/ftf/2014/FTF-SDS-F0393.pdf?&Parent_nodeId=131741541207669681D199&Parent_pageType=overview&Parent_nodeId=131741541207669681D199&Parent_pageType=overview
It’s interesting to see the approach taken with ARVSOM and SOQuartz.
They’re drop-in replacements for another vendor’s, around which has sprung up a community of carrier boards. (Thanks for your youtube channel Jeff)
The most popular SoM format is Raspberry Pi B + (85×56 mm). In second place is Raspberry Pi A + (65×55 mm)
I’d call Raspberry Pi A and B+ single board computers (SBC) rather than systems-on-module (SoM). A SoM would typically require a baseboard to be used.
The Raspberry Pi Compute Module 4 is a system-on-module.
Please add the 96boards SoM standard, it’s the new som standard which can meet the AI/vision/auto system design demand.