Pololu Robotics & Electronics
My account Comments or questions? About Pololu Contact Ordering information Distributors

Pololu Forum

TIC500 stepper I2C motor Direciton Command


first post here.
I am using a TIC500 and I am driving a stepper motor using a custom C software.
I would like to invert the direction of rotation, using some software settings. Is it possible to do it?
I saw in your documentation (https://www.pololu.com/docs/0J71/all#5.1) that writing the bit 0 in the offset 0x1B should help me on this issue, but for some reason it doesn’t work (Serial error).

Am I doing something wrong?

Thank you in advance for your help
F. Lombardo

Hello, Lombardo.

Changing the “Invert motor direction” setting can be done using the “Set setting” command. However, note that the “Set setting” command is only available through USB, and not I2C. You can find more information about this command in the “Command reference” section of the Tic user’s guide. Also, we advise caution when using this command as calling it in a fast loop could wear out the Tic’s EEPROM, which is rated for only 100,000 write cycles

Could you post more information about how you are using the Tic? For example, is your custom C software sending I2C commands (as mentioned in the subject line) or are you communicating with the Tic over USB? Is it necessary to be able to invert the Tic’s motor direction setting on-the-fly instead of configuring it beforehand through the Tic Control Center? If so, it might be a better solution to implement some kind of inversion into your custom C software using the “Set target position” and “Set target speed” commands, which can accept negative values.


Hello Brandon

thank you for your fast answer. We are using the TIC500 to drive a stepper motor that should move a sensor in different positions, and we use our master board to drive it using I2C - no USB connection.

All of our board (TIC500 included) are installed behind some heavy and space consuming stuff, that, due to the spaces, need to be in front of everything, so it’s difficult for us to reach the USB connection of the TIC.

It could happen that, during the mounting, we do some mistake on motor phases wiring (our motor supplier give us different cable color each time, and it’s hard for us not to make mistakes), so it would be great if any command could help us.
But I can see that the only solution for our issue is to give a first configuration and a check using the usb connection, and set the “invert option” if needed, and then mount everything.

Is that correct?


There is no way to change the “Invert motor direction” setting through I2C. Checking and setting it from the Tic Control Center software before installation is one option. You could also swap the wiring on one of the motor coils if that is easier (that should have the same affect of inverting the motor direction). A third option would be to invert all of your “Set target position” or “Set Target Speed” commands in your software by multiplying them by -1 before sending them, as I mentioned in my previous post.