I’m using the 6pwm example code from the DRV8301 library
// Open loop motor control example
#include <SimpleFOC.h>
#include <DRV8301.h>
// Motor instance
BLDCMotor motor = BLDCMotor(4);
BLDCDriver6PWM driver = BLDCDriver6PWM(PA1, PB13, PA2, PB14, PA3, PB15);
// DRV8301 gate_driver = DRV8301(MOSI, MISO, SCLK, CS, EN_GATE, FAULT);
DRV8301 gate_driver = DRV8301(PB3, PB4, PB5, PB6, PB7, PB8);
void setup()
{
// driver config
// power supply voltage [V]
driver.voltage_power_supply = 12;
driver.dead_zone = 0.005;
driver.init();
gate_driver.begin(PWM_INPUT_MODE_6PWM);
// link the motor and the driver
motor.linkDriver(&driver);
// limiting motor movements
motor.voltage_limit = 1.5; // [V]
motor.velocity_limit = 20; // [rad/s]
// open loop control config
motor.controller = MotionControlType::velocity_openloop;
// init motor hardware
motor.init();
Serial.begin(115200);
Serial.println("Motor ready!");
_delay(1000);
}
float target_velocity = 0; // [rad/s]
void loop()
{
// open loop velocity movement
// using motor.voltage_limit and motor.velocity_limit
motor.move(target_velocity);
// receive the used commands from serial
serialReceiveUserCommand();
}
// utility function enabling serial communication with the user to set the target values
// this function can be implemented in serialEvent function as well
void serialReceiveUserCommand()
{
// a string to hold incoming data
static String received_chars;
while (Serial.available())
{
// get the new byte:
char inChar = (char)Serial.read();
// add it to the string buffer:
received_chars += inChar;
// end of user input
if (inChar == '\n')
{
// change the motor target
target_velocity = received_chars.toFloat();
Serial.print("Target velocity ");
Serial.println(target_velocity);
// reset the command buffer
received_chars = "";
}
}
}
these are the errors I’m getting
c:\Users\user\Documents\Arduino\libraries\Simple_FOC\src\BLDCMotor.cpp: In member function 'virtual int BLDCMotor::init()':
c:\Users\user\Documents\Arduino\libraries\Simple_FOC\src\BLDCMotor.cpp:102:3: error: 'vTaskDelay' was not declared in this scope
102 | vTaskDelay(500);
| ^~~~~~~~~~
c:\Users\user\Documents\Arduino\libraries\Simple_FOC\src\BLDCMotor.cpp: In member function 'int BLDCMotor::alignSensor()':
c:\Users\user\Documents\Arduino\libraries\Simple_FOC\src\BLDCMotor.cpp:242:7: error: 'vTaskDelay' was not declared in this scope
242 | vTaskDelay(2);
| ^~~~~~~~~~
c:\Users\user\Documents\Arduino\libraries\Simple_FOC\src\BLDCMotor.cpp:252:7: error: 'vTaskDelay' was not declared in this scope
252 | vTaskDelay(2);
| ^~~~~~~~~~
c:\Users\user\Documents\Arduino\libraries\Simple_FOC\src\BLDCMotor.cpp:257:5: error: 'vTaskDelay' was not declared in this scope
257 | vTaskDelay(200);
| ^~~~~~~~~~
c:\Users\user\Documents\Arduino\libraries\Simple_FOC\src\BLDCMotor.cpp:285:5: error: 'vTaskDelay' was not declared in this scope
285 | vTaskDelay(700);
| ^~~~~~~~~~
"C:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\tools\\xpack-arm-none-eabi-gcc\\13.2.1-1.1/bin/arm-none-eabi-g++" -mcpu=cortex-m3 -DVECT_TAB_OFFSET=0x0 -DUSE_HAL_DRIVER -DUSE_FULL_LL_DRIVER -mthumb "@C:\\Users\\user\\AppData\\Local\\arduino\\sketches\\2FBF1E01B6447DFDE81C0B1792F58CC9/sketch/build.opt" -c -Og -g -w -std=gnu++17 -ffunction-sections -fdata-sections -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -fno-use-cxa-atexit -MMD "-IC:\\Users\\user\\AppData\\Local\\Temp\\.arduinoIDE-unsaved202512-11112-aueytb.bd725\\simplefoc_vesc6_6pwm_openloop_speed_control_test" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\cores\\arduino/avr" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\cores\\arduino/stm32" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\cores\\arduino/../../libraries/SrcWrapper/inc" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\cores\\arduino/../../libraries/SrcWrapper/inc/LL" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\system/Drivers/STM32F1xx_HAL_Driver/Inc" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\system/Drivers/STM32F1xx_HAL_Driver/Src" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\system/STM32F1xx" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\cores\\arduino/../../libraries/USBDevice/inc" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\system/Middlewares/ST/STM32_USB_Device_Library/Core/Src" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\cores\\arduino/../../libraries/VirtIO/inc" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\system/Middlewares/OpenAMP" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\system/Middlewares/OpenAMP/open-amp/lib/include" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\system/Middlewares/OpenAMP/libmetal/lib/include" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\system/Middlewares/OpenAMP/virtual_driver" -DSTM32F1xx -DARDUINO=10607 -DARDUINO_GENERIC_F103C6TX -DARDUINO_ARCH_STM32 "-DBOARD_NAME=\"GENERIC_F103C6TX\"" "-DVARIANT_H=\"variant_generic.h\"" -DSTM32F103x6 -DHAL_UART_MODULE_ENABLED "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\tools\\CMSIS\\5.9.0/CMSIS/Core/Include/" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\system/Drivers/CMSIS/Device/ST/STM32F1xx/Include/" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\system/Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc/" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\tools\\CMSIS\\5.9.0/CMSIS/DSP/Include" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\tools\\CMSIS\\5.9.0/CMSIS/DSP/PrivateInclude" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\cores\\arduino" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\variants\\STM32F1xx\\F103C4T_F103C6(T-U)" "-Ic:\\Users\\user\\Documents\\Arduino\\libraries\\Simple_FOC\\src" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\libraries\\SPI\\src" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\libraries\\Wire\\src" "-Ic:\\Users\\user\\Documents\\Arduino\\libraries\\Arduino_SimpleFOC_DRV8301_Support_Library-master" "-IC:\\Users\\user\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.8.1\\libraries\\SrcWrapper\\src" "c:\\Users\\user\\Documents\\Arduino\\libraries\\Simple_FOC\\src\\communication\\Commander.cpp" -o "C:\\Users\\user\\AppData\\Local\\arduino\\sketches\\2FBF1E01B6447DFDE81C0B1792F58CC9\\libraries\\Simple_FOC\\communication\\Commander.cpp.o"
c:\Users\user\Documents\Arduino\libraries\Simple_FOC\src\common\time_utils.cpp: In function 'void _delay(long unsigned int)':
c:\Users\user\Documents\Arduino\libraries\Simple_FOC\src\common\time_utils.cpp:14:3: error: 'vTaskDelay' was not declared in this scope
14 | vTaskDelay(ms);
| ^~~~~~~~~~
and according to google no one ever had this error…
these are my upload settings: