Help with MKS Dual FOC Plus v3.2 with Angel BE4108 motor

I saw some older posts saying they’ve achieved open-loop velocity control with the mks dual foc plus v3.3, but I can’t seem to get it working despite getting a similar setup and similar code. Specifically, the example code that is given by the mks documentation doesn’t create any movement and the code given by the SimpleFOC documentation does create movement (irratic shaking) but tries to burn my driver and motor despite adjusting the voltage to a minimum. I am using an Angel BE4108 motor with these specifications

and this is the example code

// MKS DUAL FOC open-loop speed control routine.Test library: SimpleFOC 2.1.1 Test hardware: MKS DUAL FOC V3.1
// Enter "T+number" in the serial port to set the speed of the two motors. For example, set the motor to rotate at 10rad/s, input "T10", and the motor will rotate at 5rad/s by default when it is powered on
// When using your own motor, please remember to modify the default number of pole pairs, that is, the value in BLDCMotor(7), and set it to your own number of pole pairs
// The default power supply voltage set by the program is 12V, please remember to modify the values in voltage_power_supply and voltage_limit variables if you use other voltages for power supply

#include <SimpleFOC.h>

BLDCMotor motor = BLDCMotor(11);                               //According to the selected motor, modify the number of pole pairs here, the value in BLDCMotor()
BLDCDriver3PWM driver = BLDCDriver3PWM(32,33,25);
  
/// BLDC motor & driver instance
BLDCMotor motor1 = BLDCMotor(11);                              //Also modify the value in BLDCMotor() here
BLDCDriver3PWM driver1  = BLDCDriver3PWM(26,27,14);

/// Target Variable
float target_velocity = 6.28;

/// Serial Command Setting
Commander command = Commander(Serial);
void doTarget(char* cmd) { command.scalar(&target_velocity, cmd); }

void setup() {
  

  driver.voltage_power_supply = 9;
  driver.voltage_limit = 2;                   //According to the supply voltage, modify the value of voltage_power_supply here
  if(!driver.init()){
    Serial.println("Driver init failed!");
    return;
  }
  motor.linkDriver(&driver);
  motor.voltage_limit = 2;   // [V]                   //According to the supply voltage, modify the value of voltage_limit here
  
  driver1.voltage_power_supply = 9;
  driver1.voltage_limit = 2;                  //Also modify the value of voltage_power_supply here
  driver1.init();
  motor1.linkDriver(&driver1);
  motor1.voltage_limit = 2;   // [V]                  //Also modify the value of voltage_limit here

 
  // Open Loop Control Mode Setting
  motor.controller = MotionControlType::velocity_openloop;
  motor1.controller = MotionControlType::velocity_openloop;

  // Initialize the Hardware
  if(!motor.init()){
    Serial.println("Motor init failed!");
    return;
  }
  motor1.init();


  // Add T Command
  // Enter "T+number" in the serial port to set the speed of the two motors.For example, to set the motor to rotate at a speed of 10rad/s, input "T10".
  command.add('T', doTarget, "target velocity");
  SimpleFOCDebug::enable(&Serial);
  Serial.begin(9600);
  Serial.println("Motor ready!");
  Serial.println("Set target velocity [rad/s]");
  
  
  _delay(1000);
}

void loop() {
  motor.move(target_velocity);                    //When the motor is powered on, it will rotate at 5rad/s by default
  motor1.move(target_velocity);

  //User Newsletter
  command.run();
}

and this is the one that creates the random movement with some adjustments to fit the pole pairs and pins

#include <SimpleFOC.h>

// BLDCMotor(pole pair number, phase resistance (optional) );
BLDCMotor motor = BLDCMotor(11);
BLDCDriver3PWM driver = BLDCDriver3PWM(32, 33, 25);

// instantiate the commander
Commander command = Commander(Serial);
void doTarget(char* cmd) { command.scalar(&motor.target, cmd); }
void doLimit(char* cmd) { command.scalar(&motor.voltage_limit, cmd); }

void setup() {

  Serial.begin(115200);

  SimpleFOCDebug::enable(&Serial);

  driver.voltage_power_supply = 9;
  driver.voltage_limit = 0.1;
  if(!driver.init()){
    Serial.println("Driver init failed!");
    return;
  }
  // link the motor and the driver
  motor.linkDriver(&driver);
  motor.voltage_limit = 0.1;   // [V]
  motor.velocity_limit = 40;

  motor.controller = MotionControlType::velocity_openloop;

  if(!motor.init()){
    Serial.println("Motor init failed!");
    return;
  }

  motor.target = 6.28; // one rotation per second

  command.add('T', doTarget, "target velocity");
  command.add('L', doLimit, "voltage limit");

  Serial.println("Motor ready!");
  Serial.println("Set target velocity [rad/s]");
  _delay(1000);
}

void loop() {

  // open loop velocity movement
  motor.move();

  // user communication
  command.run();
}

The video of the second code is below

Thanks a lot!

im in the same position, what is weirder is that it was working last month, but now it won’t. I cant figure it out.

after posting this I realised that something like this has happened before on another project of mine, basically the esp32 board library has been updated and its broken simplefoc.

3.1.3 is the last version to work