Motor shaft moves when changing control modes

Hi all,

I am using a Tic 36v4 for a project that utilizes both the USB/Serial/i2c and encoder position control modes. The encoder position control is for a ‘fine’ adjustment of the motors shaft. Once the shaft has been positioned, an external shaft encoder (connected to the motor shaft) will be zeroed and used as the zero-reference point for the remainder of the motion sequence. Before the remaining motion sequence begins, the control mode will switch to USB.

Note that the fine adjustment of the motor shaft will utilize some degree of microstepping, such as 1/32. Once the control mode is switched back to USB, the microstep resolution will be 1/1 (full steps).

The issue that I am observing, is that the motor shaft will move some fraction of a degree when the USB control mode becomes active. For my particular application, this is an undesirable result. I have tried a few different things, such as de-energizing the motor before changing the control mode and re-energizing after the switch has been made. I have been able to reduce the amount of undesired movement, but complete elimination would be ideal.

If I had to guess, it seems that the motor is getting left between steps when doing the fine position control via the quad. encoder. When the control mode is switched back to USB, the motor moves forward/backward to the nearest ‘full step’ position.

Any ideas/insight as to how to mitigate this unintended movement of the motor shaft would be greatly appreciated.



Hello, Sam.

When you change control modes, the Tic resets the driver, which is probably causing the cogging you are seeing. Unfortunately, there is no way around this other than not switching modes. You might consider staying in USB/Serial/I2C mode the entire time. Please note that you could read the “Encoder position” variable and do some processing of it while in USB/Serial/I2C mode, so you might still be able to use the encoder to do some fine adjustment, but you will have to write some software to handle that.


Hi Brandon,

Thanks for the response, that’s what I was more or less expecting to hear. Just wanted to confirm.

Thanks for the heads up about the encoder position variable, that might be all that I need really. I’m already writing some custom control software, so adding that piece in should work just fine.

Thanks again!!