Link

Driver configuration

Arduino SimpleFOClibrary supports BLDC and stepper motor drivers:

  • BLDC driver
    • 3 PWM signals ( 3 phase ) - BLDCDriver3PWM
    • 6 PWM signals ( 3 phase ) - BLDCDriver6PWM
  • Stepper drivers
    • 4 PWM signals ( 2 phase ) - StepperDriver4PWM
    • 2 PWM signals ( 2 phase ) - StepperDriver2PWM

The driver code is written in a way to support as many different drivers out there as possible and in a way to be fully interchangeable. These classes can be used as stand-alone classes and they can be used to set certain PWM value to the driver outputs, see example codes in utils > driver_standalone_test.

Driver support per MCU architecture

MCU2 PWM mode4 PWM mode3 PWM mode6 PWM modepwm frequency config
Arduino (8-bit)✔️✔️✔️✔️✔️ (either 4kHz or 32kHz)
Arduino DUE✔️✔️✔️✔️
stm32✔️✔️✔️✔️✔️
esp32✔️✔️✔️✔️ / ❌*✔️
esp8266✔️✔️✔️✔️
samd21/51✔️✔️✔️✔️✔️
teensy✔️✔️✔️✔️✔️
Raspberry Pi Pico✔️✔️✔️✔️✔️
Portenta H7✔️✔️✔️✔️
Renesas (UNO R4 Minima)✔️✔️✔️✔️✔️

* For ESP32, the support for 6 PWM depends on the model of ESP32. The models that have a MCPWM peripheral support 6 PWM, the ones that do not only support the other PWM modes.