Skip to content

Commit 52fb0b4

Browse files
committed
updated mcu,driver,motor selection guides
1 parent b095a35 commit 52fb0b4

5 files changed

Lines changed: 211 additions & 135 deletions

File tree

docs/simplefoc_library/hardware/drivers/index.md

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,34 @@ Arduino <span class="simple">Simple<span class="foc">FOC</span>library</span> ha
2727
- **2 PWM signals + 2 direction signals** ( 2 phase )
2828
- Stepper drivers or double DC motor drivers
2929

30-
## 📢 Make sure to read this before settling for a driver!
31-
Before running any BLDC motor with the <span class="simple">Simple<span class="foc">FOC</span>library</span> please make sure your hardware can handle the currents your motor requires.
32-
33-
The simplest way to do it is by checking the motor phase resistance `R`. Either check the datasheet of your motor and search for the resistance value or measure it yourself using a multimeter. Then check the value of your power supply voltage `V_dc` and once when you have the values you can find the maximum current `I_max` value by calculating:
34-
```cpp
35-
I_max = V_dc/R
36-
```
37-
Finally check the value of the maximum current `I_max` with the datasheet of your driver board. If the `I_max` is too high you can lower the power supply voltage `V_dc` in order prevent too high peaks of the current. If you are not able to change your power supply voltage you can limit the voltage set to motor in software.
38-
<blockquote class="warning">
39-
<p class="heading">NOTE</p>
40-
The equation above calculates the worst case maximum current <code class="highlighter-rouge">I_max</code> and in most cases calculated <code class="highlighter-rouge">I_max</code> is higher than the actual value. Maximum current depends both on the motor hardware such as winding configuration and the control algorithm.
41-
</blockquote>
30+
## Choosing the Appropriate Driver
31+
32+
Selecting the right hardware is a balance of motor type, power requirements, and the level of control precision you need.
33+
34+
### 1. Motor Type
35+
- **BLDC Motors**: Requires a [BLDC driver](bldc_drivers). Ensure the current and voltage ratings match your motor's specs.
36+
- **Stepper Motors**:
37+
- **Dedicated [Stepper Driver](stepper_drivers)**: Best for 2-phase motors within standard current ranges (ex.NEMA17)
38+
- **Hybrid Mode**: You can actually use any [BLDC driver](bldc_drivers) to run a stepper motor.
39+
- ⚠️ **No Step/Dir Drivers**: Traditional "EasyDrivers" or A4988s (in step/dir mode) cannot be used for FOC because they do not allow direct phase voltage control.
40+
41+
### 2. Current Requirements
42+
- **Low Current (< 5A)**: Integrated driver ICs are cost-effective and easy to use.
43+
- Examples: L6234, DRV8313, DRV8316.
44+
- **High Current (> 5A)**: Requires discrete MOSFET-based designs with robust thermal management (heatsinks/fans).
45+
- Examples: DRV8302, VESC-based hardware.
46+
- **Rule of Thumb**: Always select a driver with a current rating at least 20-30% higher than your motor's expected continuous current.
47+
48+
49+
## 📢 Critical: Read before powering up!
50+
Before running any motor, you must ensure your hardware can handle the stall current. FOC can easily pull more current than a driver can handle if not limited in software.
51+
52+
**The Worst-Case Calculation**
53+
Check your motor's phase resistance ($$R$$) and your power supply voltage ($$V_{DC}$$). The maximum possible current ($$I_{max}$$) is:
54+
55+
$$I_{max} = \frac{V_{DC}}{R}$$
56+
57+
**Safety Steps:**
58+
- **Compare**: If $$I_{max}$$ exceeds your driver's rating, you must limit the voltage in software.
59+
- **Software Limit**: Use `driver.voltage_limit` and (`motor.voltage_limit` and/or `motor.current_limit`) to stay within safe bounds. - [see motor docs](motors_config)
60+
- **Power Supply**: If you can, use a current-limited lab bench power supply for your initial tests.

0 commit comments

Comments
 (0)