N/O Probe issue

More
1 year 11 months ago #315049 by natholego11
N/O Probe issue was created by natholego11
Im not sure what happened as of late. but I recently have been getting an error with my probe when probing. I keep getting the error "probe is already tripped when starting G38.2 or G38.3 move" blah blah blah.

with the probe plugged in the HALmeter is showing that its "TRUE" and when I actuate the probe it goes to "FALSE"


and here is a link to the probe I have.



here is my HAL code.
Code:
# Generated by PNCconf at Tue Jan 18 09:12:59 2022 # Using LinuxCNC version:  2.8 # 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 #num_dio=30 num_aio=30 loadrt hostmot2 loadrt hm2_eth board_ip="10.10.10.10" config=" num_encoders=1 num_pwmgens=1 num_stepgens=5 sserial_port_0=00xxxx" setp    hm2_7i96.0.watchdog.timeout_ns 5000000 loadrt pid names=pid.x,pid.y,pid.z,pid.a,pid.s loadrt abs names=abs.0,abs.spindle loadrt lowpass names=lowpass.spindle loadrt scale names=scale.spindle loadrt near loadrt or2 names=tool_probe, names=E_stop_comb loadrt mux16 names=jogincr addf hm2_7i96.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.a.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 near.0                   servo-thread addf hm2_7i96.0.write         servo-thread addf abs.0              servo-thread addf tool_probe           servo-thread addf E_stop_comb          servo-thread addf jogincr                  servo-thread # external output signals # --- COOLANT-MIST --- net coolant-mist  =>     hm2_7i96.0.ssr.00.out-01 # --- Probe Blast--- #net probe-blast => hm2_7i96.0.ssr.00.out-02 # external input signals # --- MACHINE-ON --- net external-machine-on <= hm2_7i96.0.gpio.003.in_not # --- ESTOP-EXT --- net estop-ext     <=  hm2_7i96.0.gpio.000.in #=> E_stop_comb.in0 # --- PROBE-IN --- #net probe-in     <=  hm2_7i96.0.gpio.001.in net toolsetter-in     <=  hm2_7i96.0.gpio.001.in => tool_probe.in0 net probe-in     <=  hm2_7i96.0.gpio.002.in_not => tool_probe.in1 # --- ESTOP-EXT --- #net estop-pendant     <=  hm2_7i96.0.gpio.045.in_not #=> E_stop_comb.in1 net tool-or-probe tool_probe.out #net comb_E_stop E_stop_comb.out #******************* #  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 # This setting is to limit bogus stepgen # velocity corrections caused by position # feedback sample time jitter. setp   pid.x.maxerror 0.000500 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_7i96.0.stepgen.00.dirsetup        [JOINT_0]DIRSETUP setp   hm2_7i96.0.stepgen.00.dirhold         [JOINT_0]DIRHOLD setp   hm2_7i96.0.stepgen.00.steplen         [JOINT_0]STEPLEN setp   hm2_7i96.0.stepgen.00.stepspace       [JOINT_0]STEPSPACE setp   hm2_7i96.0.stepgen.00.position-scale  [JOINT_0]STEP_SCALE setp   hm2_7i96.0.stepgen.00.step_type        0 setp   hm2_7i96.0.stepgen.00.control-type     1 setp   hm2_7i96.0.stepgen.00.maxaccel         [JOINT_0]STEPGEN_MAXACCEL setp   hm2_7i96.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_7i96.0.stepgen.00.velocity-cmd net x-pos-fb     <= hm2_7i96.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_7i96.0.stepgen.00.enable # ---setup home / limit switch signals--- net x-home-sw     =>  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 #******************* #  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 # This setting is to limit bogus stepgen # velocity corrections caused by position # feedback sample time jitter. setp   pid.y.maxerror 0.000500 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_7i96.0.stepgen.01.dirsetup        [JOINT_1]DIRSETUP setp   hm2_7i96.0.stepgen.01.dirhold         [JOINT_1]DIRHOLD setp   hm2_7i96.0.stepgen.01.steplen         [JOINT_1]STEPLEN setp   hm2_7i96.0.stepgen.01.stepspace       [JOINT_1]STEPSPACE setp   hm2_7i96.0.stepgen.01.position-scale  [JOINT_1]STEP_SCALE setp   hm2_7i96.0.stepgen.01.step_type        0 setp   hm2_7i96.0.stepgen.01.control-type     1 setp   hm2_7i96.0.stepgen.01.maxaccel         [JOINT_1]STEPGEN_MAXACCEL setp   hm2_7i96.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_7i96.0.stepgen.01.velocity-cmd net y-pos-fb     <= hm2_7i96.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_7i96.0.stepgen.01.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 # This setting is to limit bogus stepgen # velocity corrections caused by position # feedback sample time jitter. setp   pid.z.maxerror 0.000500 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_7i96.0.stepgen.02.dirsetup        [JOINT_2]DIRSETUP setp   hm2_7i96.0.stepgen.02.dirhold         [JOINT_2]DIRHOLD setp   hm2_7i96.0.stepgen.02.steplen         [JOINT_2]STEPLEN setp   hm2_7i96.0.stepgen.02.stepspace       [JOINT_2]STEPSPACE setp   hm2_7i96.0.stepgen.02.position-scale  [JOINT_2]STEP_SCALE setp   hm2_7i96.0.stepgen.02.step_type        0 setp   hm2_7i96.0.stepgen.02.control-type     1 setp   hm2_7i96.0.stepgen.02.maxaccel         [JOINT_2]STEPGEN_MAXACCEL setp   hm2_7i96.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_7i96.0.stepgen.02.velocity-cmd net z-pos-fb     <= hm2_7i96.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_7i96.0.stepgen.02.enable # ---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 #******************* #  AXIS A JOINT 3 #******************* setp   pid.a.Pgain     [JOINT_3]P setp   pid.a.Igain     [JOINT_3]I setp   pid.a.Dgain     [JOINT_3]D setp   pid.a.bias      [JOINT_3]BIAS setp   pid.a.FF0       [JOINT_3]FF0 setp   pid.a.FF1       [JOINT_3]FF1 setp   pid.a.FF2       [JOINT_3]FF2 setp   pid.a.deadband  [JOINT_3]DEADBAND setp   pid.a.maxoutput [JOINT_3]MAX_OUTPUT setp   pid.a.error-previous-target true # This setting is to limit bogus stepgen # velocity corrections caused by position # feedback sample time jitter. setp   pid.a.maxerror 0.000500 net a-index-enable  <=> pid.a.index-enable net a-enable        =>  pid.a.enable net a-pos-cmd       =>  pid.a.command net a-pos-fb        =>  pid.a.feedback net a-output        <=  pid.a.output # Step Gen signals/setup setp   hm2_7i96.0.stepgen.04.dirsetup        [JOINT_3]DIRSETUP setp   hm2_7i96.0.stepgen.04.dirhold         [JOINT_3]DIRHOLD setp   hm2_7i96.0.stepgen.04.steplen         [JOINT_3]STEPLEN setp   hm2_7i96.0.stepgen.04.stepspace       [JOINT_3]STEPSPACE setp   hm2_7i96.0.stepgen.04.position-scale  [JOINT_3]STEP_SCALE setp   hm2_7i96.0.stepgen.04.step_type        0 setp   hm2_7i96.0.stepgen.04.control-type     1 setp   hm2_7i96.0.stepgen.04.maxaccel         [JOINT_3]STEPGEN_MAXACCEL setp   hm2_7i96.0.stepgen.04.maxvel           [JOINT_3]STEPGEN_MAXVEL # ---closedloop stepper signals--- net a-pos-cmd    <= joint.3.motor-pos-cmd net a-vel-cmd    <= joint.3.vel-cmd net a-output     <= hm2_7i96.0.stepgen.04.velocity-cmd net a-pos-fb     <= hm2_7i96.0.stepgen.04.position-fb net a-pos-fb     => joint.3.motor-pos-fb net a-enable     <= joint.3.amp-enable-out net a-enable     => hm2_7i96.0.stepgen.04.enable # ---setup home / limit switch signals--- net a-home-sw     =>  joint.3.home-sw-in net a-neg-limit     =>  joint.3.neg-lim-sw-in net a-pos-limit     =>  joint.3.pos-lim-sw-in #******************* #  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.000500 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_7i96.0.stepgen.03.dirsetup        [SPINDLE_0]DIRSETUP setp   hm2_7i96.0.stepgen.03.dirhold         [SPINDLE_0]DIRHOLD setp   hm2_7i96.0.stepgen.03.steplen         [SPINDLE_0]STEPLEN setp   hm2_7i96.0.stepgen.03.stepspace       [SPINDLE_0]STEPSPACE setp   hm2_7i96.0.stepgen.03.position-scale  [SPINDLE_0]STEP_SCALE setp   hm2_7i96.0.stepgen.03.step_type        0 setp   hm2_7i96.0.stepgen.03.control-type     1 setp   hm2_7i96.0.stepgen.03.maxaccel         [SPINDLE_0]MAX_ACCELERATION setp   hm2_7i96.0.stepgen.03.maxvel           [SPINDLE_0]MAX_VELOCITY net spindle-vel-cmd-rps  => hm2_7i96.0.stepgen.03.velocity-cmd #(enables the DMM drive with the power button) net machine-is-on <= halui.machine.is-on net machine-is-on => hm2_7i96.0.ssr.00.out-00 #(enables the spindle stepgen) net machine-is-enabled <= motion.motion-enabled net machine-is-enabled => hm2_7i96.0.stepgen.03.enable # ---Encoder feedback signals/setup--- setp    hm2_7i96.0.encoder.00.counter-mode 0 setp    hm2_7i96.0.encoder.00.filter 1 setp    hm2_7i96.0.encoder.00.index-invert 0 setp    hm2_7i96.0.encoder.00.index-mask 0 setp    hm2_7i96.0.encoder.00.index-mask-invert 0 setp    hm2_7i96.0.encoder.00.scale  [SPINDLE_0]ENCODER_SCALE net spindle-revs             <=   hm2_7i96.0.encoder.00.position net spindle-vel-fb-rps       <=   hm2_7i96.0.encoder.00.velocity net spindle-index-enable     <=>  hm2_7i96.0.encoder.00.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--- net spindle-vel-cmd-rps    =>  near.0.in1 net spindle-vel-fb-rps-abs =>  near.0.in2 net spindle-at-speed       <=  near.0.out net spindle-vel-fb-rps         =>  abs.0.in net spindle-vel-fb-rps-abs abs.0.out setp near.0.scale 1.000000 setp near.0.difference 2.00 #  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   #****************************** # 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 axis-select-a  halui.axis.a.select net jog-a-pos      halui.axis.a.plus net jog-a-neg      halui.axis.a.minus net jog-a-analog   halui.axis.a.analog net a-is-homed     halui.joint.3.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 #  ---coolant signals--- net coolant-mist      <=  iocontrol.0.coolant-mist net coolant-flood     <=  iocontrol.0.coolant-flood #  ---probe signal--- #net probe-in     =>  motion.probe-input net tool-or-probe     =>  motion.probe-input #  ---motion control signals--- net in-position               <=  motion.in-position net machine-is-enabled        <=  motion.motion-enabled #  ---digital in / out signals--- #  ---estop signals--- net estop-out     <=  iocontrol.0.user-enable-out #net comb_E_stop   =>  iocontrol.0.emc-enable-in net estop-ext     =>  iocontrol.0.emc-enable-in #net estop-pendant  => 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
 

Please Log in to join the conversation.

More
1 year 11 months ago #315054 by tommylight
Replied by tommylight on topic N/O Probe issue
Net probe-in ....... _not
Remove _not at the end of the pin name.

Please Log in to join the conversation.

More
1 year 10 months ago #315793 by natholego11
Replied by natholego11 on topic N/O Probe issue
ive tried with both _not and without the not, and I still get the same message.

Please Log in to join the conversation.

More
1 year 10 months ago #315799 by PCW
Replied by PCW on topic N/O Probe issue
You may have more than one issue.

First the polarity needs to be correct
( set it so the Halshow dot goes yellow when the probe is activated)

In addition, it's possible you have a noise issue. This may be fixable
by de-bouncing the pin, either in hal of by installing firmware with input
filtering (7i96_inmd.bit) and using the inm pin instead of the GPIO pin.
 

Please Log in to join the conversation.

More
1 year 10 months ago #317573 by fully_defined
Replied by fully_defined on topic N/O Probe issue

and here is a link to the probe I have.
 
I don't have a solution, but I have the same probe that I will soon be integrating into LinuxCNC, however mine is NC, not NO. I also have the toolsetter accessory that goes with an identical second probe, which comes with a slightly weaker spring, so you can set the spindle probe length with the toolsetter. There's even a magnet on the bottom.

If it helps, here is an electrical breakdown of the board on the probe. The reverse is just contacts to the pogo pins. The important part - and the point of this reply - is the pinout of the type-c port, so you can make your own cable . I will use shielded microphone cable. The solution could be that simple.

A5-CC1 & B5-CC2, are tied on the probe PCB. The little plug PCB's larger pads are +24v & gnd, and while there are passives on the little plug PCB, I don't know one way or the other if they affect the signal. It seems easy enough to remove them and bridge their pads if it comes to that.

[img


[img

Please Log in to join the conversation.

More
1 year 10 months ago #317589 by fully_defined
Replied by fully_defined on topic N/O Probe issue
I just measured the capacitance and resistance between the conductors, comparing the original cable the probe came with and the solderable PCB. They are identical.

Please Log in to join the conversation.

Time to create page: 0.095 seconds
Powered by Kunena Forum