Releases: simplefoc/Arduino-FOC
Releases · simplefoc/Arduino-FOC
v2.3.4
SimpleFOClibrary v2.3.4
Some of the most important features
- ESP32 MCUs extended support #414
- Transition to the arduino-esp32 version v3.x (ESP-IDF v5.x) #387
- New support for MCPWM driver
- New support for LEDC drivers - center-aligned PWM and 6PWM available
- Rewritten and simplified the fast ADC driver code (
adcRead
) - for low-side and inline current sensing.
- Stepper motors current sensing support #421
- Support for current sensing (low-side and inline) - see in docs
- Support for true FOC control -
foc_current
torque control - see in docs
- New current sense alignment procedure #422 - see in docs
- Support for steppers
- Much more robust and reliable
- More verbose and informative
- Support for HallSensors without interrupts #424 - see in docs
- Docs
- A short guide to the units in the library - see in docs
- See the complete list of bugfixes and new features of v2.3.4 fixes and PRs
What's Changed
- fix RP2040 compile problems with earlehillpower by @runger1101001 in #397
- Merge teensy updates from master branch by @runger1101001 in #399
- move setting target to start of move() #404 by @runger1101001 in #405
- add MT6701 I2C sensor configuration by @runger1101001 in #406
- Added gain documentation to B_G431B_ESC1.ino by @rob-deutsch in #407
- 408 feature support for arduino esp32 v301 current sensing by @askuric in #414
- 390 support for the new esp32 ledc library api by @askuric in #410
- 408 feature support for arduino esp32 v301 by @askuric in #411
- Fix for #415 sin/cos integer overflow on 16-bit CPUs by @dekutree64 in #416
- Hall sensor without interrupt by @Candas1 in #424
- Feat new cs align by @askuric in #422
- Feat stepper current sensing by @askuric in #421
- Dev to master for the release v2.3.4 by @askuric in #425
New Contributors
- @rob-deutsch made their first contribution in #407
Full Changelog: v2.3.3...v2.3.4
v2.3.3
SimpleFOClibrary v2.3.3
Some of the most important features:
- STM32 MCUs
- Teensy4 MCUs
- KV rating calculation fix #347
- Much more performant Park/Clarke calculation #340
- And much more - see the complete list of bugfixes and new features of v2.3.3 fixes and PRs
What's Changed
- Stm32 adc no interrupt by @Candas1 in #341
- Foc refactoring by @Candas1 in #340
- Kv rating fix by @nmscode in #347
- Make timeout configurable in MagneticSensorPWM #348 by @runger1101001 in #354
- Fix some constants, update library files for next release by @runger1101001 in #358
- Prevent double constants by @Candas1 in #359
- Add library.json to set libArchive #357 by @runger1101001 in #360
- Add currentsense.enable/disable by @runger1101001 in #365
- expose result of PP check by @runger1101001 in #368
- RP2040: respect pin nrs on boards which remap them by @runger1101001 in #369
- Fix bug in ATMega sine computation by @runger1101001 in #373
- initFOC: remove unnecessary delay by @Schnilz in #370
- [BUGFIX] Injected channel by @askuric in #371
- Feat stm32 synctimers by @askuric in #374
- Update stm32_mcu.cpp by @Candas1 in #378
- Use interrupt if no repetition counter by @Candas1 in #383
- Analogread by @Candas1 in #385
- Add missing implementation for MagneticSensorI2C::AS5600 by @ystradmann in #389
- Set STM32 timer prescaler based on timer clock frequency by @Copper280z in #388
- Feat teensy4 lowside by @askuric in #392
- Move Ualpha and Ubeta to FOCMotor by @Candas1 in #326
- Add lowside current sensing for STM32F7 microcontrollers by @Copper280z in #394
- new CI by @askuric in #396
New Contributors
- @nmscode made their first contribution in #347
- @Schnilz made their first contribution in #370
- @ystradmann made their first contribution in #389
Full Changelog: v2.3.2...v2.3.3
v2.3.2
SimpleFOClibrary v2.3.2
- Improved space vector modulation code thanks to @Candas1
- Bugfix for stepper motor initialization
- Bugfix for current sensing when only 2 phase currents available - please re-check your current sense PID tuning
- Bugfix for teensy3.2 - #321
- Added teensy3/4 compile to the github CI using platformio
- Fix compile issues with recent versions of ESP32 framework
- Add ADC calibration on STM32 MCUs thanks to @Candas1
- Bugfix for crash when using ADC2 on ESP32s - thanks to @mcells
- Bugfix for renesas PWM on UNO R4 WiFi - thanks to @facchinm
- And more bugfixes - see the complete list of 2.3.2 fixes and PRs
v2.3.1
SimpleFOClibrary v2.3.1
- Support for Arduino UNO R4 Minima (Renesas R7FA4M1 MCU - note UNO R4 WiFi is not yet supported)
- Support setting PWM polarity on ESP32 (thanks to @mcells)
- Expose I2C errors in MagneticSensorI2C (thanks to @padok)
- Improved default trig functions (sine, cosine) - faster, smaller
- Overridable trig functions - plug in your own optimized versions
- Bugfix: microseconds overflow in velocity mode #287
- Bugfix: KV initialization (5fc3128)
- And more bugfixes - see the complete list of 2.3.1 fixes here
- Change: simplify initFOC() API (d57d32d. 5231e5e, 10c5b87)
- Change: check for linked driver in currentsense and exit gracefully (5ef4d9d)
- Compatibility with newest versions of Arduino framework for STM32, Renesas, ESP32, Atmel SAM, Atmel AVR, nRF52 and RP2040
v2.3.0
SimpleFOClibrary v2.3.0
- Arduino Mega 6pwm more timers supported
- Arduino boards - frequency change support either 32kHz or 4kHz
- Arduino Uno - synched timers in 3pwm and 6pwm mode #71
- Teensy 3.x initial support for 6pwm
- Teensy 4.x initial support for 6pwm
- Example for v3.1 SimpleFOCShield
- RP2040 compatibility for earlehillpower core #234 #236
- More flexible monitoring API
- start, end and separator characters
- decimal places (settable through commander)
- Added machine readable verbose mode in
Commander
#233 - SimpleFOCWebController - Web based user interface for SimpleFOC by @geekuillaume - webcontroller.simplefoc.com
- bugfix -
MagneticSensorPWM
multiple occasions - #258 - bugfix - current sense align - added offset exchange when exchanging pins
- bugfix - trapezoid 150 fixed
- bugfix - 4pwm on ESP8266 #224
- Additional
InlineCurrentSense
andLowsideCurrentSense
constructor using milliVolts per Amp #253 - STM32L4xx current sense support by @Triple6 (discord) #257
- phase disable in 6pwm mode
- stm32 - software and hardware 6pwm
- atmega328
- atmega2560
- Lag compensation using motor inductance #246
- current control through voltage torque mode enhancement
- extended
BLDCMotor
andStepperMotor
constructors to receive the inductance paramerer - can also be set using
motor.phase_inductance
or throughCommander
v2.2.3
SimpleFOClibrary v2.2.3
- stm32 low-side current sensing
- bugfixing
- leonardo
- mega2560 #190
- inline current sense without driver #188
- bg431b support current sense fix #210
StepperDriver4PWM
wrong init #182- open loop back-emf voltage issue #219
- SAMD51 compile issue #217
- ESP32-S3 compile issue #198
- ESP32 compile issue #208, #207
- magnetic sensor direction finding more robust #173, #164
StepDirListener
improved timing #169, #209HallSensor
velocity calculation fix #192
- API changes
setPhaseVoltage
is now public functiongetVelocity
can now be called as many times as necessary - see in docs- it recalculates the velocity if the time between calls is longer then
min_elapsed_time
- default 0.1ms
- it recalculates the velocity if the time between calls is longer then
HallSensor
velocity calculation outlier removal using max expected velocityvelocity_max
- see in docs- BG431 board can be used only with
LowsideCurrentSense
class! - see in docs initFOC
fails if current sense not initialised - see in docs- driver and current sense have to be well initialised for
initFOC
to start - see in docs cs.init()
anddriver.init()
return1
if well initialised and0
if failed
- driver and current sense have to be well initialised for
v2.2.2
SimpleFOClibrary v2.2.2
- GenericCurrentSense bugfix and testing
- bugfix leonardo #170
- bugfix - no index search after specifying natural direction
- Low level API restructuring #153
- Driver API
- Current sense API
- New debugging interface - see in docs #158
- Static class SimpleFOCDebug
- CurrentSense API change - added method
linkDriver()
- see in docs - Low-side current sensing - see in docs
- ESP32 generic support for multiple motors
- Added low-side current sensing support for stm32 - only one motor #6
- f1 family
- f4 family
- g4 family
- New appraoch for current estimation for torque control using voltage - see in docs
- Support for motor KV rating - back emf estimation
- Using motor phase resistance
- KV rating and phase resistance used for open-loop current limiting as well - see in docs
v2.2.1
SimpleFOClibrary v2.2.1
- Sensor class init bugfix #121
- Voltage/current limit handling bugs #118
- Added the new motion control interface to the commander see docs
- New target setting - possible to set the position, velocity and torque target at once
- Separated the motion control interface from full motor callback - only motion control and torque control type, enable disable and target setting
- New MCU support see docs
- Generic sensor class - to implement a new sensor only implement one function see docs
- Motor class initialisation status tracking by @runger1101001
v2.2
SimpleFOClibrary v2.2
- Sensor floating point error bugfix (initial solution) #83, #37
- Sensor class restructuring - slight API change - docs
- Restructured the generic code and simplified adding new mcus: IMPORTANT: an additional compiler flag needed for PlatformIO see issue and PlatformIO docs
- Removed initial jump #110, #111
- Double to float transformation of the code - performance increase by @sDessens (#100), @KaSroka (#100)
- Docs webiste translated to Chinese! 🎉: Awesome work 😃 by @MINQING1101, @Deng-ge-open-source and @mingggggggg
- New MCU support
- Low side current sensing initial support - docs
v2.1.1
SimpleFOClibrary v2.1.1
- bugfixes commander monitoring get values
- bugfix
voltage_limit
when providedphase_resistance
@byDagor - bugfix
hall_sensor
examples @owennewo - full support of the SimpleFOCStudio @JorgeMaker
- added examples for the PowerShield
- added initial support for
MagneticSensorPWM
- interrupts - nonblocking
- blocking mode
pulseln
- SAMD51 support by @runger1101001
- initial support for Raspberry pi Pico 🎉 @runger1101001
- added examples to find the raw max and min of the analog and pwm sensor
- extension of the
Commander
interface - improved esp32 implementation to avoid the need for mcpwm.h changes by @tschundler
- issue #62: motor.shaft_angle setting in the motor.initFOC()
- issue #76: esp32 division by zero
- community fix AS5600 register value
- renamed
Pullup::EXTERN
andPullup::INTERN
toPullup::USE_EXTERN
andPullup::USE_INTERN