Motor stops before home

Hi,
I am using the 36V4 controller in USB mode. Intermittently when the motor is driving towards the home position it stops before hitting the home switch. I have command timeout disabled. Any suggestions?

thanks, Tim

Hello, Tim.

We have multiple products with “36v4” in the name, but it sounds like you are referring to the Tic 36v4. Does the red LED on the board turn on or flash when it stops? If so, could you look in the “Status” tab of the Tic Control Center to see which error is being indicated? If no errors are currently stopping the motor, can you check to see if any have a non-zero “Count” value? Also, could you post a copy of your settings file? You can save your settings file by selecting the “Save settings file…” option within the “File” drop-down menu of the Tic Control Center.

Could you post more specific details about your procedure and what is happening? For example, what stepper motor are you using, and what are you using for a power supply? When it stops, does it always stop at the same position, and if so, what is that position?

Brandon

Hi Brandon,
yes it is the TIC 36v4 controller driving Nema34 motors. The red LED does not come on and I don’t see an error displayed in the status field. All the status fields are non zero they are a ‘-’.

I am using a 24V / 5 amp power supply. It does not always stop in the same position. I have a python script that talks via USB. The script commands are:

ticcmd.exe -d 00314797 --energize
ticcmd.exe -d 00314797 --exit-safe-start
ticcmd.exe -d 00314797 --home rev
ticcmd.exe -d 00314797 --deenergize

how can I attach or get you the setting file?

thanks, Tim

Brandon, here is the setting file:

# Pololu Tic USB Stepper Controller settings file.
# https://www.pololu.com/docs/0J71
product: 36v4
control_mode: serial
never_sleep: false
disable_safe_start: true
ignore_err_line_high: false
auto_clear_driver_error: true
soft_error_response: decel_to_hold
soft_error_position: 0
serial_baud_rate: 9600
serial_device_number: 14
serial_alt_device_number: 0
serial_enable_alt_device_number: false
serial_14bit_device_number: false
command_timeout: 0
serial_crc_for_commands: true
serial_crc_for_responses: true
serial_7bit_responses: false
serial_response_delay: 0
vin_calibration: 0
input_averaging_enabled: true
input_hysteresis: 0
input_scaling_degree: linear
input_invert: false
input_min: 0
input_neutral_min: 2015
input_neutral_max: 2080
input_max: 4095
output_min: 0
output_max: 2700
encoder_prescaler: 1
encoder_postscaler: 1
encoder_unlimited: false
scl_config: default
sda_config: default pullup active_high
tx_config: limit_switch_reverse active_high
rx_config: default
rc_config: default
invert_motor_direction: false
max_speed: 20000000
starting_speed: 0
max_accel: 400000
max_decel: 0
step_mode: 8
current_limit: 2865
current_limit_during_error: -1
auto_homing: true
auto_homing_forward: false
homing_speed_towards: 10000000
homing_speed_away: 500000
hp_enable_unrestricted_current_limits: false
hp_toff: 50
hp_tblank: 0
hp_abt: true
hp_tdecay: 16
hp_decmod: auto_mixed

Hello, Tim.

Thank you for the additional information. Does the Tic think that the homing procedure has finished? You should be able to check this by looking at the “Homing active” status in the “Status” tab of the Tic Control Center when it stops. Also, is the “Uncertain” variable reporting “yes” or “no”? The deenergize command you mentioned should trigger the “intentionally deenergized” error flag and set the “position uncertain” flag, which loses any information gathered from the homing procedure.

Along with answering those questions, could you post the simplest complete version of your Python script that demonstrates the problem?

Brandon

Hi Brandon,
Homing active status = No
Uncertain variable = Yes

Here’s the body of the Python script. I am controlling two motors. The variable values are listed in above reply.

#Posts an information message to the test log.
Log.Message(“XZHomePositionDeenergize”)
Log.Message(“Now:” + str(aqDateTime.Now()))

Project.Variables.TIC_Command = Project.Variables.ZMotorEnergize
MotorControlCommand()

Project.Variables.TIC_Command = Project.Variables.XMotorEnergize
MotorControlCommand()

Project.Variables.TIC_Command = Project.Variables.ZMotorExitSafeStart
MotorControlCommand()
    
Project.Variables.TIC_Command = Project.Variables.XMotorExitSafeStart
MotorControlCommand()

Delay(Project.Variables.Time_delay_2_second)

Project.Variables.TIC_Command = Project.Variables.ZMotorHomeposition
MotorControlCommand()

Delay(Project.Variables.Time_delay_5_second)

Project.Variables.TIC_Command = Project.Variables.XMotorHomePosition
MotorControlCommand()

Delay(Project.Variables.Time_delay_10_second)

Project.Variables.TIC_Command = Project.Variables.ZMotorDeenergize
MotorControlCommand()

Project.Variables.TIC_Command = Project.Variables.XMotorDeenergize
MotorControlCommand()