Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
bd83388
add a angle_nocascade mode
Feb 10, 2024
eabbfff
Merge remote-tracking branch 'simplefoc/dev' into nocascade
Feb 10, 2024
b0deb22
add nocascade case to commander
Feb 18, 2024
9f90d0a
add nocascade to Commander
Feb 18, 2024
26fbea0
Autotuning
Candas1 Jul 21, 2024
98d08e6
Fix the issue of abnormal modification of motion_rownsample
CodeMan-P Oct 12, 2024
83c6276
change velocity calc to not update unless an angle change is observed.
Copper280z Feb 22, 2025
06d9eab
add feed forward terms for current and voltage
Copper280z Feb 22, 2025
77c38a4
angle GREATER than epsilon
Copper280z Feb 26, 2025
a9ef741
Merge pull request #454 from Copper280z/ff_dev
runger1101001 Jul 28, 2025
e8f777e
Merge pull request #453 from Copper280z/velocity_rework
runger1101001 Jul 28, 2025
26215fb
stm32 define guards to avoid unecessary crashing
askuric Aug 1, 2025
3f6a73e
current sense alignement
askuric Aug 11, 2025
7748a9d
refactor esp32 cs dirver to remove magic numbers #296 #465
askuric Aug 21, 2025
3721f85
allow older esp32 version to compile with the v2.3.6 #462
askuric Aug 21, 2025
65e4c2f
remove the sketch align_current_sense for UNO
askuric Aug 21, 2025
da7cea0
resolve the compiler issues with the SPI encoder init structures #95
askuric Aug 21, 2025
1c584c3
refactor the driver sync for bg431
askuric Aug 21, 2025
fd066fa
prepare for v2.3.6
askuric Aug 21, 2025
0c86169
Merge pull request #482 from simplefoc/feat_bg341_sync_lost_fix
askuric Aug 23, 2025
bf74c7c
Add Silabs drivers and examples
silabs-szabog Sep 2, 2025
9d6503f
Fixing tests for EFR32 (Exclude from general arduino uno tests)
MarkWendler Sep 11, 2025
c5637b8
Added basic docs for Silabs examples
MarkWendler Sep 11, 2025
66aaec3
Updating Silab docs
MarkWendler Sep 11, 2025
ace0156
Fixes minor ambiguities in comments
silabs-SebestyenK Sep 12, 2025
57045ce
Fixing HW dependent inclusion
MarkWendler Sep 22, 2025
7cfd709
silabs test workflow added
MarkWendler Sep 23, 2025
1520b63
Merge pull request #485 from silabs-szabog/feat_support_efr32
runger1101001 Sep 24, 2025
b8f25df
Set ledc_channel.sleep_mode to LEDC_SLEEP_MODE_KEEP_ALIVE
bisak Sep 30, 2025
3abbbfc
Move the mcpwm on_full callback entry point to the IRAM.
uLipe Oct 10, 2025
6703dfe
ESP32: improve the execution speed of PWM drivers.
uLipe Oct 13, 2025
4e933aa
Merge pull request #492 from uLipe/feature/improve_mcpwm
runger1101001 Oct 14, 2025
7f45dca
Merge pull request #490 from uLipe/feature/esp32_adc_iram
runger1101001 Oct 14, 2025
a3991eb
ESP32: move runtime ADC reading functions to IRAM.
uLipe Oct 12, 2025
36df015
Merge pull request #491 from uLipe/feature/esp32_low_side_adc_iram
runger1101001 Oct 14, 2025
46f543f
Merge pull request #489 from bisak/bugfix/c3-ledc-sleep-mode
runger1101001 Oct 14, 2025
f5331e0
ESP32: replaced the mod base circular increment
uLipe Oct 15, 2025
9c616ba
ESP32: reorder the ADC buffer increment
uLipe Oct 16, 2025
c4e8470
Merge pull request #493 from uLipe/enhance/replace_mod
runger1101001 Oct 20, 2025
dde5cb1
g431-esc: use internal ADC channels, also fix some typos
Moddingear Sep 25, 2025
4471418
driver: adc_esp32: protect the adc reading against core migration.
uLipe Oct 31, 2025
576ed19
fix unintialized adc1 channel 13 (op1) parameters
Moddingear Nov 2, 2025
a0d29b6
free vout pin on internal opamp channel usage - bg431-esc1
Moddingear Nov 2, 2025
785cf0a
better mechanism to enable internal channels - bg431-esc1
Moddingear Nov 2, 2025
8593db4
Fix invalid conversion from int to functionnal state
Moddingear Nov 2, 2025
5e04a52
Merge pull request #487 from Moddingear/dev
runger1101001 Nov 2, 2025
8c02a8a
fix minor magnetic_sensor_i2c warning
Moddingear Nov 4, 2025
0b7e25b
Merge pull request #496 from Moddingear/magnetic_sensor_i2c
runger1101001 Nov 5, 2025
a916bfa
Update teensy4_mcu.cpp _writeDutyCycle6PWM to handle phase_state
Ragiton Nov 5, 2025
d283f2a
Injected rank check bugfix
askuric Dec 18, 2025
ddc6d04
commander add loop times
askuric Dec 18, 2025
8f674b6
Merge pull request #495 from uLipe/feauture/adc_spinlock
askuric Dec 18, 2025
1d1d57c
Merge pull request #498 from Ragiton/teensy_6pwm_coasting_patch
askuric Dec 18, 2025
2d78e7e
Merge pull request #438 from CodeMan-P/patch-1
askuric Dec 18, 2025
246367b
better management of debugging #499
askuric Dec 18, 2025
f1d9200
bugfix for #499
askuric Dec 18, 2025
283f20b
debug stm32 flag issue
askuric Dec 19, 2025
b5557db
added the estimated curret torque control mode
askuric Dec 19, 2025
ef9fe50
Merge branch 'dev' into autotuning
askuric Dec 19, 2025
bd6e919
inital autotuning implementation
askuric Dec 19, 2025
e897329
avoid calculating SVPWM if not centered
askuric Dec 19, 2025
a48bcb6
Merge branch 'dev' into Candas1-autotuning
askuric Dec 19, 2025
d597493
a big refactor without breaking the API
askuric Dec 20, 2025
96be937
typo with dt isset
askuric Dec 22, 2025
d73aea5
typo + inductance
askuric Dec 22, 2025
483d921
forgotten use
askuric Dec 23, 2025
877699b
esp32 comparator is possible
askuric Dec 23, 2025
9d16ec5
Merge remote-tracking branch 'origin/dev' into dev
askuric Dec 23, 2025
3b2499f
Merge remote-tracking branch 'origin/dev' into Candas1-autotuning
askuric Dec 23, 2025
23f57b6
todo comment
askuric Dec 23, 2025
9d0ecd1
initial support for multiple motors
askuric Dec 23, 2025
6070149
typo
askuric Dec 23, 2025
68120bf
inital support for reading regular channels
askuric Jan 7, 2026
7eedddf
ll include
askuric Jan 7, 2026
ba432cb
no offset for f1
askuric Jan 7, 2026
f3306b3
Merge pull request #503 from simplefoc/feat_stm32_multiple_motors
askuric Jan 9, 2026
10af094
Merge branch 'feat_stm32_read_regular_while_injected_running' into dev
askuric Feb 7, 2026
b9aea23
typo in h7
askuric Feb 7, 2026
7d8891a
Merge branch 'dev' into nocascade
askuric Feb 7, 2026
5caa643
Merge pull request #384 from runger1101001/nocascade
askuric Feb 7, 2026
3ea40a8
Merge branch 'dev' into Candas1-autotuning
askuric Feb 7, 2026
def3e82
Merge pull request #504 from simplefoc/Candas1-autotuning
askuric Feb 7, 2026
978f5e2
merge full
askuric Feb 7, 2026
e019bd9
typo in h7
askuric Feb 7, 2026
153ccf8
final merge commit
askuric Feb 7, 2026
92fef44
added param measuring to commander
askuric Feb 7, 2026
38801b3
add TODO for correction factor
askuric Feb 7, 2026
a8e5793
allow passing initFOC if only current sense
askuric Feb 7, 2026
cec8df0
fist implementation of the custom motion control type
askuric Feb 10, 2026
18fbfe6
added an example
askuric Feb 10, 2026
b9fa9ee
remove unnecessary things
askuric Feb 10, 2026
9b0c133
rename set to link
askuric Feb 10, 2026
af997e6
Merge pull request #514 from simplefoc/feat_custom_motion_control
askuric Feb 10, 2026
22e19c7
enabled cross coupling and phase lag compensation for foc_current
askuric Feb 10, 2026
9995643
allow clock_speed in constructor
askuric Feb 10, 2026
0f4300e
lag better with sp than with measured
askuric Feb 10, 2026
823126b
Merge pull request #515 from simplefoc/feat_allow_spi_clock_speed_change
askuric Feb 10, 2026
d170176
renamed inductacne
askuric Feb 10, 2026
20baaec
Merge remote-tracking branch 'origin/dev' into dev
askuric Feb 10, 2026
1aeb15a
final updates
askuric Feb 17, 2026
461264a
typo
askuric Feb 17, 2026
63bc8f4
typo again
askuric Feb 17, 2026
c80c0df
set target to 0 before initFOC
askuric Feb 18, 2026
1bc35a6
stop move and loopFOC on calibration only
askuric Feb 18, 2026
2eda92c
doxygen
askuric Feb 18, 2026
40a31a8
examples updated
askuric Feb 18, 2026
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
11 changes: 10 additions & 1 deletion .github/workflows/arduino.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,16 @@ jobs:
- arduino-boards-fqbn: arduino:avr:uno # arudino uno - compiling almost all examples
sketch-names: '**.ino'
required-libraries: PciManager
sketches-exclude: measure_inductance_and_resistance, teensy4_current_control_low_side, full_control_serial, angle_control, bluepill_position_control, esp32_position_control, esp32_i2c_dual_bus_example, stm32_i2c_dual_bus_example, magnetic_sensor_spi_alt_example, osc_esp32_3pwm, osc_esp32_fullcontrol, nano33IoT_velocity_control, smartstepper_control,esp32_current_control_low_side, stm32_spi_alt_example, esp32_spi_alt_example, B_G431B_ESC1, odrive_example_spi, odrive_example_encoder, single_full_control_example, double_full_control_example, stm32_current_control_low_side, open_loop_velocity_6pwm
sketches-exclude: align_current_sense, measure_inductance_and_resistance,
teensy4_current_control_low_side, full_control_serial, angle_control,
bluepill_position_control, esp32_position_control, esp32_i2c_dual_bus_example,
stm32_i2c_dual_bus_example, magnetic_sensor_spi_alt_example, osc_esp32_3pwm,
osc_esp32_fullcontrol, nano33IoT_velocity_control, smartstepper_control,
esp32_current_control_low_side, stm32_spi_alt_example, esp32_spi_alt_example,
B_G431B_ESC1, odrive_example_spi, odrive_example_encoder, single_full_control_example,
double_full_control_example, stm32_current_control_low_side, open_loop_velocity_6pwm,
efr32_hall_sensor_velocity_6pwm, efr32_open_loop_velocity_6pwm, efr32_torque_velocity_6pwm,
custom_motion_control

- arduino-boards-fqbn: arduino:sam:arduino_due_x # arduino due - one full example
sketch-names: single_full_control_example.ino
Expand Down
67 changes: 67 additions & 0 deletions .github/workflows/doxygen.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Generate and Deploy Doxygen Documentation

on:
push:
branches:
- master
- main
- dev
release:
types: [published]
workflow_dispatch: # Allow manual trigger

permissions:
contents: read
pages: write
id-token: write

# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true

jobs:
build-doxygen:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: false

- name: Install Doxygen and GraphViz
run: |
sudo apt-get update
sudo apt-get install -y doxygen graphviz
doxygen --version
dot -V

- name: Generate Doxygen Documentation
run: |
cd ${{ github.workspace }}
doxygen Doxyfile

- name: Check generated documentation
run: |
ls -la docs/html/
echo "Documentation generated successfully!"
echo "Total files: $(find docs/html -type f | wc -l)"

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: 'docs/html'

deploy:
needs: build-doxygen
runs-on: ubuntu-latest

environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
41 changes: 41 additions & 0 deletions .github/workflows/silabs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: SILABS
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: arduino/arduino-lint-action@v1
with:
library-manager: update
project-type: library
build:
name: Test compiling
runs-on: ubuntu-latest

strategy:
matrix:
arduino-boards-fqbn:
- SiliconLabs:silabs:nano_matter # efr32 nano matter

include:

- arduino-boards-fqbn: SiliconLabs:silabs:nano_matter
platform-url: https://siliconlabs.github.io/arduino/package_arduinosilabs_index.json
sketch-names: efr32_hall_sensor_velocity_6pwm.ino, efr32_open_loop_velocity_6pwm.ino, efr32_torque_velocity_6pwm.ino

# Do not cancel all jobs / architectures if one job fails
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@master
- name: Compile all examples
uses: ArminJo/arduino-test-compile@master
with:
arduino-board-fqbn: ${{ matrix.arduino-boards-fqbn }}
required-libraries: ${{ matrix.required-libraries }}
platform-url: ${{ matrix.platform-url }}
sketch-names: ${{ matrix.sketch-names }}
sketches-exclude: ${{ matrix.sketches-exclude }}
build-properties: ${{ toJson(matrix.build-properties) }}

27 changes: 18 additions & 9 deletions .github/workflows/stm32.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,14 @@ jobs:
strategy:
matrix:
arduino-boards-fqbn:
- STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 # stm32 bluepill
- STMicroelectronics:stm32:Nucleo_64:pnum=NUCLEO_F411RE # stm32 nucleo
- STMicroelectronics:stm32:Nucleo_144:pnum=NUCLEO_F746ZG # stm32 nucleo f746zg
- STMicroelectronics:stm32:GenF4:pnum=GENERIC_F405RGTX # stm32f405 - odrive
- STMicroelectronics:stm32:GenL4:pnum=GENERIC_L475RGTX # stm32l475
- STMicroelectronics:stm32:Disco:pnum=B_G431B_ESC1 # B-G431-ESC1
- STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 # stm32 bluepill
- STMicroelectronics:stm32:Nucleo_64:pnum=NUCLEO_F411RE # stm32 nucleo
- STMicroelectronics:stm32:Nucleo_144:pnum=NUCLEO_F746ZG # stm32 nucleo f746zg
- STMicroelectronics:stm32:GenF4:pnum=GENERIC_F405RGTX # stm32f405 - odrive
- STMicroelectronics:stm32:GenL4:pnum=GENERIC_L475RGTX # stm32l475
- STMicroelectronics:stm32:Disco:pnum=B_G431B_ESC1 # B-G431-ESC1
- STMicroelectronics:stm32:Nucleo_144:pnum=NUCLEO_H723ZG # stm32h7
- STMicroelectronics:stm32:Nucleo_64:pnum=NUCLEO_G431RB # stm32g4

include:
- arduino-boards-fqbn: STMicroelectronics:stm32:GenF1:pnum=BLUEPILL_F103C8 # bluepill - hs examples
Expand All @@ -45,12 +47,19 @@ jobs:

- arduino-boards-fqbn: STMicroelectronics:stm32:Nucleo_64:pnum=NUCLEO_F411RE # nucleo one full example
platform-url: https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
sketch-names: single_full_control_example.ino, stm32_spi_alt_example.ino, double_full_control_example.ino, stm32_current_control_low_side.ino
sketch-names: single_full_control_example.ino, stm32_spi_alt_example.ino, double_full_control_example.ino, stm32_current_control_low_side.ino, custom_motion_control.ino

- arduino-boards-fqbn: STMicroelectronics:stm32:Nucleo_144:pnum=NUCLEO_F746ZG # nucleo f7 one full example
platform-url: https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
sketch-names: single_full_control_example.ino, stm32_spi_alt_example.ino, double_full_control_example.ino, stm32_current_control_low_side.ino

sketch-names: single_full_control_example.ino, stm32_spi_alt_example.ino, double_full_control_example.ino, stm32_current_control_low_side.ino, custom_motion_control.ino

- arduino-boards-fqbn: STMicroelectronics:stm32:Nucleo_144:pnum=NUCLEO_H723ZG # nucleo h7 one full example
platform-url: https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
sketch-names: single_full_control_example.ino, stm32_spi_alt_example.ino, double_full_control_example.ino, stm32_current_control_low_side.ino, custom_motion_control.ino

- arduino-boards-fqbn: STMicroelectronics:stm32:Nucleo_64:pnum=NUCLEO_G431RB # stm32g4 one full example
platform-url: https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
sketch-names: single_full_control_example.ino, stm32_spi_alt_example.ino, double_full_control_example.ino, stm32_current_control_low_side.ino, custom_motion_control.ino

# Do not cancel all jobs / architectures if one job fails
fail-fast: false
Expand Down
Loading
Loading