The Odyssey STM32MP157C is not for beginners, but if you are up for a challenge or are interested in developing a commercial Internet of Things product, it might be for you.

The STM32MP157C is actually two boards, a main processor board and a carrier board. This design allows users to design and prototype ideas using the carrier board’s inputs and outputs and later move the processor board to a final product, like a smart appliance or IoT device.

The processor board at this device’s heart is, as the name implies, a STM32MP157C SoM (System on a Module). System on a Modules are distinguished from System on a Chip (SoC) boards like the Raspberry Pi by being made up of multiple chips and components that work together.

STM32MP157C SoM consists of two chips, a 32-bit Dual-Core Arm Cortex-A7 similar to a Raspberry Pi 2, and a 32-bit Arm Cortex-M4 with FPU/MPU similar to some of Adafruit’s Feather boards. This second chip allows the STM32MP157C to do real time processing. This makes the STM32MP157C closer to BeagleBone boards, which also contain secondary microcontrollers. This is great if you need very precise timing for sensors or motors.

The carrier board, which holds the SoM, will look familiar to most Raspberry Pi users. It has the same 40-pin GPIO header as the Pi, the same ribbon cable connectors for camera and display as well as Ethernet, USB, and audio jacks. Unlike the Pi there are no HDMI outputs, but it does have two ports for Seeed’s Grove connector system, allowing you to connect sensors, motors, and other devices using the same 4-pin connector cables.

The carrier board also has a few features I personally would love to see on a Pi: a reset button and a real time clock battery, to make sure your system stays on-time even when it loses power.

Seeed’s online instructions will get most users through the basics of setup, including flashing the OS to an SD, connecting over serial port and getting WiFi and bluetooth setup. They also provide some examples for using their Grove system of sensors and actuators with the device. One of Seeed’s example that illustrates a potential use for the STM32MP157C is interfacing with other devices via the CAN Bus protocol. This is a robust networking system designed for connecting all the parts of an automotive electronic system.

If users want to really get the most out of this device, or use the GPIO headers without Grove devices or specific Pi Hat boards, they will need to have some experience with navigating and configuring Linux. While the GPIO headers on the STM32MP157C are pin compatible with a Raspberry Pi, they are not set up for easy use from the start. Users will need to spend time configuring the OS to access many of the hardware ports. Unfortunately Seeed doesn’t provide much guidance beyond their few example programs.

If you don’t need very precise timing or don’t plan to develop a commercial or industrial IoT product you are probably better off with a faster Raspberry Pi 3 or 4 board or maybe a BeagleBoard. If you have mastered more user-friendly Linux boards and are up for a challenge, this might be the right board for you.