My Grizzly G0619 mill

  • tommylight
  • Away
  • Moderator
  • Moderator
More
5 years 4 months ago #211864 by tommylight
Replied by tommylight on topic My Grizzly G0619 mill

my1987toyota wrote: So much to do so little spare time.

So true.
Welcome to my world ! :)
The following user(s) said Thank You: my1987toyota

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

More
5 years 4 months ago #211910 by my1987toyota
Replied by my1987toyota on topic My Grizzly G0619 mill
The Dell Optiplex 9020 micro for the mill has arrived and will be utilized soon . I already have a Crucial MX500 SSD to
install into it . I have to get the Lathe operational first before I tear out the currently in use Laptop / Smooth Stepper
Mach 3 system on the mill.

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

More
5 years 4 months ago #211911 by my1987toyota
Replied by my1987toyota on topic My Grizzly G0619 mill

tommylight wrote:

my1987toyota wrote: So much to do so little spare time.

So true.
Welcome to my world ! :)


Wait you mean that isn't normal ? LOL.

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

More
5 years 4 months ago - 5 years 4 months ago #212629 by my1987toyota
Replied by my1987toyota on topic My Grizzly G0619 mill
Well as I am sure everyone knows the price on everything has, or is in the process of going up . Today I went ahead and ordered
the new electronics enclosure before they get anymore expensive. It's a Bud Industries SNB-3752. It measures 24" x 20" x 8.34" . I guess it will soon be time for another update video.
Last edit: 5 years 4 months ago by my1987toyota.

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

More
5 years 4 months ago #212917 by my1987toyota
Replied by my1987toyota on topic My Grizzly G0619 mill
WOW I now have a few video's that I will have to plan.
So when I was setting up the G0602 lathe for CNC with dedicated X and Z
jog wheels I decided to work on an MPG for My Mach3 to Linuxcnc G0619 mill conversion as well. Little did I know the can of worms
that would turn into. I am sure it didn't help that I was also setting it up for Feed and Spindle override at the same time.

Right know I have the Hal. file with everything on it .
Code:
# Generated by PNCconf at Thu Jun 24 20:14:27 2021 # 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 loadrt hostmot2 loadrt hm2_eth board_ip="10.10.10.10" config=" num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=20xxxx" setp [HMOT](CARD0).watchdog.timeout_ns 5000000 loadrt pid names=pid.x,pid.y,pid.z,pid.a,pid.s loadrt abs names=abs.spindle loadrt lowpass names=lowpass.spindle loadrt scale names=scale.spindle loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10 numBits=50 numWords=50 loadrt mux16 names=jogincr,foincr,soincr addf [HMOT](CARD0).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 classicladder.0.refresh servo-thread addf jogincr servo-thread addf foincr servo-thread addf soincr servo-thread addf scale.spindle servo-thread addf abs.spindle servo-thread addf lowpass.spindle servo-thread addf [HMOT](CARD0).write servo-thread setp [HMOT](CARD0).dpll.01.timer-us -50 setp [HMOT](CARD0).stepgen.timer-number 1 # external output signals # --- COOLANT-MIST --- net coolant-mist => [HMOT](CARD0).7i76.0.0.output-06 # --- COOLANT-FLOOD --- net coolant-flood => [HMOT](CARD0).7i76.0.0.output-07 # external input signals # --- ESTOP-EXT --- net estop-ext <= [HMOT](CARD0).7i76.0.0.input-00 # --- SPINDLE-AT-SPEED --- net spindle-at-speed <= [HMOT](CARD0).7i76.0.0.input-01 # --- HOME-X --- net home-x <= [HMOT](CARD0).7i76.0.0.input-02 # --- HOME-Y --- net home-y <= [HMOT](CARD0).7i76.0.0.input-03 # --- HOME-Z --- net home-z <= [HMOT](CARD0).7i76.0.0.input-04 # --- JOG-INCR-A --- net jog-incr-a <= [HMOT](CARD0).7i76.0.0.input-05 # --- JOG-INCR-B --- net jog-incr-b <= [HMOT](CARD0).7i76.0.0.input-06 # --- JOINT-SELECT-D --- #net joint-select-d -commented out net axis-select-a <= [HMOT](CARD0).7i76.0.0.input-20 # --- JOINT-SELECT-C --- #net joint-select-c -commented out net axis-select-z <= [HMOT](CARD0).7i76.0.0.input-21 # --- JOINT-SELECT-B --- #net joint-select-b -commented out net axis-select-y <= [HMOT](CARD0).7i76.0.0.input-22 # --- JOINT-SELECT-A JOINT AXIS X SELECT--- #net joint-select-a -commented out net axis-select-x <= [HMOT](CARD0).7i76.0.0.input-23 # ---feed-overide-enable--- net fo-enable <= [HMOT](CARD0).7i76.0.0.input-24 # --- spindle-overide enable--- net so-enable <= [HMOT](CARD0).7i76.0.0.input-25 #******************* # 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 [HMOT](CARD0).stepgen.00.dirsetup [JOINT_0]DIRSETUP setp [HMOT](CARD0).stepgen.00.dirhold [JOINT_0]DIRHOLD setp [HMOT](CARD0).stepgen.00.steplen [JOINT_0]STEPLEN setp [HMOT](CARD0).stepgen.00.stepspace [JOINT_0]STEPSPACE setp [HMOT](CARD0).stepgen.00.position-scale [JOINT_0]STEP_SCALE setp [HMOT](CARD0).stepgen.00.step_type 0 setp [HMOT](CARD0).stepgen.00.control-type 1 setp [HMOT](CARD0).stepgen.00.maxaccel [JOINT_0]STEPGEN_MAXACCEL setp [HMOT](CARD0).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 <= [HMOT](CARD0).stepgen.00.velocity-cmd net x-pos-fb <= [HMOT](CARD0).stepgen.00.position-fb net x-pos-fb => joint.0.motor-pos-fb net x-enable <= joint.0.amp-enable-out net x-enable => [HMOT](CARD0).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 #******************* # 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 [HMOT](CARD0).stepgen.01.dirsetup [JOINT_1]DIRSETUP setp [HMOT](CARD0).stepgen.01.dirhold [JOINT_1]DIRHOLD setp [HMOT](CARD0).stepgen.01.steplen [JOINT_1]STEPLEN setp [HMOT](CARD0).stepgen.01.stepspace [JOINT_1]STEPSPACE setp [HMOT](CARD0).stepgen.01.position-scale [JOINT_1]STEP_SCALE setp [HMOT](CARD0).stepgen.01.step_type 0 setp [HMOT](CARD0).stepgen.01.control-type 1 setp [HMOT](CARD0).stepgen.01.maxaccel [JOINT_1]STEPGEN_MAXACCEL setp [HMOT](CARD0).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 <= [HMOT](CARD0).stepgen.01.velocity-cmd net y-pos-fb <= [HMOT](CARD0).stepgen.01.position-fb net y-pos-fb => joint.1.motor-pos-fb net y-enable <= joint.1.amp-enable-out net y-enable => [HMOT](CARD0).stepgen.01.enable # ---setup home / limit switch signals--- net home-y => 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 [HMOT](CARD0).stepgen.02.dirsetup [JOINT_2]DIRSETUP setp [HMOT](CARD0).stepgen.02.dirhold [JOINT_2]DIRHOLD setp [HMOT](CARD0).stepgen.02.steplen [JOINT_2]STEPLEN setp [HMOT](CARD0).stepgen.02.stepspace [JOINT_2]STEPSPACE setp [HMOT](CARD0).stepgen.02.position-scale [JOINT_2]STEP_SCALE setp [HMOT](CARD0).stepgen.02.step_type 0 setp [HMOT](CARD0).stepgen.02.control-type 1 setp [HMOT](CARD0).stepgen.02.maxaccel [JOINT_2]STEPGEN_MAXACCEL setp [HMOT](CARD0).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 <= [HMOT](CARD0).stepgen.02.velocity-cmd net z-pos-fb <= [HMOT](CARD0).stepgen.02.position-fb net z-pos-fb => joint.2.motor-pos-fb net z-enable <= joint.2.amp-enable-out net z-enable => [HMOT](CARD0).stepgen.02.enable # ---setup home / limit switch signals--- net home-z => 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 [HMOT](CARD0).stepgen.03.dirsetup [JOINT_3]DIRSETUP setp [HMOT](CARD0).stepgen.03.dirhold [JOINT_3]DIRHOLD setp [HMOT](CARD0).stepgen.03.steplen [JOINT_3]STEPLEN setp [HMOT](CARD0).stepgen.03.stepspace [JOINT_3]STEPSPACE setp [HMOT](CARD0).stepgen.03.position-scale [JOINT_3]STEP_SCALE setp [HMOT](CARD0).stepgen.03.step_type 0 setp [HMOT](CARD0).stepgen.03.control-type 1 setp [HMOT](CARD0).stepgen.03.maxaccel [JOINT_3]STEPGEN_MAXACCEL setp [HMOT](CARD0).stepgen.03.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 <= [HMOT](CARD0).stepgen.03.velocity-cmd net a-pos-fb <= [HMOT](CARD0).stepgen.03.position-fb net a-pos-fb => joint.3.motor-pos-fb net a-enable <= joint.3.amp-enable-out net a-enable => [HMOT](CARD0).stepgen.03.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 net spindle-index-enable <=> pid.s.index-enable net spindle-enable => pid.s.enable net spindle-vel-cmd-rpm-abs => pid.s.command net spindle-vel-fb-rpm-abs => pid.s.feedback net spindle-output <= pid.s.output # ---digital potentionmeter output signals/setup--- setp [HMOT](CARD0).7i76.0.0.spinout-minlim [SPINDLE_0]OUTPUT_MIN_LIMIT setp [HMOT](CARD0).7i76.0.0.spinout-maxlim [SPINDLE_0]OUTPUT_MAX_LIMIT setp [HMOT](CARD0).7i76.0.0.spinout-scalemax [SPINDLE_0]OUTPUT_SCALE net spindle-output => [HMOT](CARD0).7i76.0.0.spinout net spindle-enable => [HMOT](CARD0).7i76.0.0.spinena net spindle-ccw => [HMOT](CARD0).7i76.0.0.spindir # ---Encoder feedback signals/setup--- setp [HMOT](CARD0).encoder.00.counter-mode 0 setp [HMOT](CARD0).encoder.00.filter 1 setp [HMOT](CARD0).encoder.00.index-invert 0 setp [HMOT](CARD0).encoder.00.index-mask 0 setp [HMOT](CARD0).encoder.00.index-mask-invert 0 setp [HMOT](CARD0).encoder.00.scale [SPINDLE_0]ENCODER_SCALE net spindle-revs <= [HMOT](CARD0).encoder.00.position net spindle-vel-fb-rps <= [HMOT](CARD0).encoder.00.velocity net spindle-index-enable <=> [HMOT](CARD0).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 # 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 # ---jogwheel signals to mesa encoder - shared MPG--- net axis-selected-count <= [HMOT](CARD0).7i76.0.0.enc0.count # ---mpg signals--- # for axis x MPG setp axis.x.jog-vel-mode 0 net selected-jog-incr => axis.x.jog-scale net axis-select-x => axis.x.jog-enable net axis-selected-count => axis.x.jog-counts # for axis y MPG setp axis.y.jog-vel-mode 0 net selected-jog-incr => axis.y.jog-scale net axis-select-y => axis.y.jog-enable net axis-selected-count => axis.y.jog-counts # for axis z MPG setp axis.z.jog-vel-mode 0 net selected-jog-incr => axis.z.jog-scale net axis-select-z => axis.z.jog-enable net axis-selected-count => axis.z.jog-counts # for axis a MPG setp axis.a.jog-vel-mode 0 net selected-jog-incr => axis.a.jog-scale net axis-select-a => axis.a.jog-enable net axis-selected-count => axis.a.jog-counts # connect selectable mpg jog increments net jog-incr-a => jogincr.sel0 net jog-incr-b => jogincr.sel1 net jog-incr-c => jogincr.sel2 net jog-incr-d => jogincr.sel3 net selected-jog-incr <= jogincr.out-f setp jogincr.debounce-time 0.200000 setp jogincr.use-graycode False setp jogincr.suppress-no-input False setp jogincr.in00 0.000000 setp jogincr.in01 0.000100 setp jogincr.in02 0.001000 setp jogincr.in03 0.000000 setp jogincr.in04 0.010000 setp jogincr.in05 0.000000 setp jogincr.in06 0.000000 setp jogincr.in07 0.000000 setp jogincr.in08 0.100000 setp jogincr.in09 0.000000 setp jogincr.in10 0.000000 setp jogincr.in11 0.000000 setp jogincr.in12 0.000000 setp jogincr.in13 0.000000 setp jogincr.in14 0.000000 setp jogincr.in15 0.000000 # connect feed overide increments - MPG setp halui.feed-override.direct-value false setp halui.feed-override.scale .01 net fo-enable => halui.feed-override.count-enable net axis-selected-count => halui.feed-override.counts # connect spindle overide increments - MPG setp halui.spindle.0.override.direct-value false setp halui.spindle.0.override.scale .01 net so-enable => halui.spindle.0.override.count-enable net axis-selected-count => halui.spindle.0.override.counts # ---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 estop-ext => 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 # Load Classicladder without GUI (can reload LADDER GUI in AXIS GUI loadusr classicladder --nogui custom.clp
However I will probably make a video later of making a dedicated MPG.hal so if someone were so inclined to add one in after initial PNCConf setup, it's possible.

I found a few different hal. files to check out and that really helped me figure out how to make mine work. I guess Like with Arduino their are many ways to write a program to achieve the same goal. Still very frustrating to Noobs like me.

Thanks to rodw if he reads this, your hal. file on page 3 of your spaceship build is one of the ones that helped
forum.linuxcnc.org/show-your-stuff/32029...build?start=20#85279
forum.linuxcnc.org/show-your-stuff/32029...build?start=20#85305

another one that helped isn't on this site but if you are using the 5i25/6i25 and 7i76 cards this my help as well.
wapl.es/cnc/2020/02/23/linuxcnc-jog-wheel-setup.html

All in All I have so much to do as I continue to tumble down the Linuxcnc rabbit hole. I am starting to wonder which is more
enjoyable building the machines to make parts or actually making the parts? HMMM
The following user(s) said Thank You: rodw

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

  • tommylight
  • Away
  • Moderator
  • Moderator
More
5 years 4 months ago #212921 by tommylight
Replied by tommylight on topic My Grizzly G0619 mill
Building the machines! :)
The following user(s) said Thank You: my1987toyota

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

Time to create page: 0.550 seconds
Powered by Kunena Forum