i.MX8 carrier board

For a customer project, we developed a carrier board for an i.MX8 SoM.

The i.MX8 was extended with an FPGA for custom real-time signal processing, stepper controller management, and LED bus control.

The board also integrates various motor controllers for stepper and BLDC motors as well as a second Ethernet interface with PoE via PCIe.

Our services

Design & Development

  • Electronics for a complex carrier board based on i.MX8 SoMs
  • Real-time software on the Cortex-M4 core (FreeRTOS)
  • FPGA design for real-time data processing, stepper motor control, and interfaces

Embedded Firmware

  • STM32 firmware for control and commutation of two BLDC motors (block and sinus commutation)
  • Linux drivers for communication between Linux applications and the Cortex-M4 real-time software via RPMSG

PC Software & Tools

  • Linux user programs for diagnostics and testing
  • Scope software for BLDC motor diagnostics, based on Qt

Embedded Linux & System Integration

  • Adaptation of a Yocto-based framework
  • Configuration of Devicetree, Linux kernel, and U-Boot bootloader

Prototypes & Project Implementation

  • Assembly of the first prototypes
  • Collaboration with partner companies for Linux userspace firmware and web interface

Technologies

Hardware

  • Multilayer PCB for complex circuitry
  • Stepper motors and BLDC motor commutation
  • Power sequencing and Power over Ethernet (PoE)
  • i.MX8M Mini (VAR-DART-MX8MM SoM) and i.MX8M Plus (VAR-DART-MX8MP SoM)
  • TMC2590 stepper motor controller
  • STM32 microcontroller
  • FET gate driver
  • iCE40 FPGA for real-time data processing
  • Battery-backed RTC and eFUSEs
  • PCIe Ethernet controller and PSE/PoE controller

Software

  • Embedded Linux
  • Devicetree configuration
  • Linux kernel and Linux drivers
  • U-Boot bootloader
  • RPMSG messaging for communication between real-time software and Linux

Programming Languages

  • C/C++ for firmware and Linux software
  • VHDL for FPGA design
  • Python for diagnostic automation

Interfaces

  • SPI, QSPI, I2C, UART
  • Ethernet and USB
  • PCIe for expansions
  • LED bus for display control
  • PLC inputs for industrial signals

Tools

Software Development

  • KDevelop – C/C++ IDE for firmware development on the i.MX8 Cortex-M4
  • Segger J-Link Pro & GDB – Debugging and analysis of CM4 firmware
  • ST-Link – Debugging of STM32 microcontrollers
  • CubeIDE (ST) – C/C++ IDE for STM32 development
  • Yocto – Building embedded Linux images
  • Docker – Isolated build environment for Yocto projects

FPGA Design

  • iCEcube2 (Lattice) – FPGA synthesis and implementation
  • GHDL – Simulation and verification of FPGA logic

Hardware Development

  • KiCAD – Schematic capture and PCB layout
  • Reflow oven – Soldering of prototypes

Project Management & Version Control

  • Git – Source code version control
  • GitLab – Project management, ticketing, and version control

Regulatory Requirements

The following regulations were taken into account:

  • CE Marking & EU Conformity
  • EMC Directive
  • Machinery Directive / Machinery Regulation
  • RoHS