Advanced Search

Search Results (Searched for: stepper spindle)

  • spumco
  • spumco
04 Aug 2024 02:05

Hardware needed to switch from mach 3 6 axis to linuxcnc 9 axis

Category: General LinuxCNC Questions

Rick,

You'll find that there are many ways to accomplish the same thing in LCNC, but what I suggested was a combination of boards that would easily drive 9 separate axis motors, plus an analog 0-10v output for typical spindle control, plus a fair amount of inputs & outputs, plus has 5 high-speed encoder inputs since you mentioned 'closed loop.'

The 7i84 vs 7i84D - boards have the same I/O quantity, but one is for sourcing outputs and the other (D) is for sinking outputs.

The above recommendation is just that - a suggestion of an easy way to get 9 axes.  It was not a cost or space optimized solution, and I strongly discourage you from buying anything at this point.  You need to be in research mode right now.

If you want more specific recommendations, pics of the lathe, plus a detailed description of what additional 'stuff' you want to add would help us help you.  Pics of the existing control electronics (stepper drives, spindle drive, power supplies, etc.) and anything else (control panel) would help.

Make a list of all the inputs, outputs, axes, spindle, whatever.  Identify the voltages, amps, what components you have and will need in the future.

As for loading... are you talking about stock or part blank loading?  Does this hardware currently exist, or are you planning to fabricate some sort of automation mechanism?

-S

 
  • spumco
  • spumco
02 Aug 2024 19:12

Hardware needed to switch from mach 3 6 axis to linuxcnc 9 axis

Category: General LinuxCNC Questions

Some additional info would be helpful.

What is the machine? What is the upcoming project and why do you need three additional axes?
What are the current 6 axes, and what are the three additional axes you want/need to add? (linear axes, rotary, ballscrew, belt, worm drive, etc.)
When you ask for hardware suggestions, do you mean control hardware, motion hardware, or both?
What exactly is the current control setup?  What do you plan to re-use?
Closed loop how? Closed loop steppers, or closed loop back to the control (LCNC)?  Why do you think you might want this?
What IO do you need? Voltage, sinking/sourcing, current requirements?
Is there a spindle?  How is it controlled?

Anything you can provide details on will help.
  • captain-panda
  • captain-panda's Avatar
02 Aug 2024 09:55 - 03 Aug 2024 10:08

Gravograph Engraving Machine(s) Conversion (Updated)

Category: Basic Configuration

Dear All,

Figured it out with extended reading - thanks for this great forum! - and a bit of creative try-and-error.
All 3 axes are set up and calibrated, homing works like a charm :)
Next and last open issue is the spindle - but I don't expect much difficulty with that. Otherwise there'll be another post here ...

ORIGINAL POST:
I've started a project to convert a 30-year-old engraving machine (Gravograph UNICA) to LinuxCNC running on a Raspberry PI 4 with a MESA 7C80. I have several Gravograph machines of various sizes available and am looking to roll out my conversion to most of them, if it works out as planned. These machines may be old, but as such they're solid and reliable. Also they are simple as there's just one stepper and one limit switch per axis and the spindle motor to control. The main reason for conversion is that the UNICA machine only runs on it's own Gravograph-unique operating system with a tiny monochrome CRT screen and propietary keyboard, with no communication port. The other, larger machines can communicate via serial port, but they also require Gravograph-only software ...

So far, I got the Raspberry PI, 7C80 and LinuxCNC up and running to the point that the x-axis stepper is operational by using linuxcnc.hal and linuxcnc.ini from this thread:
forum.linuxcnc.org/42-deutsch/52725-3-ac...esa-7c80-und-raspi-4

As far as I can tell, there's no wizard available (stepconf etc.) for configuring the MESA 7C80, so I need to work with the config files directly(?)

I modified linuxcnc.ini so that the stepper runs smoothly, and added three lines for the limit switch and homing. The stepper now starts running when I home the machine in LinuxCNC, and the program is apparently waiting for the limit switch to be triggered.
This is where I'm currently insecure and would like to ask for assistance:
  • What terminals to connect the limit switch to at the 7C80?
  • How to set it up as a NC contact (Switch opens when x-axis home position is reached)?
  • How to set up homing to move the spindle towards home at first if the home switch is not triggered, and then move a short distance away and back to the final home position? 

    This is my current linuxcnc.ini:
     

    File Attachment:

    File Name: linuxcnc.ini
    File Size:4 KB

     
    Thank you for reading and thanks in advance for any answers!

    Best regards,
    Erik 
    captain-panda
  • ffffrf
  • ffffrf
30 Jul 2024 13:32

help with millrun and/or custom Z-X-A(or C) lathe/machine

Category: Fusion 360

Hello everyone, hoping someone in the community can help. I have a lathe that I modified to have the headstock be driven by a positional stepper motor, and have added a spindle on the cross slide WITHOUT a Y axis. Thus, I am looking for help getting a working processor that can generate gcode for 2d milling in this configuration, meaning I can do things like drill holes on the face of my stock off center. 

What is the best way to go about doing this? Has anyone already made or used a working post processor for this? An old thread in fusion360 support said to find a post processor for millturn and remove mention of the Y axis so it only generates gcode without it - is that the right way to go about it?


Lastly, can someone verify if my kinematics are organized correctly in fusion360? My rotational/positional axis is along the Z axis and holds the stock, my spindle is on the cross slide (X axis) and points along the Z axis (attached image)

 
  • Krulli_Fräser
  • Krulli_Fräser
30 Jul 2024 09:43
Replied by Krulli_Fräser on topic Verify my Mesa selection

Verify my Mesa selection

Category: Driver Boards

First of all thanks for the quick reply.

The setup with 7i97t with 7i84 would be ideal, however the 7i84 with sourcing outputs is currently out of stock everywhere I look. The spindle vfd takes a 0-10v signal and can therefore easily be controlled with one of the 6 axis outputs. I actually follow your Schaublin retrofit and that's where I got the idea for the 7i73 in my control cabinet. This can support physical keys in a matrix and also the encoders for Spindle/feed/jog so that's really good. I'm not satisfied with the cards in my electrical panel as well, but selecting from the available components this seems to work. Also, maybe in the future I'm gonna add a 4th axis to this machine and I'm not sure which type of motor I'm gonna use then, but having the 7i96 would leave the possibility of using a stepper or a servo for that.
  • my1987toyota
  • my1987toyota's Avatar
28 Jul 2024 22:11 - 29 Jul 2024 10:13
Replied by my1987toyota on topic 7i96 non S PWM on an output possible?

7i96 non S PWM on an output possible?

Category: Driver Boards

ok below are my current HAL, INI, and PYVCP files for the foam cutter.
the HAL file
# Generated by PNCconf at Wed Jul 17 17:05:42 2024
# Using LinuxCNC version:  Master (2.9)
# 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=0xxxxxxx"  
loadrt pid names=pid.x,pid.y,pid.u,pid.v,pid.a,pid.s

loadrt pwmgen output_type=0

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.u.do-pid-calcs       servo-thread
addf pid.v.do-pid-calcs       servo-thread
addf pid.a.do-pid-calcs       servo-thread
addf pid.s.do-pid-calcs       servo-thread
addf [HMOT](CARD0).write      servo-thread

addf pwmgen.update        servo-thread
addf pwmgen.make-pulses   servo-thread

setp [HMOT](CARD0).dpll.01.timer-us -50
setp [HMOT](CARD0).stepgen.timer-number 1
setp    [HMOT](CARD0).watchdog.timeout_ns 5000000

setp pwmgen.0.dither-pwm true
setp pwmgen.0.pwm-freq 20
setp pwmgen.0.scale 100 # Change to your spindle’s top speed in RPM

# external output signals

# --- WIRE-OUTPUT-PIN ---
net spindle-speed-cmd spindle.0.speed-out => pwmgen.0.value
net spindle-on spindle.0.on => pwmgen.0.enable
net spindle-pwm pwmgen.0.pwm => [HMOT](CARD0).ssr.00.out-05


# external input signals

# --- ESTOP-EXT ---
net estop-ext     <=  [HMOT](CARD0).gpio.000.in_not

# --- HOME-X ---
net home-x     <=  [HMOT](CARD0).gpio.001.in

# --- HOME-Y ---
net home-y     <=  [HMOT](CARD0).gpio.002.in

# --- HOME-U ---
net home-U     <=  [HMOT](CARD0).gpio.003.in

# --- HOME-V ---
net home-V    <=  [HMOT](CARD0).gpio.004.in

# --- HOME-A ---
#net home-A     <=  [HMOT](CARD0).gpio.005.in


#*******************
#  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.012700

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 x-home-sw     =>  joint.0.home-sw-in
net x-home     =>  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.012700

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 y-home-sw     =>  joint.1.home-sw-in
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 U JOINT 2
#*******************

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

net u-index-enable  =>  pid.u.index-enable
net u-enable        =>  pid.u.enable
net u-pos-cmd       =>  pid.u.command
net u-pos-fb        =>  pid.u.feedback
net u-output        <=  pid.u.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 u-pos-cmd    <= joint.2.motor-pos-cmd
net u-vel-cmd    <= joint.2.vel-cmd
net u-output     => [HMOT](CARD0).stepgen.02.velocity-cmd
net u-pos-fb     <= [HMOT](CARD0).stepgen.02.position-fb
net u-pos-fb     => joint.2.motor-pos-fb
net u-enable     <= joint.2.amp-enable-out
net u-enable     => [HMOT](CARD0).stepgen.02.enable

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

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

#*******************
#  AXIS V JOINT 3
#*******************

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

net v-index-enable  =>  pid.v.index-enable
net v-enable        =>  pid.v.enable
net v-pos-cmd       =>  pid.v.command
net v-pos-fb        =>  pid.v.feedback
net v-output        <=  pid.v.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 v-pos-cmd    <= joint.3.motor-pos-cmd
net v-vel-cmd    <= joint.3.vel-cmd
net v-output     => [HMOT](CARD0).stepgen.03.velocity-cmd
net v-pos-fb     <= [HMOT](CARD0).stepgen.03.position-fb
net v-pos-fb     => joint.3.motor-pos-fb
net v-enable     <= joint.3.amp-enable-out
net v-enable     => [HMOT](CARD0).stepgen.03.enable

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

#net v-home-sw     =>  joint.3.home-sw-in
net home-v     =>  joint.3.home-sw-in
net v-neg-limit     =>  joint.3.neg-lim-sw-in
net v-pos-limit     =>  joint.3.pos-lim-sw-in

#*******************
#  AXIS A JOINT 4
#*******************

setp   pid.a.Pgain     [JOINT_4]P
setp   pid.a.Igain     [JOINT_4]I
setp   pid.a.Dgain     [JOINT_4]D
setp   pid.a.bias      [JOINT_4]BIAS
setp   pid.a.FF0       [JOINT_4]FF0
setp   pid.a.FF1       [JOINT_4]FF1
setp   pid.a.FF2       [JOINT_4]FF2
setp   pid.a.deadband  [JOINT_4]DEADBAND
setp   pid.a.maxoutput [JOINT_4]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.012700

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.04.dirsetup        [JOINT_4]DIRSETUP
setp   [HMOT](CARD0).stepgen.04.dirhold         [JOINT_4]DIRHOLD
setp   [HMOT](CARD0).stepgen.04.steplen         [JOINT_4]STEPLEN
setp   [HMOT](CARD0).stepgen.04.stepspace       [JOINT_4]STEPSPACE
setp   [HMOT](CARD0).stepgen.04.position-scale  [JOINT_4]STEP_SCALE
setp   [HMOT](CARD0).stepgen.04.step_type        0
setp   [HMOT](CARD0).stepgen.04.control-type     1
setp   [HMOT](CARD0).stepgen.04.maxaccel         [JOINT_4]STEPGEN_MAXACCEL
setp   [HMOT](CARD0).stepgen.04.maxvel           [JOINT_4]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net a-pos-cmd    <= joint.4.motor-pos-cmd
net a-vel-cmd    <= joint.4.vel-cmd
net a-output     => [HMOT](CARD0).stepgen.04.velocity-cmd
net a-pos-fb     <= [HMOT](CARD0).stepgen.04.position-fb
net a-pos-fb     => joint.4.motor-pos-fb
net a-enable     <= joint.4.amp-enable-out
net a-enable     => [HMOT](CARD0).stepgen.04.enable

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

net a-home-sw     =>  joint.4.home-sw-in
#net home-a     =>  joint.4.home-sw-in
net a-neg-limit     =>  joint.4.neg-lim-sw-in
net a-pos-limit     =>  joint.4.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     => pid.s.command
net spindle-vel-fb-rpm      => pid.s.feedback
net spindle-output        <=  pid.s.output

# ---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


#******************************
# 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-u  halui.axis.u.select
net jog-u-pos      halui.axis.u.plus
net jog-u-neg      halui.axis.u.minus
net jog-u-analog   halui.axis.u.analog
net u-is-homed     halui.joint.2.is-homed
#
net axis-select-v  halui.axis.v.select
net jog-v-pos      halui.axis.v.plus
net jog-v-neg      halui.axis.v.minus
net jog-v-analog   halui.axis.v.analog
net v-is-homed     halui.joint.3.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.4.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

#  ---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---

net tool-change-request    <= iocontrol.0.tool-change
net tool-change-confirmed  => iocontrol.0.tool-changed
net tool-number            <= iocontrol.0.tool-prep-number

#  ---Use external manual tool change dialog---

loadusr -W hal_manualtoolchange
net tool-change-request    =>  hal_manualtoolchange.change
net tool-change-confirmed  <=  hal_manualtoolchange.changed
net tool-number            =>  hal_manualtoolchange.number

#  ---ignore tool prepare requests---
net tool-prepare-loopback   iocontrol.0.tool-prepare      =>  iocontrol.0.tool-prepared



the INI file

[code]# Generated by PNCconf at Wed Jul 17 17:05:42 2024
# Using LinuxCNC version:  Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

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

[DISPLAY]
DISPLAY = axis
FOAM = 1
XY_Z_POS = 5
UV_W_POS = 0
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/cnc002/linuxcnc/nc_files
PYVCP = pyvcp-panel.xml
INCREMENTS = 10mm 1mm .1mm  .01mm
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
GEOMETRY = xyuv
CYCLE_TIME = 100

[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
RS274NGC_STARTUP_CODE = G21 G40 G90 G94 G97 G64 P0.025

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

[HMOT]
CARD0=hm2_7i96.0

[HAL]
HALUI = halui
HALFILE = foam_cutter.hal
HALFILE = custom.hal
POSTGUI_HALFILE = pyvcp_options.hal
POSTGUI_HALFILE = custom_postgui.hal
SHUTDOWN = shutdown.hal

[HALUI]

[KINS]
#JOINTS = 4
JOINTS = 5
#KINEMATICS = trivkins coordinates=XYZA
#KINEMATICS = trivkins coordinates=XYUV
KINEMATICS = trivkins coordinates=XYUVA

[TRAJ]
#COORDINATES =  XYZA
#COORDINATES =  XYUV
COORDINATES =  XYUVA
MAX_ANGULAR_VELOCITY = 360.00
DEFAULT_ANGULAR_VELOCITY = 36.00
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 2.50
MAX_LINEAR_VELOCITY = 25.00

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl

#******************************************
[AXIS_X]
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
MIN_LIMIT = -0.01
MAX_LIMIT = 550.0

[JOINT_0]
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
# these are in nanoseconds
DIRSETUP   = 20000
DIRHOLD    = 20000
STEPLEN    = 5000
STEPSPACE  = 5000
STEP_SCALE = 1600.0
MIN_LIMIT = -0.01
MAX_LIMIT = 550.0
HOME_OFFSET = 0.0
#
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
#
HOME_SEQUENCE = 0
#HOME_SEQUENCE = 1
#******************************************

#******************************************
[AXIS_Y]
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
MIN_LIMIT = -0.01
MAX_LIMIT = 350.0

[JOINT_1]
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
# these are in nanoseconds
DIRSETUP   = 20000
DIRHOLD    = 20000
STEPLEN    = 5000
STEPSPACE  = 5000
STEP_SCALE = 800.0
MIN_LIMIT = -0.01
MAX_LIMIT = 350.0
HOME_OFFSET = 0.0
#
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
#
HOME_SEQUENCE = 0
#HOME_SEQUENCE = 2
#******************************************

#******************************************
[AXIS_U]
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
MIN_LIMIT = -0.01
MAX_LIMIT = 550.0

[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
# these are in nanoseconds
DIRSETUP   = 20000
DIRHOLD    = 20000
STEPLEN    = 5000
STEPSPACE  = 5000
STEP_SCALE = 800.0
MIN_LIMIT = -0.01
MAX_LIMIT = 550.0
HOME_OFFSET = 0.0
#
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
#
HOME_SEQUENCE = 0
#HOME_SEQUENCE = 0
#******************************************

#******************************************
[AXIS_V]
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
MIN_LIMIT = -0.01
MAX_LIMIT = 350.0

[JOINT_3]
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
# these are in nanoseconds
DIRSETUP   = 20000
DIRHOLD    = 20000
STEPLEN    = 5000
STEPSPACE  = 5000
STEP_SCALE = 800.0
MIN_LIMIT = -0.01
MAX_LIMIT = 350.0
HOME_OFFSET = 0.0
#
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
#
HOME_SEQUENCE = 0
#HOME_SEQUENCE = 2
#******************************************

#******************************************
[AXIS_A]
MAX_VELOCITY = 360.0
MAX_ACCELERATION = 1200.0
MIN_LIMIT = -361.0
MAX_LIMIT = 361.0

[JOINT_4]
TYPE = ANGULAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 360.0
MAX_ACCELERATION = 1200.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 = 450.00
STEPGEN_MAXACCEL = 1500.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
# these are in nanoseconds
DIRSETUP   = 10000
DIRHOLD    = 10000
STEPLEN    = 5000
STEPSPACE  = 5000
STEP_SCALE = 4.4444
MIN_LIMIT = -361.0
MAX_LIMIT = 361.0
HOME_OFFSET = 0.0
#
#HOME_SEARCH_VEL = -1.000000
#HOME_LATCH_VEL = -0.500000
#HOME_FINAL_VEL = 0.000000
#HOME_USE_INDEX = NO
#
HOME_SEQUENCE = 1
#HOME_SEQUENCE = 3
#******************************************

[SPINDLE_0]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 100



PYVCP hal

[code]# _DO NOT_ include your HAL commands here.
# Put custom HAL commands in custom_postgui.hal
# The commands in this file are run after the GUI loads

# **** Setup of spindle speed display using pyvcp -START ****

net spindle-vel-cmd-rpm-abs    =>    pyvcp.spindle-speed
net spindle-cw        =>    pyvcp.spindle-at-speed-led

# **** Setup of spindle speed display using pyvcp -END ****





PYVCP xml

[code]<?xml version='1.0' encoding='UTF-8'?>
<pyvcp>
         <vbox>
         <relief>RIDGE</relief>         
         <bd>6</bd>
                <label>
                        <text>"Wire Power:"</text>
                        <font>;("Helvetica",20)</font>
                </label>
                <bar>
                        <halpin>"spindle-speed"</halpin>
                        <max_>100</max_>
                </bar>
                <label>
                        <text>"Wire ON:"</text>
                        <font>;("Helvetica",20)</font>
                </label>
                <hbox>
                    <label>
                            <text>"             "</text>
                            <font>;("Helvetica",20)</font>
                    </label>
                    <led>
                        <halpin>"spindle-at-speed-led"</halpin>
                        <size>30</size>
                        <on_color>"red"</on_color>
                        <off_color>"blue"</off_color>
                    </led>
                </hbox>
        </vbox>
</pyvcp>
[/code][/code][/code]
 
  • ffffrf
  • ffffrf
28 Jul 2024 19:00

Help with pncconf Z-X-A custom machine

Category: General LinuxCNC Questions

Hello, I am modifying a sherline lathe with a positional stepper to drive the spindle, and I will have a high speed spindle mounted to the cross slide. 

I am trying to set up this machine but am confused on how to handle the Y axis. For now, I WILL NOT have a Y axis, meaning any of my milling operations will be circular or tending to the spindle center line.

However, in PNCconf, it forces me to define a Y axis - do I have to do this? How can the kinematics be resolved if linuxcnc thinks there is a Y axis but it is not supposed to function. Is there any way to remove Y axis need from the machine?

My Z axis travels along the bed of the lathe to and from the spindle, my X axis travels side to side on the cross slide, and my A axis will be the positional stepper rotating the stock.
  • centreline
  • centreline
27 Jul 2024 11:34 - 27 Jul 2024 11:37
Replied by centreline on topic Summing Z axis on bridgeport

Summing Z axis on bridgeport

Category: General LinuxCNC Questions

Ok the last two posts are really useful additions & I'm moving along on this now finally although its been awhile (life issues...). I'm tired of cranking the knee manually. I'd like to modify my machine to implement gmouer's method.

I measured the torque to move the knee up and it takes 7nm on my machine with the table laden with the 4th axis spindle and a vice, so I'm going to use a 12nm closed loop stepper, and run it at 3:1 with a 72t htd5 pulley on the end of the knee screw and matching 24t htd pulley on the stepper, with a 133t belt between the two.
On the knee, I was investigating the physical side , and on my interact1 series1 there's a service hatch cover & window behind to enable you to get at the knee crank gear, which is perfect for both replacing the bevel gear which rotates the screw with a pulley, and also for a belt to come out the side of the knee to mount a stepper on there. I think if i unscrew the nut at the top through this, and lock & block up the knee in its highest position, I can crank the screw down enough to put the pulley on without disassembling it all. I will investigate taking the pedestal off and replace the knee elevation screw with a ballscrew.
I read some other comment about the knee on a series1 not being designed to move often etc, so I was surprised to see the machine automatic oiler manifold feeding oil to the knee leadscrew nut and z slideways so I think it could work as a full time axis without wear.


 
  • Cant do this anymore bye all
  • Cant do this anymore bye all's Avatar
19 Jul 2024 14:50
Replied by Cant do this anymore bye all on topic Reconnect to Mesa ethernet card

Reconnect to Mesa ethernet card

Category: General LinuxCNC Questions

I have separate power controls for PC, MESA, Steppers & Spindle, if I'm going to be a away for a bit I just turn the Stepper & Spindle power off. And the way I have the relays that control the contactors if the mains goes & comes back on nothing energizes. To an outsider it may seem I have too many separate power supplies.
  • ffffrf
  • ffffrf
15 Jul 2024 22:29

Please help me with my ground wiring for my sherline lathe - running into issues

Category: Turning

Hey everyone, I am having an issue where isolated analog output is failing to control my sherline spindle. This issue started after I added a spindle encoder. However, there are other issues going on that make me think there is a serious issue in my ground circuitry. I did a crappy job and there are probably lots of ground loops. Despite removing the encoder, I still get spindle control issues. As it stands, both axis work fine. At one point prior to encoder, everything worked fine.

What makes me suspect a (Dangerous) ground issue - is that moving around my isolated DC power brick (Which hooks into spin- and spin+ to get me my 0-10v range) can sometimes cause the spindle to turn on.

Currently, both axis work fine.

Therefore, I am planning on redoing my wiring, particularly when it comes to ground circuitry. I made a diagram of the new proposed ground circuit and wanted to see if anyone could verify this should work correctly.

My biggest question for this is: Does step- and dir- connect to GND on the steppergen of my 7i96s, or to the ground bar that connects to the sherline frame?

 
Displaying 136 - 145 out of 145 results.
Time to create page: 0.887 seconds
Powered by Kunena Forum