makerbase-mks / MKS-SERVO42C

MKS SERVO42C, an upgraded version of MKS SERVO42B, built-in Field-Oriented control algorithm, position/speed/ torque closed-loop, 4 Half bridge driver with 8 MOSFET, it makes the motor quieter, lower vibration and Lower calorific.
149 stars 34 forks source link

Motor jumps forward when enable pin is activated #39

Open foetusmachine opened 2 years ago

foetusmachine commented 2 years ago

I have a motor being controlled both by vFOC and UART.

I have a 10000ms (100Hz) signal always applied to the step pin. Using Arduino code, if I set the motor to vFOC mode {0xe0, 0x82, 0x01, 0x63} and then activate the motor by sending the enable pin to low {digitalWrite(enablePin,0);}, and then read the motor position {0xe0,0x36,0x16} the motor will jump forward a lot of steps and then start running properly on the 10000us signal.

If I stop the motor and read the position again and return to the start position using the {0xe0, 0xfd, ....} command, the motor will return to the correct position.

It seems like when the enable pin is sent low, the STEP pin is receiving a burst of high-frequency signal perhaps? Or is there an issue with the servo42C?

I've put an oscilloscope on both the step and enable pins of the servo42c and i'm not detecting any stray signals at startup that would suggest an unknown high-frequency signal is being sent into the servo42c board from an external source.

cicinovec commented 1 year ago

I have the same issue. Motors are mounted on Voron printer, every time the printer enables the motor, first what it does is jump. I have tried to reset the motor, calibrate again, but no difference