Driver configuration
Arduino SimpleFOClibrary supports BLDC and stepper motor drivers:
- BLDC driver
- 3 PWM signals ( 3 phase ) -
BLDCDriver3PWM
- 6 PWM signals ( 3 phase ) -
BLDCDriver6PWM
- 3 PWM signals ( 3 phase ) -
- Stepper drivers
- 4 PWM signals ( 2 phase ) -
StepperDriver4PWM
- 2 PWM signals ( 2 phase ) -
StepperDriver2PWM
- 4 PWM signals ( 2 phase ) -
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.