MCU and control-loop requirements for accelerating a 60 mm shutter disc to 720 RPM and stopping it within 20 ms

Hi everyone,

I am developing a rotating shutter using a 2804 motor with a magnetic encoder. The motor has a rated torque of approximately 0.03 N·m.

The load is a 6061 aluminum disc with the following approximate specifications:

  • Diameter: 60 mm
  • Mass: 10–15 g
  • Target speed: 720 RPM

My motion requirements are:

  1. Accelerate the disc from rest to 720 RPM within 0.3 seconds.
  2. Maintain a stable speed of 720 RPM.
  3. After receiving a stop command, decelerate and stop at a specified angular position within 20 ms.

I would like some advice regarding the controller and control architecture:

  • Is an MCU such as the STM32G431 necessary for this level of performance, or would an ESP32 or Arduino-class MCU be sufficient?

  • Could a SimpleFOC Mini combined with an ESP32 or Arduino meet these requirements?

  • Would I need to design a custom PCB with proper current sensing and implement cascaded current, velocity, and position control loops?
    I would appreciate any suggestions regarding suitable hardware, control modes, and expected loop frequencies.

    Thank you!

Not every ESP32 comes with FPU. That’s important to know.
In general I don’t see a problem, stopping at a certain angle within 20ms is the toughest part.
The simpleFOC mini is a good match for the 2804. Attaching the diametral magnet can be tricky because of the hollow shaft.