Advanced Search

Search Results (Searched for: stepper spindle)

22 Nov 2024 20:29
N/O Probe issue was created by natholego11

N/O Probe issue

Category: HAL

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.
# 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
 
16 Nov 2024 04:32

7i96s, 3 axis mill conversion, servo spindle, probe basic almost full function

Category: Basic Configuration

Hey guys. I wonder if someone could assist me in nutting a problem in my configuration. I know the layout of the config has more than one problem, and i plan to learn better how to fix this myself, however as long as i have the axis' dialled in and the servo spindle controlled through the software i am a-ok with not having spindle orientation and extras setup until I better understand the Hal configurations. 

I have been running Probe Basic as a 3 axis stepper driven mill configuration, 3 homing switches for a year using the standard mill motor spindle and that has worked fine. I have just installed a Servo Motor to drive the spindle and now for some reason I am getting a joint following error when homing any axis. 

I have had the servo spindle working in a test file, (both Axis and probe basic GUIs),but when combined together in the previously working Probe Basic config I have issues. 

I have a feeling it might be something that is related to the post-gui file, as in an attempt to chase errors I was getting I have consolidated a not task that was conflicting, and I have reached to end of my limited knowledge.

I am working regularly to better understand the control flow within linuxcnc, but for now, if i was just able to get a minimal running configuration sorted I could at least use the machine whilst i gain that better knowledge. 

Thanks very much,
Bruno
15 Nov 2024 20:16

LinuxCNC (More) lathe questions

Category: General LinuxCNC Questions

Bunch of questions, Hopefully someone can fill in a few blanks as I formulate a plan for the lathe.

I'm using Axis for my mill and I'm completely happy with it. I'm now considering using LinuxCNC for my lathe. I definitely want to maintain manual operation capability.

Presently I have a derivative of the Clough42 ELS with feedback from the spindle and a stepper driving the leadscrew for threading. I like the simplicity of selecting various thread pitches metric and SAE electronically.
1) I don't suppose LinuxCNC has this "ELS" capability?

2) I also have DRO scales. Assuming I will use a MESA board, is it possible to connect the scales to the MESA board and use LinuxCNC as a glorified DRO without actually driving any steppers/servos?

3) Assuming for the moment I can use LinuxCNC simply as a DRO, what MESA board(s) would be a good fit for say max 3 encoder inputs and possibly up to 3 steppers later?

 I have a RaspberryPi of some sort and I might try using it for the LinuxCNC for both space and $.

4) What RaspberryPI's are likely to have acceptable latency and what versions should I avoid?

 I find the Axis GUI a good fit for my needs on the mill, what GUI is a good fit for lathe control?

Much appreciated.

 

I won't comment on GUI choice(s) here - those are personal preferences.  Regarding your other questions:
  • Yes, LCNC has "ELS" capability.  Not in a turn-key configuration, but there's no reason you can't set LCNC up to act like your ELS.  All the elements are present: spindle encoder + Z-axis positioning motor + configurable logic.
  • Yes.  And LCNC already has a "DRO" mode.  See  linuxcnc.org/docs/devel/html/gui/mdro.html
  • You can read my long-winded post here:  forum.linuxcnc.org/27-driver-boards/5160...i-buy?start=0#292576
    • I'm not an expert, but I think the absolute cheapest Mesa combination to get an FPGA card (required) and 3 axis/spindle encoder inputs & step/dir outputs is a 7i92 (any variant) and a 7i85s.  You'd still need something else for IO, but that depends on your particular setup.
    • If your IO needs are moderate, a 7i96s and 7i85s would get you the IO and keep packaging to two (vs three) boards.
  • Based on very little personal experience, Rpi's usually have decent to very good latency and potentially not-so-good user-interface response.  i.e. 'laggy' if using a power-hungry GUI.  If you are using Mesa hardware you don't have to worry about latency with an Rpi. 
    • I've got an Rpi5 and while I'm not using it (right now), it was just fine when I tested it with LCNC and Probe Basic (no interface lag).
  • Lathe GUI - any GUI is fine except Axis.
15 Nov 2024 14:44 - 15 Nov 2024 18:28

LinuxCNC (More) lathe questions

Category: General LinuxCNC Questions

Bunch of questions, Hopefully someone can fill in a few blanks as I formulate a plan for the lathe.

I'm using Axis for my mill and I'm completely happy with it. I'm now considering using LinuxCNC for my lathe. I definitely want to maintain manual operation capability.

Presently I have a derivative of the Clough42 ELS with feedback from the spindle and a stepper driving the leadscrew for threading. I like the simplicity of selecting various thread pitches metric and SAE electronically.
1) I don't suppose LinuxCNC has this "ELS" capability?

2) I also have DRO scales. Assuming I will use a MESA board, is it possible to connect the scales to the MESA board and use LinuxCNC as a glorified DRO without actually driving any steppers/servos?

3) Assuming for the moment I can use LinuxCNC simply as a DRO, what MESA board(s) would be a good fit for say max 3 encoder inputs and possibly up to 3 steppers later?

 I have a RaspberryPi of some sort and I might try using it for the LinuxCNC for both space and $.

4) What RaspberryPI's are likely to have acceptable latency and what versions should I avoid?

 I find the Axis GUI a good fit for my needs on the mill, what GUI is a good fit for lathe control?

Much appreciated.
 
15 Nov 2024 13:09

Novakon Mill Conversion - Getting Started

Category: CNC Machines

Thank you! That did the trick. I did that when I was trying to mash two files together, but when I realized that I could use the wizard i forgot about it plus the wizard lets you select the drive which gives you 500 for that value which maybe keeps you from running away or burning something up but doesn't do much for making the motors turn. I dug the other specs out of my old files for the drive and put them in the wizard and the steppers sound happy again. Now I just have to get the spindle drive to respond and I'll be back where I started :O) Thanks again for your quick replies and patience with me.
14 Nov 2024 19:56

Novakon Mill Conversion - Getting Started

Category: CNC Machines

The drives are there and should be working.

I had this whole mill making chips well for a few years with a parallel port and 2.7 i think. A power surge took out the VFD for the spindle. There was some glitch with linux that the screensaver wouldn't wake up so you'd have to reboot. I had that one bypassed, but it resurfaced and I couldn't remember how to fix it. I made a bad vfd buy on ebay and later a couple of stepper drives went bad at some point. Then it sat for a while. I'm trying to get it running again now.

It has some new to me used gecko 201's on all 3 axes. Its got an offbrand new vfd that works in manual mode at least on the spindle. and a new (used) PC with 2.9 on it.

I checked for movement on all three connected axes. Seems to have different holding torque on different axes but no movement whatsoever.
14 Nov 2024 18:24

Mesa 7i96s / Network no longer working

Category: Driver Boards

Ok, this is getting weird ... Yesterday i mounted the mesa card from the lathe into the mill, all worked fine... made parts for like 3+ hours .. Today i power up the mill again and the second mesa card network is also no longer working :( :( I dont understand, there was zero change to the electronics, since decenmber last year or sometime around.. (added 3d-probe)
The only power coming to the mesa card is 5v from a step down converter (24v->5v) which goes into the vc+/gnd and +5 to the input common.. all outputs go to a relay board. China spindle to pwm 0-10v . Xyz-axis Stepper drivers are on a seperate 48v psu, A-axis Stepper is on the 24v psu

This setup was working for ~1 year... Is there any chance some voltage spike (iam no electronics guy ;) ) could kill only the ethernet ?

-
schnellmued
14 Nov 2024 13:38

Please help with Nema 23 closed loop CL57T-V41 driver Microstep Switches

Category: Off Topic and Test Posts

Good evening @ my1987toyota,  Thank you for your valuable advice, I understand your explanation on the X and the Y axis. I can picture that in my head.

This Nema 23 motor and the associated driver is only hardware I have, I bought just a single one so can be familiar with the wiring and how stepper motor works.

Originally, I was thinking of Mach3, whereby I can use a cheap, around $AUD 20.00 BOB, and readily available. But LinuxCNC looks more appealing even though it is a bit more involved. I have seen videos where they run motors and spindle with LinuxCNC without any mechanical parts. I would like to take this path as well, once I understand the electronics, I will think about getting the mechanical parts.

I will heed advice and will be reading the LinuxCNC manual :) I have seen videos on it but I have not done a lot of reading yet.

Thank you and best regards,

...behai.

 
13 Nov 2024 20:17

Multiple controller boards

Category: General LinuxCNC Questions

Greetings,
I'm wondering,  it's it possible to connect a couple of controller boards  (like Arduino) to LinuxCNC, i.e.one for XYZ, anothe for ABC, one more for adding a turret or a double spindle..?

Why not, it seems to me there must be a way now as computers got super processing powers.

If yes, is there a specific controller board type(s) that can be connected together? Maybe several types may inter communicate with LinuxCNC and to themselves too?

Or maybe connect a number of these boards to a number of servo motors and drivers and other boards to other stepper motors and drivers?

Exactly, I am just at a beginner, trying to figure out how to make my super fancy machine., so do you think my dreams are valid, or can be true soon?
Is there some hardware that I have to buy prior to others, you know in order to plan the priorities and budget, but make sure I want to build the fancy CNC?

I'm sure there are many like me.

Thanks,,
Byes
12 Nov 2024 22:05

Mesa, Linuxcnc with step direction servo's for axis and analog servo spindle.

Category: Basic Configuration

from what I can tell the pnconfig doesn't give the option for step/direction, and the stepper configurator doesn't do addressing other than parport, so the mesa addressing would have to all be put in later. Im not at the shop now so I can't show what the set up is now, but to me it looks like its analog when it need to be step and dir.. I did attach my hal and ini in the first post.
26 Oct 2024 12:50 - 26 Oct 2024 12:51

Help with Denford Machine config

Category: General LinuxCNC Questions

Hello!

I posted before relatively recently about this machine I received. it's giving me way more trouble to configure than I would like. The amount of confusion the config itself gives me is painful. So I need some advice. I was advised earlier that the config I originally used (as was a startup with a machine) was off. so I loaded up the earliest config which did have the correct orientation and yet refused to let the machine move by itself in manual control as the previous config did allow. Seems like the spindle is controlled manually via VFD and I have no idea how to link it to the operating software. I have no knowledge about the stepper motors and the speeds and all that jazz and me looking into Google for information leaves way more questions than it answers. Is there a guide I can use that helps with the software side of it ? I would like to at least make some progress cutting things :c.

So.. config is no help tbh. The work area is not set and I didn't see a prompt to set it in the config wizard. so the result is a tiny square in the corner. The machine also does seem to home with no problem but the spindle does not move in any axis and I cannot move it in manual mode. The VFD when powered up does spin the spindle at a set speed. (no idea where that control is).

So I need help or a guide or something before I end up giving up on this thing entirely. It's clear it's previously used Retrofitted the machine but I received no documentation with it so I'm a newbie with a nonstandard machine.

I will link my previous post as it contains pictures of my machine. 
I can always try to splash out and ditch Linux as a software entirely and use Denford's software or something that isn't infinitely confusing.

Link to past post: forum.linuxcnc.org/38-general-linuxcnc-q...-machine-axis-config

THANK YOU in advance for any tips and tricks!

 
25 Oct 2024 11:01 - 25 Oct 2024 11:09

LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)

Category: Computers and Hardware

Hello,

after diving a bit more deeply into LinuxCNC-RIO and having a closer look at the Tangbob and riocore, a few questions have come up:
1) almost every connector on the board makes sense to me, except J5 + J6 (Down/ Up) -> what are these connectors for?  

2) as i get it, i can use 2 BOB's simultanously with this board, correct? Do these boards still need the 12-24V input on the right side, or is the 5V input only sufficient to drive all Inputs and Outputs correctly? Except for the PWM Output (Spindle Control) on the right side, i bet.

3) do i have to use the BOB's Inputs / Outputs (left and lower Side) as such, or can i map them freely in riocore, f.e. use the - usually stepdir output - pins P2-P5 as Encoder input pins? 

4) can i power a LED strip directly via wled1 with the onboard 5V supply, or would an external supply be better?

Secondly i played around with the Tangbob configuration in riocore and as it seems i must be doing something completely wrong or there must be something messed up with the bitin/ bitout defintions for the Tangbob board somewhere:

Board: Tangbob
Toolchain: icestorm
Protocol: UDP

LinuxCNC:
3 Axis
mill
manual toolchange
axis gui

Modules:
china bob left -> split

Plugins added:
ads111514 on i2c             -> all ok
wled bar on wled             -> all ok
modbus1 on modbus             -> all ok
stepdir on RIGHT: P2 + P2         -> all ok
stepper17 on RIGHT: P3 to P6        -> all ok
quadencoder on RIGHT: P10 - P12     -> all ok
bitout on RIGHT: P8            -> compiles well 

but the latter gives a long error message when firing up LinuxCNC:

riocomp.c:185:28: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘OUT_BIT’
  185 |     hal_bit_t   *SIGOUT_P8 OUT_BIT;
      |                            ^~~~~~~

[...and TONS of similar/ follow up errors]

looking at riocomp.c:185 reveals:

"hal_bit_t   *SIGOUT_P8 OUT_BIT" <- looks like a missing underscore between P8 and OUT, with added underscore i just get:

   
linuxcnc rio.ini 
LINUXCNC - 2.10.0~pre0
Machine configuration directory is '/media/gitano/Alhambra/Software/Linux/CAD+CAM/LinuxCNC-RIO/riocore/Output/Tangbob/LinuxCNC'
Machine configuration file is 'rio.ini'
Starting LinuxCNC...
linuxcncsvr (563355) emcsvr: machine 'Rio - mill'  version '1.1'
linuxcnc TPMOD=tpmod HOMEMOD=homemod EMCMOT=motmod
Note: Using POSIX non-realtime
milltask (563384) task: machine 'Rio - mill'  version '1.1'
halui (563390) halui: machine 'Rio - mill'  version '1.1'
twopass:invoked with <> options
twopass:found ./rio.hal
twopass:found ./pregui_call_list.hal
twopass:pass0: loadusr -W hal_manualtoolchange
riocomp.c: In function ‘register_signals’:
riocomp.c:541:51: error: ‘data_t’ has no member named ‘SIGOUT_P8’
  541 |     if (retval = hal_pin_bit_newf  (HAL_IN, &;(data->SIGOUT_P8 OUT_BIT), comp_id, "%s.P8 OUT.bit", prefix) != 0) error_handler(retval);
      |                                                   ^~
riocomp.c:541:62: error: expected ‘)’ before ‘OUT_BIT’
  541 |     if (retval = hal_pin_bit_newf  (HAL_IN, &;(data->SIGOUT_P8 OUT_BIT), comp_id, "%s.P8 OUT.bit", prefix) != 0) error_handler(retval);
      |                                              ~               ^~~~~~~~
      |                                                              )
riocomp.c:542:10: error: ‘data_t’ has no member named ‘SIGOUT_P8’
  542 |     *data->SIGOUT_P8 OUT_BIT = 0;
      |          ^~
riocomp.c:542:21: error: expected ‘;’ before ‘OUT_BIT’
  542 |     *data->SIGOUT_P8 OUT_BIT = 0;
      |                     ^~~~~~~~
      |                     ;
riocomp.c: In function ‘convert_varout1_bitout19_bit’:
riocomp.c:1013:23: error: ‘data_t’ has no member named ‘OUT_BIT’
 1013 |     bool value = *data->OUT_BIT;
      |                       ^~
make: *** [/usr/share/linuxcnc/Makefile.modinc:117: riocomp.o] Error 1
# compiling and loading rio component...failed

adding the same fix in line 541, 542 and adding SIGOUT_P8_ before OUT_BIT in line 1013 as well as uncommenting OUT_BIT in rio.hal and custom_postgui_hal, axis GUI fires up. The defined button for P8 shows up fine in GUI, i guess it won't work with hardware, though.

I tried adding bitins and outs for other boards (iceshield and octobot) and there they work fine.

All in virtuality, i still have no hardware around, but that will change soon

Cheers,
-lgitano

P.S.: Dont know if it is correct to post such userspace/ configurations issues here as this thread perhaps gets quite huge, or if it would be better to open new board specific threads? If You think so, i will do the latter :)
25 Oct 2024 00:15
Replied by HogWild on topic Installation Error

Installation Error

Category: Installing LinuxCNC

I assume the machine configs define things like:

- number of axes
- stepper motor count per axis
- axis limit switches
- spindle functionality: fwd/rev, variable speed, output signal (0v - 10v, etc),
- estop functionality

…and so forth. Maybe they also define your motion control board and any daughter boards too?
18 Oct 2024 01:56
Replied by Deckerjwd on topic 7I33TA Just plug it in?

7I33TA Just plug it in?

Category: Driver Boards

the manual says it has 1 channel pulse input (33 kHz), 1 channel pulse output (33 kHz), not sure what this is maybe like stepper pulse in. im using 4 channels of the 7i52s for XYZA axis, the A is available for the spindle. still having trouble turning all the step gens on. i got it working before and i followed the forum posts that worked before but i think im doing something wrong. the machine has a spindle encoder, but the manual unclear on how to implement the pulse input. think it would be 1 cw pin, 1 ccw pin, pulse pin (step?) and some kind of enable(run) pin. have a 7i82d that i could put the pins on and use encoder and step(pulse) or pwm out on the 7i52s
17 Oct 2024 05:45

Mazak Quickturn 10 x2 retrofit ideas!

Category: Turning

Hi All, 
I've started to build a retrofit system for a Cincinnati Sabre 500 milling machine, however now I've come across a more urgent job where I'd need to reasonably quickly convert one of my Mazak QT10 lathes, Both are known to have faults, I planned to repair them using the original Mazatrol T1 controllers, however the original parameter information and documents are missing from the machines. I have contacted the previous owner, despite his best efforts, he had decided to scrap the machines a week before I contacted him, and put the old manuals in the fire pit as he couldn't sell the machines. 
one machine has a tail stock, one doesn't. Both run ATC turrets 
unlucky for me! (I have an electronics engineer who would have helped repair the machines hardware faults) 
I'm now in the position, of what's going to be the quickest way to get them running,  
options -
1. Fit resolvers to the axis motors and run a Mesa board type setup - lots of custom config and wiring. (I see someone on here has done this on a Mazak before, a micro15, seemed very in depth to get it working) Seems controlling the original spindle wasn't to hard.
2. Fit 2 x new step/direction type servo motors and control it with a Pico systems step/direction controller. Jon has been very helpful with the setup on the milling machine to date.
3. Open to ideas! - the easier the better, I'm very electrically inclined but I'm a mechanic not an engineer

I have built a retrofit cnc controller previously for a stepper motor CNC router using UCCNC, I'm looking to have closed loop feedback on this machine if possible.
I appreciate any help anyone can give towards this subject! 
Displaying 1 - 15 out of 167 results.
Time to create page: 0.739 seconds
Powered by Kunena Forum