Using a Raspberry Pi–based PLC instead of a traditional MCU for motion control

Hello,

I’m currently developing a machine that requires multi-axis motion control using Step/Dir signals for servo or stepper drives.

Traditionally, I would use a dedicated MCU (e.g., STM32-based board) to generate deterministic Step/Dir pulses and handle limit switches. However, I’m now considering using a Raspberry Pi–based PLC (industrial Linux controller) as the main motion controller instead of a separate MCU.

For examle:

https://revolutionpi.tr/

The idea would be:

  • Raspberry Pi–based PLC running Linux

  • Generating Step/Dir outputs directly

  • Handling limit switch inputs

  • Managing machine logic in the same controller

My main questions are:

  1. How realistic is it to use a Raspberry Pi–based PLC to generate high-frequency, low-jitter Step pulses?

  2. From a practical standpoint, is this approach stable enough for multi-axis coordinated motion, or is a dedicated MCU still strongly recommended?

I’m trying to evaluate whether consolidating everything into a single Raspberry Pi–based PLC is a clean architectural solution, or whether separating real-time motion (MCU) from higher-level control (Linux/PLC) remains the more robust approach.

Any real-world experience or technical insight would be greatly appreciated.

Thank you.

You may want to look here: Basic support for memory-mapped IO on Raspberry Pi SBCs by liampwll · Pull Request #6514 · Klipper3d/klipper · GitHub

Until we have direct control over gpio it will be slow.
Until “MCU” code runs on the dedicated CPU core there will be jitter.
Not sure about endstops and timings, because again, right now it is a “heavy” syscall.

But it is possible.

IIRC, there are some SBC with some coprocessor, IIRC, it is: Beaglebone

Hope that helps,
-Timofey