TIC825 not positioning correct via serial commands

Hello,

I am having some trouble with the TIC825. I have it connected to a stepper motor and tuned it using the TIC Control Center software. The stepper motor run as expected.

I then copied your linux python serial example to my Raspberry pi. I changed the serial port to match that of my PI. I ran the program and noticed the motor was not moving to the correct position. The motor runs smooth, accelerates and decelerates fine.

To further investigate, I modified the program to move to 3 different positions and while at each position to read the position and print it out so I could see what it was doing. Between each move and position read, is a sleep of 4 seconds which is far longer than the time to make the move.

First run at 1600 steps (1 rotation)
Target 1600 → Position 1600
Target -1600 → Position -1600
Target 0 → Position 0

Second run at 16000 steps (10 rotations)
Target 16000 → Position 12007
Target -16000 → Position 71
Target 0 → Position 0

Looking at the motor during the tests, it appears to correlate with the position read from the TIC.

I have tried this on two different controllers:
1) Rapsberry Pi PICO using micropython and your converted program
2) Raspberry Pi Zero using Python and your program

As stated, the motor moves fine, and correctly when only moving a small number of steps. But when the count gets above 10,000 it seems to have problems with positioning.

I hope you can help me out on this, I really need this driver to work as it has exactly the features I need!

Thanks

Chris D

Additional information related to this problem…

If I set the number of steps over 8000, the position error starts, anything <= 8000 is okay. However, there is more to this puzzle…

I set up a loop to move to 1600, then increments to another 1600 to 3200 and so on, thus making any individual move only 1600 steps. When repeating this over and over again, the position tracking is accurate. I chose 1600 steps for this test as it is one rotation of my motor and thus easy to monitor.

From this, it appears that the TIC825 can’t make a single move more than approximately 8000 steps.

Chris D

Hello, Chris_D.

Does the red LED on the Tic come on when the motor stops (indicating an error)? From you description, my first thought is that you might be getting a command timeout error. If you have not changed the default settings, the command timeout is enabled and set to 1 second, so if the Tic does not receive select commands within a second, it triggers this error and stops the motor. You can read more about this in the “Condition: Command timeout” heading of the “Error handling” section of the Tic user’s guide.

To stop this from happening, you can send a relevant command (such as “Reset command timeout”) frequently enough to stop the timeout from triggering (which is what the Tic Control Center does). Alternatively, you can adjust the timeout duration or disable the command timeout feature in the “Input and motor settings” tab of the Tic Control Center.

If that does not fix your problem, could you post a copy of your Tic settings file? You can save the settings file from the “File” drop-down menu of the Tic Control Center while the controller is connected.

Brandon

Hi Brandon, thanks for getting back to me. I will check that out and report back to you shortly.

Much appreciated!

Chris

Hi Brandon,

You hit the nail on the head right away - FANTASTIC JOB! THANK YOU!

I am still having some strange things happen, but being that I am using micropython on the Raspberry Pi PICO, I am not sure where these problems are at the moment.

In any case, thank you very much for the fast and accurate response!

Chris D

1 Like