The SimpleFOC Mini is a compact and efficient motor control board designed for driving brushless DC (BLDC) motors using advanced field-oriented control (FOC) techniques. This board is ideal for applications requiring precise motor control, such as robotics, automation, gimbals, and small electric vehicles. Its small form factor and robust design make it a versatile choice for both hobbyists and professionals.
Common applications include:
The SimpleFOC Mini is designed to provide reliable and efficient motor control. Below are its key technical specifications:
Parameter | Value |
---|---|
Input Voltage Range | 6V to 25V |
Continuous Current | Up to 5A |
Peak Current | 10A (short duration) |
Motor Type Supported | Brushless DC (BLDC) motors |
Control Algorithm | Field-Oriented Control (FOC) |
Communication Interfaces | UART, I2C, SPI |
Dimensions | 25mm x 25mm |
Weight | 5g |
The SimpleFOC Mini features a straightforward pin layout for easy integration into your projects. Below is the pin configuration:
Pin Name | Type | Description |
---|---|---|
VIN | Power Input | Main power input (6V to 25V) for the motor driver. |
GND | Ground | Common ground for power and signal connections. |
MOTOR_A | Motor Output | Connection to phase A of the BLDC motor. |
MOTOR_B | Motor Output | Connection to phase B of the BLDC motor. |
MOTOR_C | Motor Output | Connection to phase C of the BLDC motor. |
EN | Digital Input | Enable pin to activate the motor driver. |
PWM1 | PWM Input | PWM signal input for motor control. |
PWM2 | PWM Input | Optional second PWM input for advanced control. |
UART_TX | UART Output | Transmit pin for UART communication. |
UART_RX | UART Input | Receive pin for UART communication. |
I2C_SCL | I2C Clock | Clock line for I2C communication. |
I2C_SDA | I2C Data | Data line for I2C communication. |
SPI_MOSI | SPI Input | Master Out Slave In for SPI communication. |
SPI_MISO | SPI Output | Master In Slave Out for SPI communication. |
SPI_SCK | SPI Clock | Clock line for SPI communication. |
SPI_CS | SPI Chip Select | Chip select for SPI communication. |
Below is an example of how to control a BLDC motor using the SimpleFOC Mini with an Arduino UNO:
#include <SimpleFOC.h> // Include the SimpleFOC library
// Define motor and driver objects
BLDCMotor motor = BLDCMotor(7); // Motor with 7 pole pairs
BLDCDriver3PWM driver = BLDCDriver3PWM(9, 10, 11); // PWM pins for motor phases
void setup() {
// Initialize driver
driver.voltage_power_supply = 12; // Set power supply voltage
driver.init();
motor.linkDriver(&driver);
// Set motor parameters
motor.voltage_limit = 6; // Limit motor voltage
motor.controller = MotionControlType::velocity; // Velocity control mode
// Initialize motor
motor.init();
Serial.begin(115200); // Start serial communication
Serial.println("Motor ready!");
}
void loop() {
// Set motor velocity (e.g., 2 rad/s)
motor.move(2);
}
Note: Install the SimpleFOC library in your Arduino IDE before uploading the code.
Motor Not Spinning:
Overheating:
Erratic Motor Behavior:
Communication Issues:
Can I use the SimpleFOC Mini with a stepper motor? No, the SimpleFOC Mini is designed specifically for BLDC motors.
What is the maximum motor speed supported? The maximum speed depends on the motor's specifications and the control algorithm but is typically limited by the board's processing speed and power supply.
Can I use a battery as the power source? Yes, as long as the battery voltage is within the 6V to 25V range and can supply sufficient current.
Is the board compatible with other microcontrollers? Yes, the SimpleFOC Mini can be used with various microcontrollers, including STM32, ESP32, and Arduino boards.