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

MCU 2 PWM mode 4 PWM mode 3 PWM mode 6 PWM mode pwm frequency config
Arduino AVR (8-bit) ✔️ ✔️ ✔️ ✔️ ✔️ (either 4kHz or 32kHz)
Arduino DUE ✔️ ✔️ ✔️ ✔️
stm32 ✔️ ✔️ ✔️ ✔️ ✔️
esp32 MCPWM ✔️ ✔️ ✔️ ✔️ ✔️
esp32 LEDC ✔️ ✔️ ✔️ ✔️ ✔️
esp8266 ✔️ ✔️ ✔️ ✔️
samd21/51 ✔️ ✔️ ✔️ ✔️ ✔️
teensy3 ✔️ ✔️ ✔️ ✔️ ✔️
teensy4 ✔️ ✔️ ✔️ ✔️ ✔️
Raspberry Pi Pico ✔️ ✔️ ✔️ ✔️ ✔️
Portenta H7 ✔️ ✔️ ✔️ ✔️
Renesas (UNO R4 Minima) ✔️ ✔️ ✔️ ✔️ ✔️
nRF52 ✔️ ✔️ ✔️ ✔️ ✔️
📢 Here is a quick guide to choosing appropriate PWM pins for different MCU architectures see in docs.