How do I zero an axis when homed?

More
03 Oct 2020 15:06 #184693 by jhandel
I know this has to be covered somewhere, but I am not finding it in the homing configuration docs or anywhere else..

I would like to zero my axis when homed.. Instead it seems to jog back to where ever "zero" was before homing.. (where the axis was when it turned on)..

Current behavior:
Boot Linux CNC: All Axis say 0
Home X axis : machine feeds to switch, triggers, then feeds back to the arbatrary location the axis was when it turned on
Axis stays 0 sure but its not zero.. zero is where my home switch is.

Ideal behavior:
Boot Linux CNC : (Frankly I don't care what it says, but for giggles, lets say it remembers its last coordinate)
Home X axis: Machine Jogs to switch, switch trigger (and searching and latching and such), Linux sets THAT location to 0 then applies HOME and HOME_OFFSET (which are both currently zero)

To elaborate the problem.. If I boot with my X axis 5mm from home and I home, it will feed to the switch, do its thing, then feed back 5mm... (back to the booted up location) If I boot with my X axis 20mm from the home switch and I home, it will feed 20mm to the switch, then feed back 20mm to where the machine was when it booted up...

I KNOW this has got to be something simple, but I am not finding it in the docs or searching the forums..

Thanks for any help what is I am sure a very dumb question....

Please Log in or Create an account to join the conversation.

More
03 Oct 2020 16:30 #184702 by OT-CNC
Homing can be setup in many ways. Look over the latest docs on the homing sequences which have a nice illustration:

linuxcnc.org/docs/2.8/html/config/ini-homing.html

It's the HOME_OFFSET you want to adjust.

Please Log in or Create an account to join the conversation.

More
03 Oct 2020 16:55 - 03 Oct 2020 16:57 #184704 by jhandel
maybe I am not describing the problem correctly..

Current behaviour (with X 10mm away from the home switch):
Boot Linux CNC: X is 0 in G53
Home X: Machine Feeds -10, Home switch triggers, feeds < 5mm to Index pulse, machine stops. X is -10 on G53 (not reset to zero), X moves back to 0 (the place it was when booted)

Jog machine to say +5mm (now machine is 15mm from Home switch.
Turn off Linux CNC

restart Linux CNC: X is 0 G53 (because it is resetting to zero between boots)
Home X: Machine feeds -15mm this time (because remember we moved it 5mm) X is now -15 in G53, X moves back to 0 (which is 15mm from the home switch/the same place it was when we restarted linux CNC.

Expected behaviour:
Start Linux CNC: X axis is some random number (zero is fine)
Home X: X feeds to the home switch, , feeds < 5mm to Index pulse, when triggered the X in G53 is set to 0

I had an HOME_OFFSET of 0, I also tried 0.001 to see if the issue was with HOME_OFFSET not being zero but that isn't documented, and the problem persists with a non zero value so that is not it..

Here is the relevant part of my INI file

HOME = 0
HOME_OFFSET = 0.001000
HOME_SEARCH_VEL = 4.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 10.000000
HOME_USE_INDEX = YES

To be clear it IS jogging to the home switch, and latching on it.. the issue is that G53 is not changing based on home being found.
Last edit: 03 Oct 2020 16:57 by jhandel.

Please Log in or Create an account to join the conversation.

More
03 Oct 2020 17:03 #184705 by jhandel
Ok on to something here..
HOME_USE_INDEX = YES <---- If this is NO things work as expected, but if its YES things are weird..

Carefully watching the DRO here is what happens...

Home X from Linux CNC starting with X axis 10mm from switch
1- Feed to Switch (-10mm in DRO)
2- DRO zeros
3- Feed to Index Pulse (DRO less than 5mm because that is where the index pulse is)
4- DRO resets back to started state (-10mm + DRO location at index pulse)
5- Feed to X 0 (original X location at boot up)

Step 4 should not be happening.. the DRO should reset to 0 again..

So its something with the Index Pulse Latch process that is screwing up homing..

Please Log in or Create an account to join the conversation.

More
03 Oct 2020 17:36 #184706 by OT-CNC
Index is only used if you are reading in the index signal from your encoder (either linear or rotary) in conjunction with switch or index only as called out in section 6 from the doc I linked.

Are you using the index or are you homing conventionally?

HOME_OFFSET can be zero. But that would not explain why it parks in different locations.
If you are using index and the pulse is missed for some reason, you could be off by maybe a full motor revolution (assuming motor mounted encoder)

Please Log in or Create an account to join the conversation.

More
03 Oct 2020 17:43 #184708 by jhandel
The movements are all correct per the documentation, HOME_SEARCH_VEL speed is used until the switch is hit, then HOME_LATCH_VEL speed is used until the encoder index is hit (yes there are motor encoders, and yes the index pulse is firing)

The park location is based on where the Axis is at boot.. If X axis was 100mm from the home switch, the Park locaiton would be 100mm from my home switch, if I restarted with the X axis 25mm from my home switch the park location would be 25mm from the home switch...

Its the step 4 that I described above where the DRO should reset back to zero after finding the index and instead is resetting to the feed distance from where the axis was when Linux CNC started..

Its extra telling that the issue is only when using index.. suggests there may be a bug with the HOME_USE_INDEX algorithm...

Is homing something that is a "macro" that is editable or would that require going to source to fix or debug further?

(I am running 2.8 prod release)

Please Log in or Create an account to join the conversation.

More
03 Oct 2020 19:04 #184717 by OT-CNC
I don't know.
The behavior you should see if you select homing is, regardless where you last placed your axes, on startup axes move to the the home switch, then look for index then final move to the home offset position. That position is 0 and it should not change from one homing routine to the next.

Is that part working correctly? Does your machine physically stop at the correct position? Say 10mm away from the index point if your home offset is -10? That position should read 0 on the dro. If not maybe clear it via set zero for the coordiante system you're working in? Also there is a view setting relative/actual position that will change how the coordinates are displayed. Not sure if any of that helps.

Please Log in or Create an account to join the conversation.

More
03 Oct 2020 19:45 #184720 by jhandel
So fundamentally X home changes every-time I boot even though X is searching and latching at the same physical location (in meat space) the same time everytime..

I threw a quick 4 minute video up showing the behavior..



Hopefully that will help explain the issue which is feeling more like a bug..

Please Log in or Create an account to join the conversation.

More
03 Oct 2020 20:07 #184722 by PCW
Can you post your hal and ini files?

BTW homing to index with step/dir is not supported AFAIK

Please Log in or Create an account to join the conversation.

More
03 Oct 2020 20:17 #184723 by jhandel
oh! wait, you can't use index with a closed loop step/direction servo? um... how is the step generator involved in this as the encoder is essentially a second home switch. Is there a way I can customize that behaviour outside of source... Homing on my z-pulse is the difference between home +/- .5mm and home +/-.005mm (basically the backlash of the ball screw)

Here is my Hal and INI (they are both still very much in development)...

HAL:
# Generated by PNCconf at Thu Sep  3 17:54:38 2020
# Using LinuxCNC version:  UNAVAILABLE
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hostmot2
loadrt hm2_eth board_ip="10.10.10.10" config="num_encoders=10 num_pwmgens=0 num_stepgens=6 sserial_port_0=0000xx" 
setp    hm2_7i76e.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s
loadrt abs names=abs.spindle
loadrt lowpass names=lowpass.spindle
loadrt scale names=scale.spindle
loadrt charge_pump

addf charge-pump servo-thread
addf hm2_7i76e.0.read          servo-thread
addf motion-command-handler   servo-thread
addf motion-controller        servo-thread
addf pid.x.do-pid-calcs       servo-thread
addf pid.y.do-pid-calcs       servo-thread
addf pid.z.do-pid-calcs       servo-thread
addf pid.s.do-pid-calcs       servo-thread
addf scale.spindle            servo-thread
addf abs.spindle              servo-thread
addf lowpass.spindle          servo-thread
addf hm2_7i76e.0.write         servo-thread

# --- SPINDLE-ENABLE ---
setp hm2_7i76e.0.gpio.018.invert_output true
setp hm2_7i76e.0.gpio.020.invert_output true
setp hm2_7i76e.0.gpio.022.invert_output true
setp hm2_7i76e.0.gpio.024.invert_output true

setp hm2_7i76e.0.gpio.018.is_output true
setp hm2_7i76e.0.gpio.020.is_output true
setp hm2_7i76e.0.gpio.022.is_output true
setp hm2_7i76e.0.gpio.024.is_output true



# external input signals

# --- HOME-X ---
net home-x     <=  hm2_7i76e.0.7i76.0.0.input-00-not




#*******************
#  AXIS X JOINT 0
#*******************

setp   pid.x.Pgain     [JOINT_0]P
setp   pid.x.Igain     [JOINT_0]I
setp   pid.x.Dgain     [JOINT_0]D
setp   pid.x.bias      [JOINT_0]BIAS
setp   pid.x.FF0       [JOINT_0]FF0
setp   pid.x.FF1       [JOINT_0]FF1
setp   pid.x.FF2       [JOINT_0]FF2
setp   pid.x.deadband  [JOINT_0]DEADBAND
setp   pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp   pid.x.error-previous-target true
setp   pid.x.maxerror .0005

net x-index-enable  <=> pid.x.index-enable
net x-enable        =>  pid.x.enable
net x-pos-cmd       =>  pid.x.command
net x-pos-fb        =>  pid.x.feedback
net x-output        <=  pid.x.output

# Step Gen signals/setup

setp   hm2_7i76e.0.stepgen.00.dirsetup        [JOINT_0]DIRSETUP
setp   hm2_7i76e.0.stepgen.00.dirhold         [JOINT_0]DIRHOLD
setp   hm2_7i76e.0.stepgen.00.steplen         [JOINT_0]STEPLEN
setp   hm2_7i76e.0.stepgen.00.stepspace       [JOINT_0]STEPSPACE
setp   hm2_7i76e.0.stepgen.00.position-scale  [JOINT_0]STEP_SCALE
setp   hm2_7i76e.0.stepgen.00.step_type        0
setp   hm2_7i76e.0.stepgen.00.control-type     1
setp   hm2_7i76e.0.stepgen.00.maxaccel         [JOINT_0]STEPGEN_MAXACCEL
setp   hm2_7i76e.0.stepgen.00.maxvel           [JOINT_0]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net x-pos-cmd    <= joint.0.motor-pos-cmd
net x-vel-cmd    <= joint.0.vel-cmd
net x-output     <= hm2_7i76e.0.stepgen.00.velocity-cmd
net x-pos-fb     <= hm2_7i76e.0.stepgen.00.position-fb
net x-pos-fb     => joint.0.motor-pos-fb
net x-enable     <= joint.0.amp-enable-out
net x-enable     => hm2_7i76e.0.stepgen.00.enable

# ---setup home / limit switch signals---

net home-x     =>  joint.0.home-sw-in
net x-neg-limit     =>  joint.0.neg-lim-sw-in
net x-pos-limit     =>  joint.0.pos-lim-sw-in

# ---Encoder feedback signals/setup---
net x-index-enable    joint.0.index-enable  <=>  hm2_7i76e.0.encoder.02.index-enable

#*******************
#  AXIS Y JOINT 1
#*******************

setp   pid.y.Pgain     [JOINT_1]P
setp   pid.y.Igain     [JOINT_1]I
setp   pid.y.Dgain     [JOINT_1]D
setp   pid.y.bias      [JOINT_1]BIAS
setp   pid.y.FF0       [JOINT_1]FF0
setp   pid.y.FF1       [JOINT_1]FF1
setp   pid.y.FF2       [JOINT_1]FF2
setp   pid.y.deadband  [JOINT_1]DEADBAND
setp   pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp   pid.y.error-previous-target true
setp   pid.y.maxerror .0005

net y-index-enable  <=> pid.y.index-enable
net y-enable        =>  pid.y.enable
net y-pos-cmd       =>  pid.y.command
net y-pos-fb        =>  pid.y.feedback
net y-output        <=  pid.y.output

# Step Gen signals/setup

setp   hm2_7i76e.0.stepgen.01.dirsetup        [JOINT_1]DIRSETUP
setp   hm2_7i76e.0.stepgen.01.dirhold         [JOINT_1]DIRHOLD
setp   hm2_7i76e.0.stepgen.01.steplen         [JOINT_1]STEPLEN
setp   hm2_7i76e.0.stepgen.01.stepspace       [JOINT_1]STEPSPACE
setp   hm2_7i76e.0.stepgen.01.position-scale  [JOINT_1]STEP_SCALE
setp   hm2_7i76e.0.stepgen.01.step_type        0
setp   hm2_7i76e.0.stepgen.01.control-type     1
setp   hm2_7i76e.0.stepgen.01.maxaccel         [JOINT_1]STEPGEN_MAXACCEL
setp   hm2_7i76e.0.stepgen.01.maxvel           [JOINT_1]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net y-pos-cmd    <= joint.1.motor-pos-cmd
net y-vel-cmd    <= joint.1.vel-cmd
net y-output     <= hm2_7i76e.0.stepgen.01.velocity-cmd
net y-pos-fb     <= hm2_7i76e.0.stepgen.01.position-fb
net y-pos-fb     => joint.1.motor-pos-fb
net y-enable     <= joint.1.amp-enable-out
net y-enable     => hm2_7i76e.0.stepgen.01.enable

# ---Encoder feedback signals/setup---

setp    hm2_7i76e.0.encoder.01.counter-mode 0
setp    hm2_7i76e.0.encoder.01.filter 1
setp    hm2_7i76e.0.encoder.01.index-invert 0
setp    hm2_7i76e.0.encoder.01.index-mask 0
setp    hm2_7i76e.0.encoder.01.index-mask-invert 0
setp    hm2_7i76e.0.encoder.01.scale  [JOINT_1]ENCODER_SCALE

net y-index-enable    joint.1.index-enable  <=>  hm2_7i76e.0.encoder.01.index-enable


# ---setup home / limit switch signals---

net y-home-sw     =>  joint.1.home-sw-in
net y-neg-limit     =>  joint.1.neg-lim-sw-in
net y-pos-limit     =>  joint.1.pos-lim-sw-in

#*******************
#  AXIS Z JOINT 2
#*******************

setp   pid.z.Pgain     [JOINT_2]P
setp   pid.z.Igain     [JOINT_2]I
setp   pid.z.Dgain     [JOINT_2]D
setp   pid.z.bias      [JOINT_2]BIAS
setp   pid.z.FF0       [JOINT_2]FF0
setp   pid.z.FF1       [JOINT_2]FF1
setp   pid.z.FF2       [JOINT_2]FF2
setp   pid.z.deadband  [JOINT_2]DEADBAND
setp   pid.z.maxoutput [JOINT_2]MAX_OUTPUT
setp   pid.z.error-previous-target true
setp   pid.z.maxerror .0005

net z-index-enable  <=> pid.z.index-enable
net z-enable        =>  pid.z.enable
net z-pos-cmd       =>  pid.z.command
net z-pos-fb        =>  pid.z.feedback
net z-output        <=  pid.z.output

# Step Gen signals/setup

setp   hm2_7i76e.0.stepgen.02.dirsetup        [JOINT_2]DIRSETUP
setp   hm2_7i76e.0.stepgen.02.dirhold         [JOINT_2]DIRHOLD
setp   hm2_7i76e.0.stepgen.02.steplen         [JOINT_2]STEPLEN
setp   hm2_7i76e.0.stepgen.02.stepspace       [JOINT_2]STEPSPACE
setp   hm2_7i76e.0.stepgen.02.position-scale  [JOINT_2]STEP_SCALE
setp   hm2_7i76e.0.stepgen.02.step_type        0
setp   hm2_7i76e.0.stepgen.02.control-type     1
setp   hm2_7i76e.0.stepgen.02.maxaccel         [JOINT_2]STEPGEN_MAXACCEL
setp   hm2_7i76e.0.stepgen.02.maxvel           [JOINT_2]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net z-pos-cmd    <= joint.2.motor-pos-cmd
net z-vel-cmd    <= joint.2.vel-cmd
net z-output     <= hm2_7i76e.0.stepgen.02.velocity-cmd
net z-pos-fb     <= hm2_7i76e.0.stepgen.02.position-fb
net z-pos-fb     => joint.2.motor-pos-fb
net z-enable     <= joint.2.amp-enable-out
net z-enable     => hm2_7i76e.0.stepgen.02.enable

# ---Encoder feedback signals/setup---

setp    hm2_7i76e.0.encoder.00.counter-mode 0
setp    hm2_7i76e.0.encoder.00.filter 1
setp    hm2_7i76e.0.encoder.00.index-invert 0
setp    hm2_7i76e.0.encoder.00.index-mask 0
setp    hm2_7i76e.0.encoder.00.index-mask-invert 0
setp    hm2_7i76e.0.encoder.00.scale  [JOINT_2]ENCODER_SCALE

net z-index-enable    joint.2.index-enable  <=>  hm2_7i76e.0.encoder.00.index-enable


#*******************
#  SPINDLE
#*******************

setp   pid.s.Pgain     [SPINDLE_0]P
setp   pid.s.Igain     [SPINDLE_0]I
setp   pid.s.Dgain     [SPINDLE_0]D
setp   pid.s.bias      [SPINDLE_0]BIAS
setp   pid.s.FF0       [SPINDLE_0]FF0
setp   pid.s.FF1       [SPINDLE_0]FF1
setp   pid.s.FF2       [SPINDLE_0]FF2
setp   pid.s.deadband  [SPINDLE_0]DEADBAND
setp   pid.s.maxoutput [SPINDLE_0]MAX_OUTPUT
setp   pid.s.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp   pid.s.maxerror 0.012700

net spindle-index-enable  <=> pid.s.index-enable
net spindle-enable        =>  pid.s.enable
net spindle-vel-cmd-rpm     => pid.s.command
net spindle-vel-fb-rpm      => pid.s.feedback
net spindle-output        <=  pid.s.output

# Step Gen signals/setup

setp   hm2_7i76e.0.stepgen.05.dirsetup        [SPINDLE_0]DIRSETUP
setp   hm2_7i76e.0.stepgen.05.dirhold         [SPINDLE_0]DIRHOLD
setp   hm2_7i76e.0.stepgen.05.steplen         [SPINDLE_0]STEPLEN
setp   hm2_7i76e.0.stepgen.05.stepspace       [SPINDLE_0]STEPSPACE
setp   hm2_7i76e.0.stepgen.05.position-scale  [SPINDLE_0]STEP_SCALE
setp   hm2_7i76e.0.stepgen.05.step_type        0
setp   hm2_7i76e.0.stepgen.05.control-type     1
setp   hm2_7i76e.0.stepgen.05.maxaccel         [SPINDLE_0]MAX_ACCELERATION
setp   hm2_7i76e.0.stepgen.05.maxvel           [SPINDLE_0]MAX_VELOCITY

net spindle-enable          =>  hm2_7i76e.0.stepgen.05.enable
net spindle-enable          =>  hm2_7i76e.0.gpio.018.out
#net spindle-enable          =>  hm2_7i76e.0.gpio.022.out
net spindle-vel-cmd-rps     =>  hm2_7i76e.0.stepgen.05.velocity-cmd
# ---Encoder feedback signals/setup---

setp    hm2_7i76e.0.encoder.03.counter-mode 0
setp    hm2_7i76e.0.encoder.03.filter 1
setp    hm2_7i76e.0.encoder.03.index-invert 0
setp    hm2_7i76e.0.encoder.03.index-mask 0
setp    hm2_7i76e.0.encoder.03.index-mask-invert 0
setp    hm2_7i76e.0.encoder.03.scale  [SPINDLE_0]ENCODER_SCALE

net spindle-revs             <=   hm2_7i76e.0.encoder.03.position
net spindle-vel-fb-rps       <=   hm2_7i76e.0.encoder.03.velocity
net spindle-index-enable     <=>  hm2_7i76e.0.encoder.03.index-enable

# ---setup spindle control signals---

net spindle-vel-cmd-rps        <=  spindle.0.speed-out-rps
net spindle-vel-cmd-rps-abs    <=  spindle.0.speed-out-rps-abs
net spindle-vel-cmd-rpm        <=  spindle.0.speed-out
net spindle-vel-cmd-rpm-abs    <=  spindle.0.speed-out-abs
net spindle-enable             <=  spindle.0.on
net spindle-cw                 <=  spindle.0.forward
net spindle-ccw                <=  spindle.0.reverse
net spindle-brake              <=  spindle.0.brake
net spindle-revs               =>  spindle.0.revs
net spindle-at-speed           =>  spindle.0.at-speed
net spindle-vel-fb-rps         =>  spindle.0.speed-in
net spindle-index-enable      <=>  spindle.0.index-enable

# ---Setup spindle at speed signals---

sets spindle-at-speed true

#  Use ACTUAL spindle velocity from spindle encoder
#  spindle-velocity bounces around so we filter it with lowpass
#  spindle-velocity is signed so we use absolute component to remove sign
#  ACTUAL velocity is in RPS not RPM so we scale it.

setp     scale.spindle.gain 60
setp     lowpass.spindle.gain 1.000000
net spindle-vel-fb-rps        =>     scale.spindle.in
net spindle-fb-rpm               scale.spindle.out       =>   abs.spindle.in
net spindle-fb-rpm-abs           abs.spindle.out         =>   lowpass.spindle.in
net spindle-fb-rpm-abs-filtered  lowpass.spindle.out  

# ---setup home / limit switch signals---

net z-home-sw     =>  joint.2.home-sw-in
net z-neg-limit     =>  joint.2.neg-lim-sw-in
net z-pos-limit     =>  joint.2.pos-lim-sw-in



#******************************
# connect miscellaneous signals
#******************************

#  ---HALUI signals---

net axis-select-x  halui.axis.x.select
net jog-x-pos      halui.axis.x.plus
net jog-x-neg      halui.axis.x.minus
net jog-x-analog   halui.axis.x.analog
net x-is-homed     halui.joint.0.is-homed
net axis-select-y  halui.axis.y.select
net jog-y-pos      halui.axis.y.plus
net jog-y-neg      halui.axis.y.minus
net jog-y-analog   halui.axis.y.analog
net y-is-homed     halui.joint.1.is-homed
net axis-select-z  halui.axis.z.select
net jog-z-pos      halui.axis.z.plus
net jog-z-neg      halui.axis.z.minus
net jog-z-analog   halui.axis.z.analog
net z-is-homed     halui.joint.2.is-homed
net jog-selected-pos      halui.axis.selected.plus
net jog-selected-neg      halui.axis.selected.minus
net spindle-manual-cw     halui.spindle.0.forward
net spindle-manual-ccw    halui.spindle.0.reverse
net spindle-manual-stop   halui.spindle.0.stop
net machine-is-on         halui.machine.is-on
net jog-speed             halui.axis.jog-speed
net MDI-mode              halui.mode.is-mdi

#  ---charge pump signals---
net estop-out       =>  charge-pump.enable
net charge-pump     <=  charge-pump.out

#  ---coolant signals---

net coolant-mist      <=  iocontrol.0.coolant-mist
net coolant-flood     <=  iocontrol.0.coolant-flood

#  ---probe signal---

net probe-in     =>  motion.probe-input

#  ---motion control signals---

net in-position               <=  motion.in-position
net machine-is-enabled        <=  motion.motion-enabled

#  ---digital in / out signals---

net dout-00     <=  motion.digital-out-00
net dout-01     <=  motion.digital-out-01
net dout-02     <=  motion.digital-out-02
net dout-03     <=  motion.digital-out-03
net din-00     =>  motion.digital-in-00
net din-01     =>  motion.digital-in-01
net din-02     =>  motion.digital-in-02
net din-03     =>  motion.digital-in-03
#  ---estop signals---

net estop-out     <=  iocontrol.0.user-enable-out
net estop-out     =>  iocontrol.0.emc-enable-in

#  ---manual tool change signals---

loadusr -W hal_manualtoolchange
net tool-change-request     iocontrol.0.tool-change       =>  hal_manualtoolchange.change
net tool-change-confirmed   iocontrol.0.tool-changed      <=  hal_manualtoolchange.changed
net tool-number             iocontrol.0.tool-prep-number  =>  hal_manualtoolchange.number
net tool-prepare-loopback   iocontrol.0.tool-prepare      =>  iocontrol.0.tool-prepared

INI
# Generated by PNCconf at Sat Oct  3 09:16:25 2020
# Using LinuxCNC version:  UNAVAILABLE
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

[EMC]
MACHINE = Skyfire
DEBUG = 0
VERSION = 1.1

[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/cnc/linuxcnc/nc_files
PYVCP = pyvcp-panel.xml
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .001mm
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 6.000000
MAX_LINEAR_VELOCITY = 25.000000
MIN_LINEAR_VELOCITY = 0.500000
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
EDITOR = gedit
GEOMETRY = xyz

[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 = linuxcnc.var

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000

[HMOT]
# **** This is for info only ****
CARD0=hm2_7i76.0

[HAL]
HALUI = halui
HALFILE = Skyfire.hal
HALFILE = custom.hal
POSTGUI_HALFILE = postgui_call_list.hal
SHUTDOWN = shutdown.hal

[HALUI]

[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ

[TRAJ]
COORDINATES =  XYZ
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 16.67
MAX_LINEAR_VELOCITY = 166.67

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_WITH_SPINDLE_ON = 1
TOOL_CHANGE_QUILL_UP = 1

#******************************************
[AXIS_X]
MAX_VELOCITY = 166.666666667
MAX_ACCELERATION = 600.0
MIN_LIMIT = -0.01
MAX_LIMIT = 200.0

[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 166.666666667
MAX_ACCELERATION = 600.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 208.33
STEPGEN_MAXACCEL = 750.00
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
ENCODER_SCALE = 2000.0
# these are in nanoseconds
DIRSETUP   = 10000
DIRHOLD    = 10000
STEPLEN    = 5000
STEPSPACE  = 5000
STEP_SCALE = -1000.0
MIN_LIMIT = -0.01
MAX_LIMIT = 200.0
HOME = 0
HOME_OFFSET = 0.001000
HOME_SEARCH_VEL = 4.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 10.000000
HOME_USE_INDEX = YES
#******************************************

#******************************************
[AXIS_Y]
MAX_VELOCITY = 166.666666667
MAX_ACCELERATION = 600.0
MIN_LIMIT = -0.01
MAX_LIMIT = 200.0

[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 166.666666667
MAX_ACCELERATION = 600.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 208.33
STEPGEN_MAXACCEL = 750.00
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
ENCODER_SCALE = 2000.0
# these are in nanoseconds
DIRSETUP   = 10000
DIRHOLD    = 10000
STEPLEN    = 5000
STEPSPACE  = 5000
STEP_SCALE = 1000.0
MIN_LIMIT = -0.01
MAX_LIMIT = 200.0
HOME_OFFSET = 0.0
#******************************************

#******************************************
[AXIS_Z]
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
MIN_LIMIT = -100.0
MAX_LIMIT = 0.01

[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 31.25
STEPGEN_MAXACCEL = 937.50
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
ENCODER_SCALE = 2000.0
# these are in nanoseconds
DIRSETUP   = 10000
DIRHOLD    = 10000
STEPLEN    = 5000
STEPSPACE  = 5000
STEP_SCALE = 1000.0
MIN_LIMIT = -100.0
MAX_LIMIT = 0.01
HOME_OFFSET = 0.0
#******************************************

[SPINDLE_0]
MAX_VELOCITY = 150.0
MAX_ACCELERATION = 900.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 187.50
STEPGEN_MAXACCEL = 1125.00
P = 0.0
I = 0.0
D = 0.0
FF0 = 1.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 2000.0
ENCODER_SCALE = 4096.0
# these are in nanoseconds
DIRSETUP   = 10000
DIRHOLD    = 10000
STEPLEN    = 5000
STEPSPACE  = 5000
STEP_SCALE = 1024.0

Oh where do I file bugs then, because this behavior (supported or not) is a bug... And honestly with encoded step/direction setups becoming easier to get a hold of likely to be more and more common so worth fixing.

Please Log in or Create an account to join the conversation.

Time to create page: 0.084 seconds
Powered by Kunena Forum