Arduino-FOC
Arduino-FOC copied to clipboard
Arduino FOC for BLDC and Stepper motors - Arduino Based Field Oriented Control Algorithm Library
`current_sense/hardware_specific/esp32/esp32_mcu.cpp` line 71 defines `uint32_t raw_adc;` local to the method but it is never referenced, resulting in a build failure for an undefined variable. Commenting that line allows the build...
**Describe the bug** ``` In file included from .pio/libdeps/debug/Simple FOC/src/drivers/BLDCDriver3PWM.h:5, from .pio/libdeps/debug/Simple FOC/src/drivers/BLDCDriver3PWM.cpp:1: .pio/libdeps/debug/Simple FOC/src/drivers/../common/foc_utils.h:8: warning: "_round" redefined #define _round(x) ((x)>=0?(long)((x)+0.5f):(long)((x)-0.5f)) In file included from .pio/libdeps/debug/Simple FOC/src/drivers/../common/base_classes/BLDCDriver.h:4, from .pio/libdeps/debug/Simple FOC/src/drivers/BLDCDriver3PWM.h:4,...
As discussed here: https://community.simplefoc.com/t/motor-oscillates-when-in-cascaded-position-velocity-control-loop/4194 I've tested this and it works quite nicely. I imagine some people might find it useful.
This was initially saving space as the interrupt code was completely removed with the build flag, and improving the performance. Now the interrupt is started if the timer has no...
# Brief Thanks very much to all the maintainers for this awesome library. I thought about ways I could contribute to it, so I went through the `examples` folder and...
On page https://docs.simplefoc.com/velocity_openloop, in the sample code, there is this line: ```c++ motor.initFOC(); ``` I think it shouldn't be here, as initFOC() is not compatible with open loop mode.
**Describe the bug** Sometime after SimpleFOC2.2 a bug was introduced that made the phase current reading bad, the symptoms were bad stability and noisy FOC Torque mode. The phase currents...
**Describe the bug** There seems to be no way to disable monitor downsampling. Setting `monitor_downsample` to zero disables monitoring altogether. The reason lies [here](https://github.com/simplefoc/Arduino-FOC/blob/master/src/common/base_classes/FOCMotor.cpp#L94): ```c++ if( !monitor_downsample || monitor_cnt++ <...
While working on some code I had an idea for performance improvement. ### Problem: Now Loopfoc and move are running in the main loop and timestamps are used to calculate...
https://github.com/simplefoc/Arduino-FOC/blob/e891cd7f5e46884b06633b5f2633c4f266baa4d1/examples/utils/calibration/find_kv_rating/encoder/find_kv_rating/find_kv_rating.ino#L39 Factor sqrt(3) is missing there (motor.target * sqrt(3)) Since the voltage in dq domain is like a phase zero value, but kv is phase phase. So it now overestimates...