XCOM

Compact, embedded x86 platform for SDR and other applications

This project is coming soon. Sign up to receive updates and be notified when this project launches.


Designed to support unattended operation, IP65+, and passive cooling

Have you ever tried designing a truly embedded x86-based system? We have, and it was a journey full of unexpected pitfalls.

Consider the importance of unattended operation, including resilience in the face of power failures and power voltage fluctuation. Need support for different CPU models? A compact, IP65+ enclosure? Each of these requirements is tricky on its own; taken together, they begin to feel insurmountable. But wandering into previously uncharted territory is half the fun of engineering, and we at Fairwaves are not ones to shy away from a challenge!

Today, we are making the results of more than a year’s worth of development available to the world. With the launch of XCOM, no one ever needs to face this particular set of challenges again.

We designed XCOM to be the ultimate platform for the Fairwaves UmTRX and XTRX Software Defined Radios (SDRs), but it works just as well with other USB, Ethernet, and miniPCIe SDRs. We have already started using the first revision of XCOM in our OpenRAN cellular base stations, and the version that will ship at the end of this campaign will incorporate everything we have learned from that field experience.

We also believe that XCOM has many applications outside of the SDR space. If you have suggestions for how we could make XCOM even more useful for non-SDR projects, please reach out and let us know!

XCOM Handles Demanding CPU and I/O Requirements

These days, a lot of control boards are based on ARM chips because they are small, inexpensive, power-efficient, and embedded-friendly. But what if you need more CPU power or faster I/O than an ARM chip can provide?

What if, for example, you are working in the growing field of Software-Defined Radio (SDR) and the RF processing of your application demands intensive Digital Signal Processing (DSP) and high throughput I/O? You could use a specialized DSP chip or an FPGA, but processing your data on a sufficiently powerful x86 CPU is not only simpler, it also benefits from a more developed software ecosystem and easy virtualization.

ARM x86 Solved by XCOM?
Computing power Low High Yes
Software selection Medium High Yes
Virtualization support Poor Good Yes
Always-on device support Good Poor Yes
Battery-powered device support Good Poor Yes
Remote firmware upgrade infrastructure Good Poor Yes
Power efficiency Good Poor No

XCOM Supports Reliable, Unattended, Always-On Operation

The downside of using x86 is a less developed ecosystem of truly embedded, unattended designs. A lot of x86-based embedded systems are used in point-of-sale terminals, measurement devices, and other equipment that are easy to access and therefore easy to restart or fix if something goes wrong. For our use case, we need equipment that adheres to the infamous telecom standard of 99.999% uptime, even though it might be hundreds of kilometers – and many hours of driving – away from anyone who could fix it. Or it might be deep under water. Or hanging from a weather baloon. Or orbiting the Earth!

Building an x86-based device that is always on when it’s connected to power, and that can be reliably reflashed to a new software release remotely is surprisingly non-trivial. We had to pay special attention to everything from hardware design to Coreboot support to make it possible.

XCOM Keeps Design Cycles Short and Prevents CPU Model Lock-In

There are three ways to design an embedded x86 device:

  1. A long and expensive fully custom design
  2. A cheap-and-dirty off-the-shelf SBC
  3. A Computer-On-Module (COM) with a carrier board

We went with the last approach. By designing a carrier board for the popular COM Express Type 10 modules, we were able to optimize XCOM for reliable unattended operation so that you don’t have to design something from scratch. At the same time, many different COM Express Type 10 modules are available, from a variety of companies, so using XCOM helps you avoid CPU model lock-in.

Fairwaves XCOM Off-the-Shelf SBC In-House COM Carrier In-House Custom SBC
NRE Cost $1k $1k $100k $500k
Development Time 1 week 1 week 3 months 1 year
CPU Flexibility Yes No Yes No
IP65+ Rugged Friendly Yes Very few models Yes Yes
SDR-Friendly Yes No Yes Yes
Wide Input Power Range / Direct Battery Operation Yes Very few models Yes Yes
Coreboot Support Yes (selected COM boards) Very few models Yes Yes

XCOM Bundles

For this campaign, we are offering XCOM bundles based on two different COM Express models, one with a Core i7-7600U from AAEON and one with an Atom E3940 from Portwell. XCOM is designed to work with other COM Express Type 10 Mini modules as well, but we have only tested these two. Please report any success or challenges you might have with other modules!

To illustrate XCOM’s application in real world products, we are offering the following specific bundles:

  1. Building Block: XCOM with Intel Atom E3940 or Intel Core i7-7600U COM modules
  2. XTRX SDR Pack: XCOM with Intel Core i7-7600U COM module, SSD, XTRX SDR, and pre-installed Ubuntu with XTRX drivers
  3. OpenRAN 2G NET Pack 2x5W: XCOM with Atom E3940 COM module, UmTRX SDR, E-GSM900 2x5W RF frontend, and open-source GSM software in a rugged IP65 enclosure

Features

  • RF Power Amplifiers (PAs) control. XCOM uses the same PA control as our classic UmTRX SDR:
    • Two software-controlled, high-load DCDCs to control the RF output power of the PAs
    • Four ADCs to measure the forward and reflected power of two PAs for VSWR calculation
    • GPIO to turn PAs on and off
  • miniPCIe with 2x PCIe lanes. Unlike most miniPCIe slots, which provide only one PCIe lane, XCOM allows you to utilize the full bandwidth of XTRX SDR.
  • EEPROM with one write-lockable page. Allows you to store hardware-specific settings in a software-independent way. Unlike SSD, EEPROM is soldered on the board and is not changed when you re-install the OS. A write-lockable page allows you to store unique IDs, security keys, and other data that should not be changed by end-users.
  • Coreboot support (selected COM modules only). Unlike a proprietary BIOS, Coreboot is open-source and modular, which allows essential customization of the boot process for unattended, always-on operation. By way of example:
    • Coreboot allows safe, remote upgrades of its own firmware (with support for recovery and production images).
    • Coreboot can provide a simple recovery OS and can, for example, dial home and report an issue even in the case of SSD failure.
    • Coreboot settings can be flashed onto the image and do not require a CMOS battery, which is a frequent point of failure.
    • System indicators, such as LEDs, can be programmed to start almost immediately after XCOM is powered on and well before the OS is loaded. They can also be programmed to indicate various boot failures.
    • To simplify recovery, netboot can be configured to start if a particular combination is sent over a serial console.
  • Only vertical connectors. The classic side connectors used in most SBCs do not work well in small IP65+ enclosures. They require extra space around the board to plug in cables, and once the board is installed, those cables becomes virtually impossible to unplug. All of XCOM’s connectors are vertical, so the board occupies only the space required by its own footprint. Vertical connectors also make it easy to plug and unplug cables when the board is mounted in an enclosure.
  • Designed for passive cooling. We took special care to ensure that XCOM can be used in environments – like inside an IP65+ enclosure – where active cooling is not possible.

Specifications

  • COM Express Type 10 Mini Rev. 3.0:
  • Dimensions (without enclosure): 102 x 73 x 36 mm with only vertical connectors
  • Power:
    • 8.5 V to 50 V DC (12 V to 50 V DC for SATA support)
    • Input voltage monitoring
    • Polarity protection circuits
  • miniPCIe: 2x PCIe lanes (full XTRX SDR bandwidth support), no USB
  • Storage: M.2 SATA or SATA
  • I/O: DisplayPort, 2x USB 3.0, 1GbE, 2x RS232, SMBus, 16x GPIO, 4x ADC lines, RGB LED driver
  • Software-controlled high-load DCDC with 2x outputs
  • EEPROM: 128kB with one write-lockable page
  • Hardware watchdog

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: