Skip to content

Commit f1b2225

Browse files
committed
FEAT added shield 1.3.2 and a bit of teasers for new features
1 parent 777e429 commit f1b2225

File tree

11 files changed

+147
-73
lines changed

11 files changed

+147
-73
lines changed

docs/simplefoc_library/index.md

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,31 @@ has_toc: False
1515
![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)
1616
![arduino-library-badge](https://www.ardu-badge.com/badge/Simple%20FOC.svg?)
1717

18-
This Arduino library implements Field Oriented Control (FOC) algorithm for BLDC motors. FOC algorithm produces incomparably smooth operation and high degree of torque, velocity and position control.
18+
This Arduino library implements Field Oriented Control (FOC) algorithm for BLDC and Stepper motors. FOC algorithm produces incomparably smooth operation and high degree of torque, velocity and position control.
1919
The library is intended both for:
20-
- Beginners searching for a simple and *user-friendly* way to learn how to control BLDC motors
20+
- Beginners searching for a simple and *user-friendly* way to learn how to control BLDC and Stepper motors
2121
- Advanced users ready to dig deeper into the FOC algorithm and optimize the code for their particular application/hardware.
2222

23+
2324
## Features
24-
- **Arduino compatible**: Arduino library code version
25+
- **Arduino compatible**:
26+
- Arduino library code
2527
- Arduino Library Manager integration
2628
- **Open-Source**: Full code and documentation available on github
2729
- **Easy to setup and configure**:
28-
- Easy hardware configuration ([sensors](sensors), [BLDC motors](motor_initialization))
30+
- Easy hardware configuration
2931
- Easy [tuning the control loops](motion_control)
3032
- **Modular**:
31-
- Supports as many [sensors , BLDC motors and driver boards](supported_hardware) as possible
32-
- **Plug & play**: Especially in combination with the Arduino <span class="simple">Simple<span class="foc">FOC</span>Shield</span>
33+
- Supports multiple motors:
34+
- BLDC motors
35+
- Stepper motors
36+
- Support as many [sensors and driver boards](supported_hardware) as possible
37+
- Supports multiple [MCU architectures](microcontrollers):
38+
- Arduino: UNO, MEGA, any board with ATMega328 chips
39+
- STM32 boards: [Nucleo](https://www.st.com/en/evaluation-tools/stm32-nucleo-boards.html), [Bluepill](https://stm32-base.org/boards/STM32F103C8T6-Blue-Pill.html) ...
40+
- ESP32
41+
- Teensy boards
42+
- **Plug & play**: Arduino <span class="simple">Simple<span class="foc">FOC</span>Shield</span>
3343

3444
<blockquote class="info">📢 Arduino <span class="simple">Simple<span class="foc">FOC</span>library</span> will support any BLDC motor driver which can be driven with 3 PWM signals.</blockquote>
3545
<blockquote class="warning">📢

docs/simplefoc_library/work_roadmap.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ For more info about the features of library releases visit the [github releases
1313
## Motion Control and FOC algorithm
1414
- [ ] Motor control: Support for current control
1515
- [ ] Motor control: FOC using IMU - camera gimbal and similar applications
16+
- [x] **Motor control: Support for stepper motors**
1617
- [x] Motor control: Support for Hall sensor commutation
1718
- [x] Motor control: Support for fully open-loop operation (no sensor)
1819
- [x] Add support for acceleration ramping
@@ -23,17 +24,19 @@ For more info about the features of library releases visit the [github releases
2324
- [x] Implement Space Vector Modulation method : PWM SVM
2425

2526
## MCU support
26-
- [x] Device specific code separation: Easier porting in between devices
27+
- [x] Hardware specific code separation : easier porting in between devices `hardware_utils.cpp/.h`
28+
- [x] Teensy support
2729
- [x] ESP32 support
28-
- [x] Device specific: STM32 Nucleo support
29-
- [x] Device specific: STM32 BLuepill support
30+
- [x] STM32 Nucleo support
31+
- [x] STM32 BLuepill support
3032

3133
## Driver support
3234
- [ ] Driver support: Implement support for MOSFET control low and high pairs
3335
- [x] Driver support: DRV8302 borads
3436

3537
## Sensor support
3638
- [ ] IMU as position sensor
39+
- [ ] Back-EMF support
3740
- [ ] Make support for magnetic encoder SSI
3841
- [ ] Make support for magnetic encoder PWM
3942
- [x] Make support for magnetic encoder Analog

docs/simplefoc_shield/getting_started/code.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: default
33
title: Writing the code
44
parent: Getting Started
5-
description: "Arduino Simple Field Oriented Control (FOC) library ."
5+
description: "Writing the Arduino program for your SimpleFOCShield."
66
nav_order: 3
77
permalink: /foc_shield_code
88
grand_parent: Arduino <span class="simple">Simple<span class="foc">FOC</span>Shield</span>
@@ -97,6 +97,3 @@ motion_control >
9797
- hall_sensors
9898
```
9999
For more information about the possible <span class="simple">Simple<span class="foc">FOC</span>Shield</span> projects visit [example projects](examples)
100-
101-
<blockquote class="info"> <p class="heading">Thank you for your patience </p> The full documentation will be available soon! <br>
102-
At the moment this is just a brief overview of how to start. </blockquote>

docs/simplefoc_shield/getting_started/connections.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: default
33
title: Connecting the hardware
44
parent: Getting Started
5-
description: "Arduino Simple Field Oriented Control (FOC) library ."
5+
description: "Connecting SimpleFOCShield with your hardware."
66
nav_order: 2
77
permalink: /foc_shield_connect_hardware
88
grand_parent: Arduino <span class="simple">Simple<span class="foc">FOC</span>Shield</span>

docs/simplefoc_shield/getting_started/hardware_config.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: default
33
title: Soldering pads
44
parent: Getting Started
5-
description: "Arduino Simple Field Oriented Control (FOC) library ."
5+
description: "Configuring your SimpleFOCShield by soldering the pads."
66
nav_order: 1
77
permalink: /pads_soldering
88
grand_parent: Arduino <span class="simple">Simple<span class="foc">FOC</span>Shield</span>
@@ -18,13 +18,27 @@ Each board has a set of solder pads on the bottom side which are used for config
1818
- Enable / Disable pull-up resistors for encoder A,B and Index channel
1919
- Configure BLDC driver pinout (PWM pins A,B,C and enable pin)
2020

21-
## Enabling pull-up resistors
21+
<blockquote class="info"> <p class="heading">BEWARE 📢: Conductive ink </p>
22+
All the Arduino <span class="simple">Simple<span class="foc">FOC</span>Shield</span> boards will be initially tested and they will be shipped with initial configuration. The testing configuration will be done with use of conductive ink instead of soldering connections. Therefore once you have the board, if you wish to change configuration all you need to do is remove the ink with some wet paper wipe.
23+
</blockquote>
24+
25+
## Enabling encoder/hall sensor pull-up resistors
2226

2327
<img src="extras/Images/shield_bot_v131_pullup_enable.png" class="width30">
2428

2529
Each board has integrated set of three 3.3KOhm pull-up resistors for encoder channels A,B and Index (or Hall sensor U, V, W). The picture above shows how solder the pads in order to enable the Pull-up resistors.
2630
Not all encoders need the pull-up resistors, or better said, in general, most of them don't need them. For those of us who are looking for price optimization :slight_smile: , a lot of cheap Ebay/Aliexpress encoders will need them such as [600P ebay encoder <i class="fa fa-external-link"></i>](https://www.ebay.com/itm/360-600P-R-Photoelectric-Incremental-Rotary-Encoder-5V-24V-AB-Two-Phases-Shaft/254214673272?hash=item3b30601378:g:AZsAAOSwu~lcxosc) and similar.
2731

32+
## Enabling I2C pull-up resistors
33+
34+
<img src="extras/Images/shield_bot_v132_i2c_pullup_enable.png" class="width30">
35+
36+
From the shield [<i class="fa fa-tag"></i>version 1.3.2](https://github.com/simplefoc/Arduino-SimpleFOCShield/releases) the boards come with with 4.7KOhm pull-up resistors for I2C communication pins. The picture above shows how solder the pads in order to enable the Pull-up resistors.
37+
Not all I2C devices (especially Magnetic sensors) need the pull-up resistors, or better said, in general, most of them don't need them, especially with Arduino UNO. But it is very common to have problems interfacing these sensors with STM32 boards such as Nucleo-64. There you will need to enable the pullups or provide them yourself externally.
38+
<blockquote class="warning"><p class="heading">BEWARE: Stacking</p>
39+
If you are stacking the shields make and you wish to use the I2C pull-ups, make sure you enable them on one board at a time!
40+
</blockquote>
41+
2842
## Customizing pinout
2943

3044
Pinout customization of the <span class="simple">Simple<span class="foc">FOC</span>Shield</span> enables the board to be very flexible with using different sensors and additional arduino modules. But more importantly it enables the board to be stackable.
@@ -41,7 +55,7 @@ Encoder A | 3, A2, A3
4155
Encoder B | 2, A1
4256
Encoder I | 4, A0
4357

44-
<small>*From <span class="simple">Simple<span class="foc">FOC</span>Shield</span> version <i>v1.3.1</i></small>
58+
<small>*From <span class="simple">Simple<span class="foc">FOC</span>Shield</span> <a href="https://github.com/simplefoc/Arduino-SimpleFOCShield/releases">version <i>v1.3.1</i></a></small>
4559

4660
Now, there is a lot of possible pin configurations and not all of them are possible depending on the microcontroller and sensor you are using.
4761
For example, Arduino UNO only has 2 external interrupt pins, and they are pin `2` and `3`. Therefore when using the board with Arduino UNO and Encoder we will try to use pin `3` for encoder channel A and not for pwm A.

docs/simplefoc_shield/getting_started/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
layout: default
33
title: Getting Started
4-
description: "Arduino Simple Field Oriented Control (FOC) library ."
4+
description: "Getting started with Arduino SimpleFOCShield"
55
parent: Arduino <span class="simple">Simple<span class="foc">FOC</span>Shield</span>
66
nav_order: 1
77
permalink: /arduino_simplefoc_shield_getting_started

docs/simplefoc_shield/index.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,34 @@
11
---
22
layout: default
33
title: Arduino <span class="simple">Simple<span class="foc">FOC</span>Shield</span>
4-
description: "Arduino Simple Field Oriented Control (FOC) library ."
4+
description: "Arduino SimpleFOCShield board showcase."
55
nav_order: 2
66
permalink: /arduino_simplefoc_shield_showcase
77
has_children: true
88
has_toc: false
99
---
1010

1111

12-
# Arduino <span class="simple">Simple<span class="foc">FOC</span>Shield</span> <small><i>v1.3.1</i></small>
12+
# Arduino <span class="simple">Simple<span class="foc">FOC</span>Shield</span> <small><i>v1.3.2</i></small>
1313

1414
This is an open-source low-cost Brushless DC (BLDC) motor driver board intended primarily for low-power FOC applications up to 5Amps. The board is fully compatible with the Arduino UNO and all the boards with the standard Arduino headers.
1515
The <span class="simple">Simple<span class="foc">FOC</span>Shield</span>, in combination with the <span class="simple">Simple<span class="foc">FOC</span>library</span> provides *user-friendly* way to control BLDC motors both in hardware and software.
1616

1717
## YouTube demonstration video
1818
<iframe class="youtube" src="https://www.youtube.com/embed/G5pbo0C6ujE" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
1919

20-
## Features
20+
### Features
2121
- **Plug & play**: In combination with Arduino <span class="simple">Simple<span class="foc">FOC</span>library</span>
2222
- **Low-cost**: Price of €15 - [Check the pricing](https://www.simplefoc.com/simplefoc_shield_product)
2323
- **Max power 120W** - max current 5A, power-supply 12-24V
24-
- Designed for Gimbal motors with the internal resistance >10 Ω.
24+
- Designed for Gimbal motors with the internal resistance >10 Ωs.
2525
- **Stackable**: running 2 motors in the same time
26-
- **Encoder interface**: Integrated 3kΩ pullups (configurable)
26+
- **Encoder/Hall sensor interface**: Integrated 3.3kΩ pullups (configurable)
27+
- **I2C interface**: Integrated 4.7kΩ pullups (configurable)
2728
- **Configurable pinout**: Hardware configuration - soldering connections
2829
- **Arduino headers**: Arduino UNO, Arduino MEGA, STM32 Nucleo boards...
29-
- **Open Source**: Fully available fabrication files - [how to make it yourself](arduino_simplefoc_shield_fabrication)
30-
30+
- **Open Source**: Fully available fabrication files - [how to make it yourself](arduino_simplefoc_shield_fabrication),
31+
3132
<blockquote class="warning">
3233
<p class="heading">BEWARE</p>
3334
This BLDC driver board is primarily designed for gimbal motors with the internal resistance of R >10 Ω. Please make sure that your motor fits in this category before deciding to use the <span class="simple">Simple<span class="foc">FOC</span>Shield</span>.

0 commit comments

Comments
 (0)