This project is coming soon. Sign up to receive updates and be notified when this project launches.
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!
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?|
|Always-on device support||Good||Poor||Yes|
|Battery-powered device support||Good||Poor||Yes|
|Remote firmware upgrade infrastructure||Good||Poor||Yes|
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.
There are three ways to design an embedded x86 device:
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|
|Development Time||1 week||1 week||3 months||1 year|
|IP65+ Rugged Friendly||Yes||Very few models||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|
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:
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:
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.
Dimensions (without enclosure): 102 x 73 x 36 mm with only vertical connectors
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