I need some professional advice about driving stepper motors.

Let's say for example I need to control multiple stepper motors (5 or so) in a machine/device that are located further away (max 1 meter). I also have to mention that I use magnetic encoder IC's that use I2C or SPI for feedback and the mainboard controls more than only steppers.

Now I asked myself is it better to develop some boards with a dedicated MCU, encoder and stepper driver that is connected to a master via UART or some interface? Or is it a good and possible way to have one single MCU that controls multiple steppers and receives multiple encoders?

I think it's better to have dedicated boards because of noise and EMC problems that affects the signal on the I2C/SPI lines in case of the MCU only choice. But I also think it's way more expensive to develop multiple stepper boards.

I hope I gave enough information about this subject. Sorry if my English is not good.

  • \$\begingroup\$ You can get kits that use a single STM32 board with drivers and s/w to download files. But I tossed those and used an Uno with CNC Shield for drivers 2m cable shielded with GRBL Panel for Windows that supports script files. So it depends what you want to do. \$\endgroup\$ Jul 1, 2021 at 22:42
  • \$\begingroup\$ @TonyStewartEE75 thank you for your time but i'm not looking for kits or shields. My goal is to manufacture a machine with self developed hardware. \$\endgroup\$ Jul 5, 2021 at 10:55
  • 1
    \$\begingroup\$ OK but if this is your 1st try, good luck. These kits are probably rev 5. You better learn from there misteaks. They all have some. \$\endgroup\$ Jul 5, 2021 at 11:27

1 Answer 1


It is really an architecture question, and you can choose to play this multiple different ways.

For me, 1M is further then I am happy to run I2C, especially in a difficult EMC environment, so that is probably something I would reject.

Timing wise, if you are trying to do coordinated moves that is something that is usually easier with one processor handling everything, providing it is butch enough.

Do you have other reasons for little interface PCBs out near the motors, maybe for reasons of wiring management, limit switches, warning lights, any of that sort of thing?

My first instinct would probably do the stepper driving centrally, no least because it gets all your fusing, current sense bullshit and heatsinking in the same place. Feedback, I would be thinking SPI, but probably over RS422 signalling to get the noise immunity with a little dumb PCB by each motor to convert, decouple the encoder power and make the wiring neat.

If it was a more industrial sort of thing, then I might place local motor drivers hooked up on one of the standard industrial control networks, CAN/MODBUS/PROFINET/Whatever, but then I would likely be looking at PLCs and their associated motion controllers rather then PCB level stuff.

  • \$\begingroup\$ Thank you this is really helpfull information if i have more questions i let you know. \$\endgroup\$ Jul 5, 2021 at 10:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.