Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"cSpell.words": [
"Adafruit",
"Aideepen",
"Aliexpress",
"Atmega",
"autoplay"
]
}
12 changes: 6 additions & 6 deletions docs/boards/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ In addition to the official boards, there are many other boards compatible with

## Boards in the <span class="simple">Shield</span> form factor

These boards are designed to be compatible with the Arduino UNO R3 headers, enabling an easy to start experience with the <span class="simple">Simple<span class="foc">FOC</span>library</span> and the Arduino IDE. The boards can be used with any board with the standard Arduino headers, such as the Arduino MEGA, STM32 Nucleo boards, Adafruit Metro, ESP32 D1 R3, Arudino UNO R4 and many others. This format enables usesr to easily exchange the microcontrollers and find the best solution for their application. The boards are fully open-source and the fabrication files are available in the respective repositories, as well as detailed guides on how to fabricate the boards yourself. The boards are additionally available in the [shop](https://www.simplefoc.com/shop) for those who prefer to buy them, as well as on other mainstream platforms like Aliexpress and Ebay (no relation to the <span class="simple">Simple<span class="foc">FOC</span>project</span>).
These boards are designed to be compatible with the Arduino UNO R3 headers, enabling an easy to start experience with the <span class="simple">Simple<span class="foc">FOC</span>library</span> and the Arduino IDE. The boards can be used with any board with the standard Arduino headers, such as the Arduino MEGA, STM32 Nucleo boards, Adafruit Metro, ESP32 D1 R3, Arduino UNO R4 and many others. This format enables users to easily exchange the microcontrollers and find the best solution for their application. The boards are fully open-source and the fabrication files are available in the respective repositories, as well as detailed guides on how to fabricate the boards yourself. The boards are additionally available in the [shop](https://www.simplefoc.com/shop) for those who prefer to buy them, as well as on other mainstream platforms like Aliexpress and Ebay (no relation to the <span class="simple">Simple<span class="foc">FOC</span>project</span>).


### <span class="simple">Simple<span class="foc">FOC</span>Shield</span> <small>v3.2</small> - <small>[Find out more](arduino_simplefoc_shield_showcase)</small>
Expand Down Expand Up @@ -86,26 +86,26 @@ A powerful arduino shield for running BLDC motors using the FOC algorithm. This

<blockquote class="warning" markdown="1">
<p class="heading"> ⚠️ BEWARE: BTN8982/IFX007T performance issues</p>
BTN8982 and IFX007T drivers have been designed for DC motors and are based on old H-bridge technology. They have very long mosfet rise time (multiple microseconds) which in many cases presents a considerable part of the PWM duty cycle. When runnig the BLDC motors, precise PWM duty cycle setting is crutial for smooth and efficient operation. Therefore these drivers will not be able to provide very smooth operation on high frequency PWM (above 15kHz). Read more about it in the community thread: [link](https://community.simplefoc.com/t/simplefoc-powershield/582).<br>
BTN8982 and IFX007T drivers have been designed for DC motors and are based on old H-bridge technology. They have very long mosfet rise time (multiple microseconds) which in many cases presents a considerable part of the PWM duty cycle. When running the BLDC motors, precise PWM duty cycle setting is crucial for smooth and efficient operation. Therefore these drivers will not be able to provide very smooth operation on high frequency PWM (above 15kHz). Read more about it in the community thread: [link](https://community.simplefoc.com/t/simplefoc-powershield/582).<br>
This performance constraint is the main reason why the <span class="simple">Simple<span class="foc">FOC</span> <b>Power</b>Shield</span> project has for now been put on hold, and although these boards are available through Aliexpress and some other platforms, they will not be available through simplefoc.com.
<br><br>

This does not mean that the board itself is not functional or that it will not work in your project though. It is still one of the cheepest (simplest) solutions out there for mid to high power BLDC control and with proper tuning of control loops you will still be able to get some good results with it.
This does not mean that the board itself is not functional or that it will not work in your project though. It is still one of the cheapest (simplest) solutions out there for mid to high power BLDC control and with proper tuning of control loops you will still be able to get some good results with it.
</blockquote>

### Features
{: .no_toc }
- **Plug & play**: In combination with Arduino <span class="simple">Simple<span class="foc">FOC</span>library</span>
- **Low-cost**: Fabrication price under €25/pcs - **⚠️ will not be sold by silplefoc.com**
- **Low-cost**: Fabrication price under €25/pcs - **⚠️ will not be sold by simplefoc.com**
- **High-side current sensing**: - not yet supported by *Simple**FOC**library*
- **In-line current sensing**: - supported by *Simple**FOC**library*
- **Max power <500W**: max current 30A, power-supply 24V
- **Arduino headers**: Arduino UNO, Arduino MEGA, STM32 Nucleo boards, Aruidno DUE...
- **Arduino headers**: Arduino UNO, Arduino MEGA, STM32 Nucleo boards, Arduino DUE...
- **Small size**: 53mm x 60mm
- **Encoder/Hall sensors interface**: Integrated 3.3kΩ pullups (configurable)
- **Open Source**:
- Fully available fabrication files
- If never done it before, see a similar guide for *Simple**FOC**Shueld*: [how to make it yourself](https://docs.simplefoc.com/arduino_simplefoc_shield_fabrication)
- If never done it before, see a similar guide for *Simple**FOC**shield*: [how to make it yourself](https://docs.simplefoc.com/arduino_simplefoc_shield_fabrication)
- Altium project
- 3d model
- schematics
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ EN | Driver Enable
Version v1.1 of the <span class="simple">Simple<span class="foc">FOC</span>Mini</span> has the order of the IN1,IN2,IN3 and EN changed with respect to the v1.0.
</blockquote>

These pins need to ba connected whenever using the <span class="simple">Simple<span class="foc">FOC</span>Mini</span>. The 3 pwm pins and the enable pin are used to control the DRV8313 driver and in terms of the <span class="simple">Simple<span class="foc">FOC</span>library</span> they correspond to the entries of the `BLDCDriver3PWM` class. The common ground pin is very important as well in order to make sure that all the PWM and Enable pins are read properly by the driver chip. Once you decide which pins you will be using for `INx` and `EN` pins you will be able to porvide them to the `BLDCDriver3PWM` class in your Arduino sketch.
These pins need to ba connected whenever using the <span class="simple">Simple<span class="foc">FOC</span>Mini</span>. The 3 pwm pins and the enable pin are used to control the DRV8313 driver and in terms of the <span class="simple">Simple<span class="foc">FOC</span>library</span> they correspond to the entries of the `BLDCDriver3PWM` class. The common ground pin is very important as well in order to make sure that all the PWM and Enable pins are read properly by the driver chip. Once you decide which pins you will be using for `INx` and `EN` pins you will be able to provide them to the `BLDCDriver3PWM` class in your Arduino sketch.

```cpp
BLDCDriver3PWM driver = BLDCDriver3PWM(IN1, IN2, IN3, EN);
Expand All @@ -64,7 +64,7 @@ nFT | Fault output (active LOW)
DRV8313 comes with the 3.3V voltage regulator and it is connected to the <span class="simple">Simple<span class="foc">FOC</span>Mini</span>'s 3.3V pin. However it has a limitation of 10mA, which is in general not enough to power a microcontroller. But it might be enough to power a LED light or some position sensors.
</blockquote>

Pin `nFT` (fault) is an active LOW output of the <span class="simple">Simple<span class="foc">FOC</span>Mini</span> which can be read to verify if the DRV8313 driver is working properly. If this pin is in LOW it means the DRV8313 is its fault state and it cannot drive the motor. Then the pin `nRT` (reset), which is also active LOW, can be used to reset the DRV8313 driver to reinitialise its internal state and exit the fault state, this cannot be done by simply toggling the enable pin. Finally the pin `nSP` (sleep) is an active LOW pin that puts the DRV8313 in the low-power sleep mode, consuming the current of under 1uA.
Pin `nFT` (fault) is an active LOW output of the <span class="simple">Simple<span class="foc">FOC</span>Mini</span> which can be read to verify if the DRV8313 driver is working properly. If this pin is in LOW it means the DRV8313 is its fault state and it cannot drive the motor. Then the pin `nRT` (reset), which is also active LOW, can be used to reset the DRV8313 driver to reinitialize its internal state and exit the fault state, this cannot be done by simply toggling the enable pin. Finally the pin `nSP` (sleep) is an active LOW pin that puts the DRV8313 in the low-power sleep mode, consuming the current of under 1uA.



Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ nFT | Fault output (active LOW)
DRV8313 comes with the 3.3V voltage regulator and it is connected to the <span class="simple">Simple<span class="foc">FOC</span>Mini</span>'s 3.3V pin. However it has a limitation of 10mA, which is in general not enough to power a microcontroller. But it might be enough to power a LED light or some position sensors.
</blockquote>

Pin `nFT` (fault) is an active LOW output of the <span class="simple">Simple<span class="foc">FOC</span>Mini</span> which can be read to verify if the DRV8313 driver is working properly. If this pin is in LOW it means the DRV8313 is its fault state and it cannot drive the motor. Then the pin `nRT` (reset), which is also active LOW, can be used to reset the DRV8313 driver to reinitialise its internal state and exit the fault state, this cannot be done by simply toggling the enable pin. Finally the pin `nSP` (sleep) is an active LOW pin that puts the DRV8313 in the low-power sleep mode, consuming the current of under 1uA.
Pin `nFT` (fault) is an active LOW output of the <span class="simple">Simple<span class="foc">FOC</span>Mini</span> which can be read to verify if the DRV8313 driver is working properly. If this pin is in LOW it means the DRV8313 is its fault state and it cannot drive the motor. Then the pin `nRT` (reset), which is also active LOW, can be used to reset the DRV8313 driver to reinitialize its internal state and exit the fault state, this cannot be done by simply toggling the enable pin. Finally the pin `nSP` (sleep) is an active LOW pin that puts the DRV8313 in the low-power sleep mode, consuming the current of under 1uA.



Expand Down
2 changes: 1 addition & 1 deletion docs/boards/simplefoc_mini/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ This project can be entirely done by using the <span class="simple">Simple<span
## Project example : Steer by wire - bidirectional haptic control examples
<iframe class="youtube" src="https://www.youtube.com/embed/xTlv1rPEqv4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

This video demonstrates <span class="simple">Simple<span class="foc">FOC</span>Shield</span> support for stacking with Arudino UNO and STM32 Nucleo-64 board. As well as support for different sensors magnetic and encoders with relatively large precision span.
This video demonstrates <span class="simple">Simple<span class="foc">FOC</span>Shield</span> support for stacking with Arduino UNO and STM32 Nucleo-64 board. As well as support for different sensors magnetic and encoders with relatively large precision span.

The control algorithms implemented in this project are :
- **Steer by wire** (force feedback): two motors with virtually coupled positions
Expand Down
2 changes: 1 addition & 1 deletion docs/boards/simplefoc_mini/mini_fabrication.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ The BOM and CPL files should be loaded automatically so then you should be able
<p><img src="extras/Images/mini_fab (8).png" class="width60"></p>
In the next window you will see all the components that are shown in the BOM (Bill of materials), here I'd suggest you do uncheck the two through hole female header components H1 and P1. And everything else should be fine, you can click ***Next***.
<p><img src="extras/Images/mini_fab (9).png" class="width60"></p>
And that is it, the last window will show your purchase summary and show you the visualisation of the board. The only thing left to do is to save it to teh cart and go through the payment and shipping information.
And that is it, the last window will show your purchase summary and show you the visualization of the board. The only thing left to do is to save it to teh cart and go through the payment and shipping information.
<p><img src="extras/Images/mini_fab (1).png" class="width60"></p>


Expand Down
2 changes: 1 addition & 1 deletion docs/boards/simplefoc_shield/fabrication/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ To check the release timeline, click [here](https://github.com/simplefoc/Arduino

Version |link | Release date | Comment
----- | ----- | ---- | ----
*Simple**FOC**Shield* **v1.3** |[release v1.3](https://github.com/simplefoc/Arduino-SimpleFOCShield/releases/tag/v1.3) | 04/20 | Inital release
*Simple**FOC**Shield* **v1.3** |[release v1.3](https://github.com/simplefoc/Arduino-SimpleFOCShield/releases/tag/v1.3) | 04/20 | initial release
*Simple**FOC**Shield* v1.3.1 | [release v1.3.1](https://github.com/simplefoc/Arduino-SimpleFOCShield/releases/tag/v1.3.1) | 07/20 | added Nucleo stacking support
*Simple**FOC**Shield* v1.3.2 |[release v1.3.2](https://github.com/simplefoc/Arduino-SimpleFOCShield/releases/tag/v1.3.2) | 09/20 | added I2C pullups
*Simple**FOC**Shield* v1.3.3 |[release v1.3.3](https://github.com/simplefoc/Arduino-SimpleFOCShield/releases/tag/v1.3.3) | 12/20 | adapted L6234 circuit + full Arduino header
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ To check the release timeline, click [here](https://github.com/simplefoc/Arduino

Version | link | Release date | Comment
----- | ----- | ---- | ----
*Simple**FOC**Shield* v1.3 |[release v1.3](https://github.com/simplefoc/Arduino-SimpleFOCShield/releases/tag/v1.3) | 04/20 | Inital release
*Simple**FOC**Shield* v1.3 |[release v1.3](https://github.com/simplefoc/Arduino-SimpleFOCShield/releases/tag/v1.3) | 04/20 | initial release
*Simple**FOC**Shield* v1.3.1 | [release v1.3.1](https://github.com/simplefoc/Arduino-SimpleFOCShield/releases/tag/v1.3.1) | 07/20 | added Nucleo stacking support
*Simple**FOC**Shield* v1.3.2 |[release v1.3.2](https://github.com/simplefoc/Arduino-SimpleFOCShield/releases/tag/v1.3.2) | 09/20 | added I2C pullups
*Simple**FOC**Shield* v1.3.3 |[release v1.3.3](https://github.com/simplefoc/Arduino-SimpleFOCShield/releases/tag/v1.3.3) | 12/20 | adapted L6234 circuit + full Arduino header
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ The price of the fabrication will highly depend of the number of boards and the
But in most of cases it will always boil down to the price :)

## PCB fabrication + Self assembly
Even though most of the components are big smd components and the board is intentionally made to me solderable by hand the curent sense amplifiers are going to be a bit more difficult. But if you are interested in this way of producing this board here is a quick guide how to make it.
Even though most of the components are big smd components and the board is intentionally made to me solderable by hand the current sense amplifiers are going to be a bit more difficult. But if you are interested in this way of producing this board here is a quick guide how to make it.

### PCB fabrication
Download the [<i class="fa fa-file"></i> gerber files](https://github.com/simplefoc/Arduino-SimpleFOCShield) and provide them to your PCB manufacturer of choice. So far I have used [seeedstrudio](https://www.seeedstudio.com/) and [JLCPCB](https://jlcpcb.com/). The price of 10 PCBs is around 5\$ but the shipping was around 20\$.
Expand Down Expand Up @@ -165,7 +165,7 @@ Here is a complete list of all the components you will need to make the board:
<td><a href="https://eu.mouser.com/c/?q=C1206C104M5RECAUTO">C1206C104M5RECAUTO</a></td>
</tr>
<tr>
<td colspan="4"><b>Curent sense circuit</b></td>
<td colspan="4"><b>current sense circuit</b></td>
</tr>
<tr>
<td>CBY1</td>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ In general there are two main ways to fabricate the board:


## PCB fabrication + Self assembly
The version v3 of the shiled does not longer use big SMD components as the versions v1 nad v2 did. So this version is a bit more demanding to self fabricate as all the resistors, capacitors and diods have 0603 footprint (as oposed to 1206 for v1 and v2). However, if you are interested in this way of producing this board here is a quick guide how to make it.
The version v3 of the shield does not longer use big SMD components as the versions v1 nad v2 did. So this version is a bit more demanding to self fabricate as all the resistors, capacitors and diodes have 0603 footprint (as opposed to 1206 for v1 and v2). However, if you are interested in this way of producing this board here is a quick guide how to make it.

### PCB fabrication
Download the [<i class="fa fa-file"></i> gerber files](https://github.com/simplefoc/Arduino-SimpleFOCShield) and provide them to your PCB manufacturer of choice. So far I have used [seeedstrudio](https://www.seeedstudio.com/) and [JLCPCB](https://jlcpcb.com/). The price of 10 PCBs is around 5\$ but the shipping was around 20\$.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ toc: true
Connecting the Arduino <span class="simple">Simple<span class="foc">FOC</span>Shield</span> to the microcontroller, BLDC motor, power-supply and the sensors is very straight forward.

## Microcontroller
- Arduino <span class="simple">Simple<span class="foc">FOC</span>Shield</span> is designed to be easily stackable on all the devices featuring arduino headers, such as: [Arudino UNO](arduino_simplefoc_shield), Arudino MEGA, [Stm32 Nucleo](nucleo_connection) and similar.
- Arduino <span class="simple">Simple<span class="foc">FOC</span>Shield</span> is designed to be easily stackable on all the devices featuring arduino headers, such as: [Arduino UNO](arduino_simplefoc_shield), Arduino MEGA, [Stm32 Nucleo](nucleo_connection) and similar.
- Bit it can also be used as a standalone BLDC driver as shown in combination with [Stm32 Bluepill](bluepill_connection).

## BLDC motor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,4 +127,4 @@ BLDCDriver3PWM driver1 = BLDCDriver3PWM(9, 10, 6, 8);
BLDCDriver3PWM driver2 = BLDCDriver3PWM(3, 5, 13, 7);
```

<blockquote class="info"><p class="heading">Pin 13 or pin 11</p> We advise you to try first with the pin 13 configured and then with pin 11 if this does not work. Tested boards are Nucleo-F401RE - pin 13 works / pin 11 doesn't and Nucleo-F466RE pin 11 works/ pin 13 doesnt.</blockquote>
<blockquote class="info"><p class="heading">Pin 13 or pin 11</p> We advise you to try first with the pin 13 configured and then with pin 11 if this does not work. Tested boards are Nucleo-F401RE - pin 13 works / pin 11 doesn't and Nucleo-F466RE pin 11 works/ pin 13 doesn't.</blockquote>
2 changes: 1 addition & 1 deletion docs/boards/simplefoc_shield/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ For full documentation of necessary components, design choices and the code plea
## Project example : Steer by wire - bidirectional haptic control examples
<iframe class="youtube" src="https://www.youtube.com/embed/xTlv1rPEqv4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

This video demonstrates <span class="simple">Simple<span class="foc">FOC</span>Shield</span> support for stacking with Arudino UNO and STM32 Nucleo-64 board. As well as support for different sensors magnetic and encoders with relatively large precision span.
This video demonstrates <span class="simple">Simple<span class="foc">FOC</span>Shield</span> support for stacking with Arduino UNO and STM32 Nucleo-64 board. As well as support for different sensors magnetic and encoders with relatively large precision span.

The control algorithms implemented in this project are :
- **Steer by wire** (force feedback): two motors with virtually coupled positions
Expand Down
Loading