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

Pololu Forum

Tic 825 current position reset to 0


I am using tic825 to drive a stepper motor via software which does not allow to beyond 0 or negative positions. I have 2 questions:

  1. Is it possible to artificially elevate the starting position of the encoder when powered on instead of 0? I don’t want the motor to move, just the starting position to be something higher than 1000.
  2. How do I retain the current position when power is turned off. The Halt_and_Set position only works if power is maintained at all times.


Hi, TK.

Could you tell me more about how you are controlling the Tic and what you want it to do in your application? Could you also post your settings file? You can save your settings file by selecting “File” > “Save settings file…” in the top left corner of the control center software.

  1. There is no command or feature for setting the encoder position variable to anything besides zero on start up. If you post more about what you are trying to do though, I might be able to suggest a work around.
  2. There is also no way to retain the current position after power cycling. Why do you need to remember the position? Are you planning to move the encoder when the Tic is off?


Hi Claire.

I am using Tic to focus a lens with a timing belt driven by a stepper motor. I need to be able to go both ways to achieve focus, forward, and backward. Due to the current position being to reset to 0 after I power off, next time I cannot drive tic backward to focus. Because the position is now 0 and moves to negative. Software that my driver interacts with would not allow negative steps.

I have written a simple driver using C# to control the tic to move it forward and backward. Attached the settings file.
tic_settings.txt (1.3 KB)


Your control mode is set to serial and you haven’t changed any of the default pin configurations. Are you using an encoder at all in your setup? If so, could you post pictures and diagrams that show how it is connected to the rest of the system?


No encoder involved at all. It’s pretty straight forward control of a stepper motor using tic. My driver just passes the target position it needs to move.!

Image from iOS (9)|375x500

That’s my move code.

     if (!IsMoving && targetTicks < MaxStep & focuserPosition!=targetTicks)
                tl.LogMessage("inside Moving", "move");
                focuserPosition = Position;
                isMovingFlag = true;
                isMovingFlag = false;

Do you have any suggestions to make this work?

It sounds like the issue is that part of your software cannot handle negative numbers, but that way the Tic is set up in your system requires negative target positions. If that’s the case, you should be able to make some functions that translate the negative numbers to something the rest of your software can handle. For example, subtracting 1000 from any position before passing it to the Tic and then adding 1000 to any position you get from the Tic. Does that answer the first question in your original post?