I am making a BLDC motor controller using STM32G0 microcontroller. The commutation technique that I am using is SVM. But during the initial start, the motor is not rotating properly (vibrating back and forth), It can be seen in the following image which is current waveform taken on a phase. The motor had 3 jerks when the waveform was captured, which are shown in the 1, 2 and 3 sections marked in the waveform. After that, the motor starts rotating smoothly (as seen in section 4 of waveform). When no load is on the motor, it starts smoothly.
Ensure that your startup calibration is accurate. This calibration involves correctly identifying the motor's zero-crossing points and initial rotor position without using position sensors. Adjust your software algorithm to accurately detect these positions to enable smooth startup.