Passively viewing encoder position from ticcmd (TIC T825)

Is there a way to record the encoder position for a motor if the TIC T825 is in position/velocity control mode talking through USB/I2C? I’d like to verify it’s reported position with an encoder to see the differences (slop) of a connected piece, but I noticed that the encoder position seems to stay at 0 even if the motor has moved.

I’m currently using the ticcmd to control the motor to go to a desired position with

ticcmd --position [NUM] --exit-safe-start

and viewing the encoder position using YAML with

ticcmd --status


What kind of encoder are you using? If you are using a stepper motor with an integrated encoder, please note that the Tic does not support closed-loop control with encoder feedback, so you should not try to connect the encoder to the Tic. You can find this information in the Tic Stepper Motor Controller User’s Guide.

Can you attach your Tic’s settings file? You can save the settings file using the “Save settings file…” option in the File Menu in the Tic Control Center software.

- Amanda

I’m using an independent quadrature encoder (magnet and chip based which attaches to a shaft). I only want to see how accurate the position the Tic reports is compared with the actual positioning the encoder reports and I’m hoping I’ll be able to see that with the same board.

When you mention that the Tic does not support closed-loop control with encoder feedback, what does that mean exactly? Is the response rate too slow from the encoder to see the updated position in real time?

Below are the Tic Settings Saved from the device:

Pololu Tic USB Stepper Controller settings file.

product: T825
control_mode: serial
never_sleep: false
disable_safe_start: false
ignore_err_line_high: false
auto_clear_driver_error: false
soft_error_response: deenergize
soft_error_position: 0
serial_baud_rate: 200
serial_device_number: 0
command_timeout: 0
serial_crc_enabled: false
serial_response_delay: 0
vin_calibration: 0
input_averaging_enabled: false
input_hysteresis: 0
input_scaling_degree: linear
input_invert: false
input_min: 0
input_neutral_min: 0
input_neutral_max: 0
input_max: 0
output_min: 0
output_max: 0
encoder_prescaler: 1
encoder_postscaler: 1
encoder_unlimited: false
scl_config: default
sda_config: default
tx_config: default
rx_config: default
rc_config: default
current_limit: 1984
current_limit_during_error: 0
step_mode: 1
decay_mode: slow
max_speed: 1000000
starting_speed: 0
max_accel: 10000
max_decel: 0
invert_motor_direction: false

Your Tic’s RX and TX pins are configured to be a serial port, meaning they will not work as encoder inputs. You need to change the RX and TX pin functions to “Encoder input” under the “Advanced settings” tab of the Tic Control Center. You can find this information in the “Pin configuration” section of the Tic Stepper Motor Controller User’s Guide.

Closed-loop control with encoder feedback would entail monitoring the speed and/or position of the motor with the encoder, and then adjusting the outputs to the stepper motor based on that feedback in order to achieve some kind of desired behavior. The Tic does not implement closed-loop control like that. Instead, the Tic’s encoder input is designed to be connected to a rotary encoder that is turned by hand to set the desired position or speed of the stepper motor. However, you can use the Tic to read your encoder signals and get the raw counts from the Tic as long as your encoder meets all of the requirements documented in the “Encoder input handling” section of the user’s guide.

- Amanda