Post the old and new ini files.
I am trying to upgrade the computer on an old milling machine. I installed a newer version of linux and emc with a live cd that I downloaded from the emc site. The motors run very smoothly in one direction and very rough the other. I bought a new parallel cable and a nice interface card from cnc4pc because I thought maybe the parallel port on the computer was overloaded or something. The ini and hal files are not the same as the old ones but I set them up the best that I could and the motors do work in one direction. The old computer still runs the motors smoothly in both directions.
Post the old and new ini files.
Here they are.
And here they are now.
# EMC controller parameters for generic controller. Make these what you need
# for your system.
# General note: Comments can either be preceded with a # or ; - either is
# acceptable, although # is in keeping with most linux config files.
# Settings with a + at the front of the comment are likely needed to get
# changed by the user.
# Settings with a - at the front are highly unneeded to be changed
###############################################################################
# General section
###############################################################################
[EMC]
#- Version of this INI file
VERSION = $Revision: 1.7.2.3 $
#+ Name of machine, for use with display, etc.
MACHINE = EMC-HAL-STEP-XYZA-IN
#- Name of NML file to use, default is configs/common/emc.nml
NML_FILE = emc.nml
#+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
DEBUG = 0
# DEBUG = 0x00000007
# DEBUG = 0x7FFFFFFF
###############################################################################
# Sections for display options
###############################################################################
[DISPLAY]
#+ Name of display program, e.g., xemc
DISPLAY = axis
# DISPLAY = usrmot
# DISPLAY = mini
# DISPLAY = tkemc
# Cycle time, in seconds, that display will sleep between polls
CYCLE_TIME = 0.200
#- Path to help file
HELP_FILE = doc/help.txt
#- Initial display setting for position, RELATIVE or MACHINE
POSITION_OFFSET = RELATIVE
#- Initial display setting for position, COMMANDED or ACTUAL
POSITION_FEEDBACK = ACTUAL
#+ Highest value that will be allowed for feed override, 1.0 = 100%
MAX_FEED_OVERRIDE = 9.0
#- Prefix to be used
PROGRAM_PREFIX = /home/e/emc2/nc_files
#- Introductory graphic
INTRO_GRAPHIC = emc2.gif
INTRO_TIME = 5
###############################################################################
# Task controller section
###############################################################################
[TASK]
#- Name of task controller program, e.g., bridgeporttask
TASK = milltask
# TASK = minimilltask
#- Cycle time, in seconds, that task controller will sleep between polls
CYCLE_TIME = 0.010
###############################################################################
# Part program interpreter section
###############################################################################
[RS274NGC]
#- File containing interpreter variables
PARAMETER_FILE = stepper.var
###############################################################################
# Motion control section
###############################################################################
[EMCMOT]
#- Name of the motion controller to use (only one exists for nontrivkins)
EMCMOT = motmod
#- Key for real OS shared memory, e.g., for simulated motion
SHMEM_KEY = 111
#- Timeout for comm to emcmot, in seconds
COMM_TIMEOUT = 1.0
#- Interval between tries to emcmot, in seconds
COMM_WAIT = 0.010
#+ Base task period, in nanosecs - this is the fastest thread in the machine
BASE_PERIOD = 50000
#- Servo task period, in nanosecs - will be rounded to an int multiple of BASE_PERIOD
SERVO_PERIOD = 1000000
#- Trajectory Planner task period, in nanosecs - will be rounded to an
# integer multiple of SERVO_PERIOD
TRAJ_PERIOD = 10000000
###############################################################################
# Hardware Abstraction Layer section
###############################################################################
[HAL]
# The run script first uses halcmd to execute any HALFILE
# files, and then to execute any individual HALCMD commands.
#
# list of hal config files to run through halcmd
#+ files are executed in the order in which they appear
HALFILE = stepper_xyza.hal
#HALFILE = xylotex_pinout.hal
HALFILE = standard_pinout.hal
#- list of halcmd commands to execute
# commands are executed in the order in which they appear
#HALCMD = save neta
###############################################################################
# Trajectory planner section
###############################################################################
[TRAJ]
#+ machine specific settings
AXES = 4
# COORDINATES = X Y Z R P W
COORDINATES = X Y Z A
HOME = 0 0 0
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = .2
DEFAULT_ANGULAR_VELOCITY = 30
MAX_VELOCITY = 1.2
MAX_ANGULAR_VELOCITY = 90
DEFAULT_ACCELERATION = 20.0
MAX_ACCELERATION = 20.0
###############################################################################
# Axes sections
###############################################################################
#+ First axis
[AXIS_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 1.2
# NOTE: the step generator module applies its own limits to
# acceleration and velocity. We have discovered that it needs
# to have a little "headroom" over the accel by the trajectory
# planner, otherwise it can fall slightly behind during accel
# and later overshoot as it catches up. In the long term we
# hope to come up with a clean fix for this problem. In the
# meantime, please set STEPGEN_MAXACCEL below to a few percent
# higher than the regular acceleration limit MAX_ACCELERATION
MAX_ACCELERATION = 0.5
STEPGEN_MAXVEL = 0.5
STEPGEN_MAXACCEL = 20.2
BACKLASH = 0.000
INPUT_SCALE = 20000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
#+ Second axis
[AXIS_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 0.5
STEPGEN_MAXVEL = 0.5
STEPGEN_MAXACCEL = 20.2
BACKLASH = 0.000
INPUT_SCALE = 20000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -10.0
MAX_LIMIT = 10.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
#+ Third axis
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 1.2
MAX_ACCELERATION = 0.5
STEPGEN_MAXVEL = 0.5
STEPGEN_MAXACCEL = 20.2
BACKLASH = 0.000
INPUT_SCALE = 5000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -2.0
MAX_LIMIT = 4.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
#+ Third axis
[AXIS_3]
TYPE = ANGULAR
HOME = 0.0
MAX_VELOCITY = 90.0
MAX_ACCELERATION = 36.0
STEPGEN_MAXVEL = 2.5
STEPGEN_MAXACCEL = 396.0
BACKLASH = 0.000
INPUT_SCALE = 3750
OUTPUT_SCALE = 1.000
MIN_LIMIT = -36000.0
MAX_LIMIT = 36000.0
FERROR = 5.0
MIN_FERROR = 1.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0.0
HOME_LATCH_VEL = 0.0
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
###############################################################################
# section for main IO controller parameters
###############################################################################
[EMCIO]
#- Name of IO controller program, e.g., io
EMCIO = io
#- cycle time, in seconds
CYCLE_TIME = 0.100
#- tool table file
TOOL_TABLE = stepper.tbl
# Generated by stepconf at Thu Dec 2 20:54:19 2010
# If you make changes to this file, they will be
# overwritten when you run stepconf again
[EMC]
MACHINE = my-mill
DEBUG = 0
[DISPLAY]
DISPLAY = axis
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
INTRO_GRAPHIC = emc2.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/e/emc2/nc_files
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = emc.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 20000
SERVO_PERIOD = 1000000
[HAL]
HALFILE = my-mill.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
[TRAJ]
AXES = 4
COORDINATES = X Y Z A
MAX_ANGULAR_VELOCITY = 360.00
DEFAULT_ANGULAR_VELOCITY = 36.00
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 0.10
MAX_LINEAR_VELOCITY = 1.00
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
STEPGEN_MAXACCEL = 37.5
SCALE = 20000.0
FERROR = 0.05
MIN_FERROR = 0.01
MIN_LIMIT = -8.0
MAX_LIMIT = 8.0
HOME_OFFSET = 0.0
[AXIS_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
STEPGEN_MAXACCEL = 37.5
SCALE = 20000.0
FERROR = 0.05
MIN_FERROR = 0.01
MIN_LIMIT = -8.0
MAX_LIMIT = 8.0
HOME_OFFSET = 0.0
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
STEPGEN_MAXACCEL = 37.5
SCALE = 5000.0
FERROR = 0.05
MIN_FERROR = 0.01
MIN_LIMIT = -4.0
MAX_LIMIT = 4.0
HOME_OFFSET = 0.0
[AXIS_3]
TYPE = ANGULAR
HOME = 0.0
MAX_VELOCITY = 322.033898305
MAX_ACCELERATION = 1200.0
STEPGEN_MAXACCEL = 1500.0
SCALE = 3750.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
HOME_OFFSET = 0.0
Something went astray in Your second setup.
First of all the BASE_PERIOD constants are different
secondly MAX_ACCELERATION settings are different.
Try to make the new .INI file coefficients the same as the old file.
You are using the same PC yet the BASE _PERIOD is 50 000 in one case and 20 000 in the other.
That is not correct. BASE_PERIOD is related to the latency performance of the PC motherboard. Same motherboard... same latency.. same BASE_PERIOD.
MAX_ACCELERATION is related to torque and load the stepper motors need to move. No change in this area... no reason for one setup to have 0.5inches/second/second setting and in another instance 30inches/second/second.
So go through the new .INI file and tidy it up in line with the functioning one.
Once the machine is up and runing.. try increasing the acceleration and max velocity incrementally till you reach the point where the steppers start losing step.. and then go back to a stable relible setting. ( a bit like japanese transistor radio designs used to be... make a good design.. take away components till it stops working.. and then go back to the last functioning level...)
Thank you. I will work on the ini file and try to get it set the same as the old one to get it working and then speed it up from there. I am not using the same pc. I purchased a Zotac motherboard and dual core AMD processor and installed them in another computer. I am using dc motors and gecko g320 controllers. I think they would be functionally the same as stepper motors.
Thank you.