Many design decisions were involved in creating our X2 expansion boards.

by Ulderico Arcidiaco, co-founder, CEO, and lead hardware engineer at Sfera Labs

As we said in our earlier column (DENA, July/August 2024), during the development of Strato Pi Max, our expandable industrial edge server based on the Raspberry Pi Compute Module 4 and 5, we had to find a form factor for the expansion boards that could meet our laundry list of design goals, which meant we had to design a suitable mechanical and electrical format from scratch.

Front and back views of the X2BDEV10XZ development and prototyping board

X2 mechanical standard

The X2 mechanical standard defines the PCB dimensions and component placement constraints on the X2 expansion boards.

The mechanical format is derived from the DIN enclosure’s profile and allows it to have terminal blocks or other connectors on both sides, as well as LEDs and push-buttons on the front panel, if required.

Anatomy of a connector

The centerpiece of any expansion board standard is how it connects to the motherboard. As our boards are relatively small, and we wanted to maximize the surface available for components, we decided to go for a right-angle plug connector that uses only one side of the board and—being high density—is quite compact compared to the size of an edge connector with the same number of contacts.

We picked a rugged but compact 60-contact ERF5 series connector from Samtec that can carry both high-speed digital lanes as well as a substantial amount of current.

The boards are screwed in place on the motherboard with two Würth REDCUBE terminals—which also improve ground connection—to the sides of the connector.

The overall design is compact, rugged, and easy to handle. Both the Samtec ERF5 connector and the Würth REDCUBE terminals are off-the-shelf products that can be easily sourced.

Terminal blocks

An X2 expansion board may have pluggable terminal blocks or other connectors on both sides of the board. Using 0.150” (3.81 mm) pitch terminal blocks, we can have up to 8 posts on each side, for up to 16 lines on a single board.

The X2 compatible host systems are required to have enclosure cutouts that are compatible with the Würth Elektronik WR-TBL Series 322 Horizontal PCB Header and matching WR-TBL Series 361 Vertical Plug.

E&F Standards

The electrical and functional specification of the X2 standard aims at making the hardware and software design relatively simple and very flexible.

The connection lines and standard buses implemented in the X2 backplane connector are simple to implement and are arranged to integrate well into host systems with a hybrid CPU/MCU architecture, like the Strato Pi Max family.

Power supply

The X2 board’s main supply is a 5V rail available at multiple pins of the board-to-board connector. Host systems should be able to individually switch the power of each X2 expansion slot.

Board identity

Each X2 board is equipped with a 1-Wire identity EEPROM. These are used by the host system to detect the presence and read the types and serial numbers of the boards installed in each expansion slot.

This EEPROM can be read by the host system when the expansion slot 5V supply is turned off. Thus, the host system can probe the boards before turning on the expansion slots, potentially keeping the slot off in case of compatibility conflicts.

The first 48 bytes are reserved for factory-configured data, including the board type ID. Applications should only set data in these pages during initial factory provisioning. The remaining 64 bytes are available for customers applications.

Unique board type IDs can be issued by Sfera Labs on request.

I2C, SPI, and USB

The X2 connector carries two distinct I2C buses, one connected to the host’s CPU (the Raspberry Pi Compute Module in the Strato Pi Max) and one to the host’s MCU (the Raspberry Pi RP2040 microcontroller in Strato Pi Max).

Likewise, the X2 connector also carries two distinct SPI buses, one connected to the host’s CPU and one to the host’s MCU.

The X2 standard assumes that X2 expansions boards use the I2C and SPI buses as slaves, with the host CPU and MCU being masters.

A few lines are reserved for board-to-board interconnection and for GPIO lines to the CPU and MCU.

The X2 connector has one USB 2.0 High Speed (480Mbps) and Full Speed (12Mbps) compatible interface, to connect a USB slave interface on the X2 board.

We deliberately chose not to support faster buses, like PCIe or USB 3.x, to keep the complexity and cost of the X2 boards to manageable levels.

A friendly standard

The full X2 specification is available on the Sfera Labs web site. It is an open specification, not protected by any complex licensing contract or third-party products compliance or certification requirements.

The specification document is, in its current release, just 12 pages long. To offer a convenient way to experiment with the X2 standard and a reference mechanical design, we have also designed a development and prototyping X2 expansion board.

Development expansion board

The X2-Series X2BDEV10XZ board is a development and prototyping circuit board that exposes all standard X2-Series expansion bus lines, making it easy to design and test custom circuits.

The proto area is a two-sided grid of standard 100 mil (0.1”) spaced through-holes for soldering. The board also has holes on one side for an X2-Series standard 3.81 mm (0.15”) 8 lines pluggable terminal block.

A front facing LED can be wired to be turned on when the board is powered or driven by custom circuits. An on-board 3.3V regulator is also available and can be wired to the main 5V board power rail if needed. The board also has a standard X2 identity EEPROM.

This board is incredibly useful, as it allows rapid prototyping of circuits without having to manufacture the whole board. Several of the X2 boards we designed started as quick and dirty PCB hacks wired to a DEV board.

How did we score?

All I can say is that we are very happy with the outcome of this project. We are also happy to make this standard available to everybody in a simple and unrestricted way.

www.sferalabs.cc