Search Results (Searched for: stepper spindle)
- Cysign
- Cysign
01 Aug 2025 11:19
Interfaces & linear scale for LinuxCNC was created by Cysign
Interfaces & linear scale for LinuxCNC
Category: General LinuxCNC Questions
Hi,
I originally wanted to run a cheap DIY cnc machine using an old Intel Atom dualcore computer which has an LPT connector. But meanwhile I start thinking about higher quality components.
Same specs:
-stepper motors (already exist)
-linear rails for a work area of 1000/600/200mm (already exist)
-spindle Kress FME800 (already exists)
-stepper driver board with 5x Toshiba TB6560 (already exists)
-USB connected hand controller/job wheel LHB04 (already exists)
Now I wonder if I'd better go for an network/USB controlled Mesa card to get rid of that old Intel Atom computer and be able to use any machine (probably a modern notebook).
Also I would like to bux linear scales for my build, but couldn't figure out how they would be connected to LinuxCNC.
Is there a lis with reliable (but not too expensive) supportet linear scales?
And would you rather ust the Toshiba stepper driver board listet above or get some modern alternative?
Since I didn't really start building it, I'm free to change components for the good
I'm going to weld the frame for my machine. So I wonder what's the best way to start? At the moment I think I'm going to build z-axis first and depending on it's dimensions I can design the x-axis, then Y-axis.
But for designing the z-axis I need to know which linear scale system I need to mount and what size it is.
Since this CNC machine is intended to build electrical guitars, I don't require the highest precision, but I'd like to have as small tollerances as possilbe for a reliable pricetag.
I originally wanted to run a cheap DIY cnc machine using an old Intel Atom dualcore computer which has an LPT connector. But meanwhile I start thinking about higher quality components.
Same specs:
-stepper motors (already exist)
-linear rails for a work area of 1000/600/200mm (already exist)
-spindle Kress FME800 (already exists)
-stepper driver board with 5x Toshiba TB6560 (already exists)
-USB connected hand controller/job wheel LHB04 (already exists)
Now I wonder if I'd better go for an network/USB controlled Mesa card to get rid of that old Intel Atom computer and be able to use any machine (probably a modern notebook).
Also I would like to bux linear scales for my build, but couldn't figure out how they would be connected to LinuxCNC.
Is there a lis with reliable (but not too expensive) supportet linear scales?
And would you rather ust the Toshiba stepper driver board listet above or get some modern alternative?
Since I didn't really start building it, I'm free to change components for the good
I'm going to weld the frame for my machine. So I wonder what's the best way to start? At the moment I think I'm going to build z-axis first and depending on it's dimensions I can design the x-axis, then Y-axis.
But for designing the z-axis I need to know which linear scale system I need to mount and what size it is.
Since this CNC machine is intended to build electrical guitars, I don't require the highest precision, but I'd like to have as small tollerances as possilbe for a reliable pricetag.
- rhscdn
- rhscdn
31 Jul 2025 14:16 - 31 Jul 2025 14:20
AXYZ Millennium Conversion was created by rhscdn
AXYZ Millennium Conversion
Category: CNC Machines
Just getting started on planning my AXYZ cnc router retrofit. Regarding the “AXYZ AXI” stepper drivers, the wiring diagram I have indicates driver control is standard 3 cable (12vdc, step, dir). Dip switches have the micro steps set to 1200 micro steps/rev (default). Is there anything else I need to know?
The stock spindle inverter was replaced with an eTrac X2C and is currently wired with 6 wires (gnd, decelerate, accelerate, 5vdc, feedback, on/off). Is there anything else I should consider?
My current plan is to purchase a Mesa 7i96s. For a pc, I have a Dell Optiplex 7050 and an ELO touchscreen ready to go.
Backstory, the AMC controller board on the small AXYZ cnc router that I bought is bad. It shows ‘Error 92’ or no controller OS and the AXYZ tool path software is unable to communicate with the board to restore it. My plan had been to convert the machine to Linuxcnc anyways but it would have been nice to test it and take some measurements prior to starting the conversion.
The stock spindle inverter was replaced with an eTrac X2C and is currently wired with 6 wires (gnd, decelerate, accelerate, 5vdc, feedback, on/off). Is there anything else I should consider?
My current plan is to purchase a Mesa 7i96s. For a pc, I have a Dell Optiplex 7050 and an ELO touchscreen ready to go.
Backstory, the AMC controller board on the small AXYZ cnc router that I bought is bad. It shows ‘Error 92’ or no controller OS and the AXYZ tool path software is unable to communicate with the board to restore it. My plan had been to convert the machine to Linuxcnc anyways but it would have been nice to test it and take some measurements prior to starting the conversion.
- hitchhiker
- hitchhiker
26 Jul 2025 12:06 - 26 Jul 2025 12:07
ECMO VMC100 Retrofit with Carousel/Toolchanger was created by hitchhiker
ECMO VMC100 Retrofit with Carousel/Toolchanger
Category: Milling Machines
Hi guys!
I get a VMC-100 as gift from a school.
I owm a F1P which i retrofit to LINUXCNC years ago. works perfect.
Same Machine as the VMC-100 but with manual Toolchange.
Now the VMC-100 has a carousel as Toolchanger.
This carousel have 4 proximity switch to operate the Toolchanger.
Sensor1 is a sensor to reference tool 1.
Sensor2 counts a hole in a parallel gear. is it counts 2 times the next toolslot is reached.
Sensor3 tells that the tool is engaged.
Sensor4 tells that the tool is disengaged and the mainspindle can rotate the carousel.
Main issue for me is that the carousel works above the Z reference sensor.
At Z reference positon the Carousel begins to disengage the tool and when sensor 4 is reached the carousel can rotate.
Does someone ever retrofit this in Linuxcnc and can share his experience?
I searched a bit arround but found only some videos with MACH3 and some dead threads.
I will use the orignial maindrive which has a encoder on it at the beginning.
the maindrive works with step/dir signals.
On my f1p was the same maindrive which i use to tap threads.. spindle orient is used for this but iswitch to a 1kw servo.
this time i will use everything orignial because i have 3 orignial stepperdrivers for the 5 phase steppers. later i would change to nema23 2 phase.
Main focus is to bring everything back to live without changing to different steppermotors or maindrive.
The maindrive is working and the encoder counts.
Steppers working.
all proximity sensors are working.
thanks for any help
the pictures are taken from youtube
I get a VMC-100 as gift from a school.
I owm a F1P which i retrofit to LINUXCNC years ago. works perfect.
Same Machine as the VMC-100 but with manual Toolchange.
Now the VMC-100 has a carousel as Toolchanger.
This carousel have 4 proximity switch to operate the Toolchanger.
Sensor1 is a sensor to reference tool 1.
Sensor2 counts a hole in a parallel gear. is it counts 2 times the next toolslot is reached.
Sensor3 tells that the tool is engaged.
Sensor4 tells that the tool is disengaged and the mainspindle can rotate the carousel.
Main issue for me is that the carousel works above the Z reference sensor.
At Z reference positon the Carousel begins to disengage the tool and when sensor 4 is reached the carousel can rotate.
Does someone ever retrofit this in Linuxcnc and can share his experience?
I searched a bit arround but found only some videos with MACH3 and some dead threads.
I will use the orignial maindrive which has a encoder on it at the beginning.
the maindrive works with step/dir signals.
On my f1p was the same maindrive which i use to tap threads.. spindle orient is used for this but iswitch to a 1kw servo.
this time i will use everything orignial because i have 3 orignial stepperdrivers for the 5 phase steppers. later i would change to nema23 2 phase.
Main focus is to bring everything back to live without changing to different steppermotors or maindrive.
The maindrive is working and the encoder counts.
Steppers working.
all proximity sensors are working.
thanks for any help
the pictures are taken from youtube
- Billiiles
- Billiiles
23 Jul 2025 09:13 - 25 Jul 2025 09:19
Replied by Billiiles on topic Axis and tool length sensor troubles
Axis and tool length sensor troubles
Category: General LinuxCNC Questions
Hi all
After a couple of years, I am finally back and ready to making chips. I have a router, use steppers on parport. Linuxcnc is 2.9.4, debian doodle jump :
Linux cnc0 6.1.0-35-rt-amd64 #1 SMP PREEMPT_RT Debian 6.1.137-1 (2025-05-07) x86_64 GNU/Linux
The router works, I can cut stuff etc. not the problem. The job that I want to do soon requires quite a few tool changes. So far I did it using the dowel method, but that is very time consuming. Sure an automatic tool changer would be perfect, but that's up for in a later stage. For now I have a tool length sensor, that I would like to use with my collet spindle to get tool length set after a manual tool change.
When I run tcdemo.ngc:
- goes to change position
- when I hit "Tool change complete", goes to zmax, tool sensor x and y, starts going towards the sensor.
- As soon as the sensor is touched, I get "Probe tripped during non-probe move" and program is stopped
How can I get over this?
I attach the relevant files in zipped folder "toollength_problem.zip"
Greez
chris
You might want to double-check that theG38.x command is active before motion toward the sensor begins. Also, review your HAL and INI files to confirm the probe input isn't being tripped by noise or an early signal. Did you try adding a small delay before the probe move to stabilize the signal?
- Esaber
- Esaber
20 Jul 2025 10:05 - 20 Jul 2025 10:13
Replied by Esaber on topic Plasmac to Qtplasmac conversion not working
Plasmac to Qtplasmac conversion not working
Category: Plasmac
hal file content:
# Generated by PNCconf at Thu Feb 14 05:38:27 2019
# 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_spindles=[TRAJ]SPINDLES
loadrt hostmot2
loadrt hm2_pci config="num_encoders=6 num_pwmgens=0 num_stepgens=5 sserial_port_0=00000x"
setp hm2_5i25.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s
addf hm2_5i25.0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf hm2_5i25.0.write servo-thread
# external output signals
# --- MACHINE-IS-ENABLED ---
net machine-is-enabled => hm2_5i25.0.7i77.0.0.output-02
# --- ESTOP-OUT ---
net estop-out => hm2_5i25.0.7i77.0.0.output-03
# external input signals
# --- BOTH-HOME-X ---
net both-home-x <= hm2_5i25.0.7i77.0.0.input-01
# --- BOTH-HOME-Y ---
net both-home-y <= hm2_5i25.0.7i77.0.0.input-02
# --- BOTH-HOME-Z ---
net max-home-z <= hm2_5i25.0.7i77.0.0.input-03-not
#*******************
# AXIS X JOINT 0
#*******************
setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain [JOINT_0]I
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.x.error-previous-target true
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
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout0-scalemax [JOINT_0]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout0-minlim [JOINT_0]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout0-maxlim [JOINT_0]OUTPUT_MAX_LIMIT
net x-output => hm2_5i25.0.7i77.0.1.analogout0
net x-pos-cmd <= joint.0.motor-pos-cmd
net x-enable <= joint.0.amp-enable-out
# enable _all_ sserial pwmgens
net x-enable => hm2_5i25.0.7i77.0.1.analogena
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.00.counter-mode 0
setp hm2_5i25.0.encoder.00.filter 1
setp hm2_5i25.0.encoder.00.index-invert 0
setp hm2_5i25.0.encoder.00.index-mask 0
setp hm2_5i25.0.encoder.00.index-mask-invert 0
setp hm2_5i25.0.encoder.00.scale [JOINT_0]ENCODER_SCALE
net x-pos-fb <= hm2_5i25.0.encoder.00.position
net x-vel-fb <= hm2_5i25.0.encoder.00.velocity
net x-pos-fb => joint.0.motor-pos-fb
net x-index-enable joint.0.index-enable <=> hm2_5i25.0.encoder.00.index-enable
net x-pos-rawcounts <= hm2_5i25.0.encoder.00.rawcounts
# ---setup home / limit switch signals---
net both-home-x => joint.0.home-sw-in
net both-home-x => joint.0.neg-lim-sw-in
net both-home-x => 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
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
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout1-scalemax [JOINT_1]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout1-minlim [JOINT_1]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout1-maxlim [JOINT_1]OUTPUT_MAX_LIMIT
net y-output => hm2_5i25.0.7i77.0.1.analogout1
net y-pos-cmd <= joint.1.motor-pos-cmd
net y-enable <= joint.1.amp-enable-out
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.01.counter-mode 0
setp hm2_5i25.0.encoder.01.filter 1
setp hm2_5i25.0.encoder.01.index-invert 0
setp hm2_5i25.0.encoder.01.index-mask 0
setp hm2_5i25.0.encoder.01.index-mask-invert 0
setp hm2_5i25.0.encoder.01.scale [JOINT_1]ENCODER_SCALE
net y-pos-fb <= hm2_5i25.0.encoder.01.position
net y-vel-fb <= hm2_5i25.0.encoder.01.velocity
net y-pos-fb => joint.1.motor-pos-fb
net y-index-enable joint.1.index-enable <=> hm2_5i25.0.encoder.01.index-enable
net y-pos-rawcounts <= hm2_5i25.0.encoder.01.rawcounts
# ---setup home / limit switch signals---
net both-home-y => joint.1.home-sw-in
net both-home-y => joint.1.neg-lim-sw-in
net both-home-y => 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.012700
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_5i25.0.stepgen.00.dirsetup [JOINT_2]DIRSETUP
setp hm2_5i25.0.stepgen.00.dirhold [JOINT_2]DIRHOLD
setp hm2_5i25.0.stepgen.00.steplen [JOINT_2]STEPLEN
setp hm2_5i25.0.stepgen.00.stepspace [JOINT_2]STEPSPACE
setp hm2_5i25.0.stepgen.00.position-scale [JOINT_2]STEP_SCALE
setp hm2_5i25.0.stepgen.00.step_type 0
setp hm2_5i25.0.stepgen.00.control-type 1
setp hm2_5i25.0.stepgen.00.maxaccel [JOINT_2]STEPGEN_MAXACCEL
setp hm2_5i25.0.stepgen.00.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_5i25.0.stepgen.00.velocity-cmd
net z-pos-fb <= hm2_5i25.0.stepgen.00.position-fb
net z-pos-fb => joint.2.motor-pos-fb
net z-enable <= joint.2.amp-enable-out
net z-enable => hm2_5i25.0.stepgen.00.enable
# ---closedloop stepper signals---
net z-pos-cmd <= joint.2.motor-pos-cmd
net z-vel-cmd <= joint.2.vel-cmd
net z-output => hm2_5i25.0.stepgen.00.velocity-cmd
net z-pos-fb <= hm2_5i25.0.stepgen.00.position-fb
net z-pos-fb => joint.2.motor-pos-fb
net z-enable <= joint.2.amp-enable-out
net z-enable => hm2_5i25.0.stepgen.00.enable
# ---setup home / limit switch signals---
net max-home-z => joint.2.home-sw-in
net z-neg-limit => joint.2.neg-lim-sw-in
net max-home-z => joint.2.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-z halui.axis.z.select
net jog-z-pos halui.axis.z.plus
net jog-z-neg halui.axis.z.minus
net jog-z-analog halui.axis.z.analog
net z-is-homed halui.joint.2.is-homed
net jog-selected-pos halui.axis.selected.plus
net jog-selected-neg halui.axis.selected.minus
# net spindle-manual-cw halui.spindle.0.forward
# net spindle-manual-ccw halui.spindle.0.reverse
# net spindle-manual-stop halui.spindle.0.stop
# net machine-is-on halui.machine.is-on
net jog-speed halui.axis.jog-speed
net MDI-mode halui.mode.is-mdi
# ---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-out => iocontrol.0.emc-enable-in
# ---manual tool change signals---
# loadusr -W hal_manualtoolchange
# net tool-change-request iocontrol.0.tool-change => hal_manualtoolchange.change
# net tool-change-confirmed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
# net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
# net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
# toolchange passthrough
net tool:change iocontrol.0.tool-change => iocontrol.0.tool-changed
net tool:prep iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
# Added By me 08.12.2024
# Mesa Codes
setp hm2_5i25.0.encoder.02.scale -1
setp hm2_5i25.0.encoder.02.filter 1
setp hm2_5i25.0.encoder.02.counter-mode 1
# Generated by PNCconf at Thu Feb 14 05:38:27 2019
# 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_spindles=[TRAJ]SPINDLES
loadrt hostmot2
loadrt hm2_pci config="num_encoders=6 num_pwmgens=0 num_stepgens=5 sserial_port_0=00000x"
setp hm2_5i25.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s
addf hm2_5i25.0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf hm2_5i25.0.write servo-thread
# external output signals
# --- MACHINE-IS-ENABLED ---
net machine-is-enabled => hm2_5i25.0.7i77.0.0.output-02
# --- ESTOP-OUT ---
net estop-out => hm2_5i25.0.7i77.0.0.output-03
# external input signals
# --- BOTH-HOME-X ---
net both-home-x <= hm2_5i25.0.7i77.0.0.input-01
# --- BOTH-HOME-Y ---
net both-home-y <= hm2_5i25.0.7i77.0.0.input-02
# --- BOTH-HOME-Z ---
net max-home-z <= hm2_5i25.0.7i77.0.0.input-03-not
#*******************
# AXIS X JOINT 0
#*******************
setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain [JOINT_0]I
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.x.error-previous-target true
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
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout0-scalemax [JOINT_0]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout0-minlim [JOINT_0]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout0-maxlim [JOINT_0]OUTPUT_MAX_LIMIT
net x-output => hm2_5i25.0.7i77.0.1.analogout0
net x-pos-cmd <= joint.0.motor-pos-cmd
net x-enable <= joint.0.amp-enable-out
# enable _all_ sserial pwmgens
net x-enable => hm2_5i25.0.7i77.0.1.analogena
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.00.counter-mode 0
setp hm2_5i25.0.encoder.00.filter 1
setp hm2_5i25.0.encoder.00.index-invert 0
setp hm2_5i25.0.encoder.00.index-mask 0
setp hm2_5i25.0.encoder.00.index-mask-invert 0
setp hm2_5i25.0.encoder.00.scale [JOINT_0]ENCODER_SCALE
net x-pos-fb <= hm2_5i25.0.encoder.00.position
net x-vel-fb <= hm2_5i25.0.encoder.00.velocity
net x-pos-fb => joint.0.motor-pos-fb
net x-index-enable joint.0.index-enable <=> hm2_5i25.0.encoder.00.index-enable
net x-pos-rawcounts <= hm2_5i25.0.encoder.00.rawcounts
# ---setup home / limit switch signals---
net both-home-x => joint.0.home-sw-in
net both-home-x => joint.0.neg-lim-sw-in
net both-home-x => 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
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
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout1-scalemax [JOINT_1]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout1-minlim [JOINT_1]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout1-maxlim [JOINT_1]OUTPUT_MAX_LIMIT
net y-output => hm2_5i25.0.7i77.0.1.analogout1
net y-pos-cmd <= joint.1.motor-pos-cmd
net y-enable <= joint.1.amp-enable-out
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.01.counter-mode 0
setp hm2_5i25.0.encoder.01.filter 1
setp hm2_5i25.0.encoder.01.index-invert 0
setp hm2_5i25.0.encoder.01.index-mask 0
setp hm2_5i25.0.encoder.01.index-mask-invert 0
setp hm2_5i25.0.encoder.01.scale [JOINT_1]ENCODER_SCALE
net y-pos-fb <= hm2_5i25.0.encoder.01.position
net y-vel-fb <= hm2_5i25.0.encoder.01.velocity
net y-pos-fb => joint.1.motor-pos-fb
net y-index-enable joint.1.index-enable <=> hm2_5i25.0.encoder.01.index-enable
net y-pos-rawcounts <= hm2_5i25.0.encoder.01.rawcounts
# ---setup home / limit switch signals---
net both-home-y => joint.1.home-sw-in
net both-home-y => joint.1.neg-lim-sw-in
net both-home-y => 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.012700
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_5i25.0.stepgen.00.dirsetup [JOINT_2]DIRSETUP
setp hm2_5i25.0.stepgen.00.dirhold [JOINT_2]DIRHOLD
setp hm2_5i25.0.stepgen.00.steplen [JOINT_2]STEPLEN
setp hm2_5i25.0.stepgen.00.stepspace [JOINT_2]STEPSPACE
setp hm2_5i25.0.stepgen.00.position-scale [JOINT_2]STEP_SCALE
setp hm2_5i25.0.stepgen.00.step_type 0
setp hm2_5i25.0.stepgen.00.control-type 1
setp hm2_5i25.0.stepgen.00.maxaccel [JOINT_2]STEPGEN_MAXACCEL
setp hm2_5i25.0.stepgen.00.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_5i25.0.stepgen.00.velocity-cmd
net z-pos-fb <= hm2_5i25.0.stepgen.00.position-fb
net z-pos-fb => joint.2.motor-pos-fb
net z-enable <= joint.2.amp-enable-out
net z-enable => hm2_5i25.0.stepgen.00.enable
# ---closedloop stepper signals---
net z-pos-cmd <= joint.2.motor-pos-cmd
net z-vel-cmd <= joint.2.vel-cmd
net z-output => hm2_5i25.0.stepgen.00.velocity-cmd
net z-pos-fb <= hm2_5i25.0.stepgen.00.position-fb
net z-pos-fb => joint.2.motor-pos-fb
net z-enable <= joint.2.amp-enable-out
net z-enable => hm2_5i25.0.stepgen.00.enable
# ---setup home / limit switch signals---
net max-home-z => joint.2.home-sw-in
net z-neg-limit => joint.2.neg-lim-sw-in
net max-home-z => joint.2.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-z halui.axis.z.select
net jog-z-pos halui.axis.z.plus
net jog-z-neg halui.axis.z.minus
net jog-z-analog halui.axis.z.analog
net z-is-homed halui.joint.2.is-homed
net jog-selected-pos halui.axis.selected.plus
net jog-selected-neg halui.axis.selected.minus
# net spindle-manual-cw halui.spindle.0.forward
# net spindle-manual-ccw halui.spindle.0.reverse
# net spindle-manual-stop halui.spindle.0.stop
# net machine-is-on halui.machine.is-on
net jog-speed halui.axis.jog-speed
net MDI-mode halui.mode.is-mdi
# ---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-out => iocontrol.0.emc-enable-in
# ---manual tool change signals---
# loadusr -W hal_manualtoolchange
# net tool-change-request iocontrol.0.tool-change => hal_manualtoolchange.change
# net tool-change-confirmed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
# net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
# net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
# toolchange passthrough
net tool:change iocontrol.0.tool-change => iocontrol.0.tool-changed
net tool:prep iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
# Added By me 08.12.2024
# Mesa Codes
setp hm2_5i25.0.encoder.02.scale -1
setp hm2_5i25.0.encoder.02.filter 1
setp hm2_5i25.0.encoder.02.counter-mode 1
- seuchato
- seuchato
14 Jul 2025 14:23
Axis and tool length sensor troubles was created by seuchato
Axis and tool length sensor troubles
Category: General LinuxCNC Questions
Hi all
After a couple of years, I am finally back and ready to making chips. I have a router, use steppers on parport. Linuxcnc is 2.9.4, debian:
Linux cnc0 6.1.0-35-rt-amd64 #1 SMP PREEMPT_RT Debian 6.1.137-1 (2025-05-07) x86_64 GNU/Linux
The router works, I can cut stuff etc. not the problem. The job that I want to do soon requires quite a few tool changes. So far I did it using the dowel method, but that is very time consuming. Sure an automatic tool changer would be perfect, but that's up for in a later stage. For now I have a tool length sensor, that I would like to use with my collet spindle to get tool length set after a manual tool change.
When I run tcdemo.ngc:
- goes to change position
- when I hit "Tool change complete", goes to zmax, tool sensor x and y, starts going towards the sensor.
- As soon as the sensor is touched, I get "Probe tripped during non-probe move" and program is stopped
How can I get over this?
I attach the relevant files in zipped folder "toollength_problem.zip"
Greez
chris
After a couple of years, I am finally back and ready to making chips. I have a router, use steppers on parport. Linuxcnc is 2.9.4, debian:
Linux cnc0 6.1.0-35-rt-amd64 #1 SMP PREEMPT_RT Debian 6.1.137-1 (2025-05-07) x86_64 GNU/Linux
The router works, I can cut stuff etc. not the problem. The job that I want to do soon requires quite a few tool changes. So far I did it using the dowel method, but that is very time consuming. Sure an automatic tool changer would be perfect, but that's up for in a later stage. For now I have a tool length sensor, that I would like to use with my collet spindle to get tool length set after a manual tool change.
When I run tcdemo.ngc:
- goes to change position
- when I hit "Tool change complete", goes to zmax, tool sensor x and y, starts going towards the sensor.
- As soon as the sensor is touched, I get "Probe tripped during non-probe move" and program is stopped
How can I get over this?
I attach the relevant files in zipped folder "toollength_problem.zip"
Greez
chris
- Gautham
- Gautham
11 Jul 2025 06:00
5 axis milling machine with 7i96s was created by Gautham
5 axis milling machine with 7i96s
Category: Driver Boards
Hi Everyone,
I am new here and new to CNC, Linux and Mesa boards, so pls excuse the novice questions.
This is my setup
I have a 5-axis milling machine, which uses 2 stepper motors for the z axis, so in total there are 6 stepper motors. I have also bought a servo motor ECMA-C21020RS from Delta to power my spindle. I have a Mesa 7i96s card
Now for my question
Have I bought the wrong Mesa card for my requirement? From my understanding, the 7i96s can only control 5 motors so my 6 steppers and servo exceed the capacity. If so, what would be the best solution? To buy another card and scrap the 7i96 or is there an option to buy an add-on card to work with the 7i96s?
Thank you in advance for your help
I am new here and new to CNC, Linux and Mesa boards, so pls excuse the novice questions.
This is my setup
I have a 5-axis milling machine, which uses 2 stepper motors for the z axis, so in total there are 6 stepper motors. I have also bought a servo motor ECMA-C21020RS from Delta to power my spindle. I have a Mesa 7i96s card
Now for my question
Have I bought the wrong Mesa card for my requirement? From my understanding, the 7i96s can only control 5 motors so my 6 steppers and servo exceed the capacity. If so, what would be the best solution? To buy another card and scrap the 7i96 or is there an option to buy an add-on card to work with the 7i96s?
Thank you in advance for your help
- ZXT
- ZXT
10 Jul 2025 20:56 - 10 Jul 2025 21:42
Configuring LinuxCNC 2.9.4 Mesa 7i95t Newbie. was created by ZXT
Configuring LinuxCNC 2.9.4 Mesa 7i95t Newbie.
Category: Milling Machines
Hello! First of all I’m sorry if this is placed in the wrong category. I’m pretty much new to Linux and LinuxCNC and been busy building a CNC mill but I’ve stumbled up on a lot of problems.
My first thought was to get some help by using AI (Copilot) to configure Linux CNC but it doesn’t work that well because info online is limited on 2.9.4 so the AI is trying to use solutions that’s outdated for previous versions of LinuxCNC.
The progress I’ve made so far is to configure and flash firmware to 7i95t with MesaCT and edit hall and ini files to run QTdragonHD and get the stepper motors to move but then I wanted do add 3 MPGs to jog each axis.
Well that didn’t work that good.. these are the things I hope to accomplish one day:
1. X-Y-Z MPGs with incremental and continuous movement.
2. E-stop circuit (input) with reset.
3. Add limit switches
4.Closed loop feedback by using glass DRO scales.
5.Spindle control 0-10v VFD or just relay control.
6. Inputs/physical buttons: cycle start, cycle stop, 3 position resolution rotary switch for MPGs,
7. Joystick (switches) to feed X and Y. (Like a power feed on a manual machine) with a potentiometer to adjust feed rate)
8. Output for fogbuster/flood coolant.
9. Output for Compressed air nozzle.
The list is long,
I don’t know where to go from here..
Errors I’ve got earlier is missing motion.so and other modules, I’ll post the basic ini and hal files to.
My first thought was to get some help by using AI (Copilot) to configure Linux CNC but it doesn’t work that well because info online is limited on 2.9.4 so the AI is trying to use solutions that’s outdated for previous versions of LinuxCNC.
The progress I’ve made so far is to configure and flash firmware to 7i95t with MesaCT and edit hall and ini files to run QTdragonHD and get the stepper motors to move but then I wanted do add 3 MPGs to jog each axis.
Well that didn’t work that good.. these are the things I hope to accomplish one day:
1. X-Y-Z MPGs with incremental and continuous movement.
2. E-stop circuit (input) with reset.
3. Add limit switches
4.Closed loop feedback by using glass DRO scales.
5.Spindle control 0-10v VFD or just relay control.
6. Inputs/physical buttons: cycle start, cycle stop, 3 position resolution rotary switch for MPGs,
7. Joystick (switches) to feed X and Y. (Like a power feed on a manual machine) with a potentiometer to adjust feed rate)
8. Output for fogbuster/flood coolant.
9. Output for Compressed air nozzle.
The list is long,
I don’t know where to go from here..
Errors I’ve got earlier is missing motion.so and other modules, I’ll post the basic ini and hal files to.
- BabyDibbert
- BabyDibbert
10 Jul 2025 06:53
Fried my LinuxCNC Setup was created by BabyDibbert
Fried my LinuxCNC Setup
Category: General LinuxCNC Questions
Well, that never took off. Purchased a used PC with a parallel port breakout board and set everything up with what looked correct. Used a buck converter to power the board and noticed it wouldn’t change the voltage. Powercycled the steppers and breakout board and PC immediately turned off. Left the PC unplugged and the buck converter came to life at 26 volts, immediately blowing the caps in dramatic fashion. Well now with a fried PC and breakout board, I’d like just a ready made solution to power my lathe. I was going for Linuxcnc as I wanted spindle sync and backlash compensation, so if there are any great budget options that are just a ready made solution so I can stop worrying about wiring and flashing boards, that would be fantastic.
- rhscdn
- rhscdn
06 Jul 2025 16:39
Recommended card: AXYZ CNC router upgrade was created by rhscdn
Recommended card: AXYZ CNC router upgrade
Category: Driver Boards
I am looking for recommendations to upgrade the control of an AXYZ cnc router, currently configured with AMC004 + flash card and an rs-485 usb interface. I’m a longtime Linux user but 1st time CNC router owner. The cnc machine has AXYZ AXI stepper drivers and a e-trac X2C inverter driving an Elite spindle.
I’ve been reading a lot but before I go ahead and order, can anyone confirm that the 7i96s is a suitable controller card? Are there any Canadian suppliers for these cards?
Any other advice before ai get started would be greatly appreciated!
I’ve been reading a lot but before I go ahead and order, can anyone confirm that the 7i96s is a suitable controller card? Are there any Canadian suppliers for these cards?
Any other advice before ai get started would be greatly appreciated!
- Russell072009
- Russell072009
24 Jun 2025 17:21
Replied by Russell072009 on topic New with questions on LinuxCNC and Mesa
New with questions on LinuxCNC and Mesa
Category: General LinuxCNC Questions
Thanks for the info.
So the servo motors I'm looking at are integrated servo/driver/encoder and use stepper control signals. I'm under the impression that I would use a 7I95T card. Seeing as Y will have a slaved servo I'll be short one feedback channel. So I would get a 7I76 to plug in to the 7I95T correct? Then I will have all 7 feedback channels for the 4 servos and the 3 scales. It would also allow for future expansion of an A axis with feedback.
Now, If I go to run a spindle with encoder will that be handled by the 7I95T in addition to the 6 axis channels it has? Also, is this the only card I will need? It sounds like it runs ethernet to the PC and that is it.
So the servo motors I'm looking at are integrated servo/driver/encoder and use stepper control signals. I'm under the impression that I would use a 7I95T card. Seeing as Y will have a slaved servo I'll be short one feedback channel. So I would get a 7I76 to plug in to the 7I95T correct? Then I will have all 7 feedback channels for the 4 servos and the 3 scales. It would also allow for future expansion of an A axis with feedback.
Now, If I go to run a spindle with encoder will that be handled by the 7I95T in addition to the 6 axis channels it has? Also, is this the only card I will need? It sounds like it runs ethernet to the PC and that is it.
- Geshka
- Geshka
19 Jun 2025 17:31
Replied by Geshka on topic How to link existing glass scale DRO readout to LinuxCNC for cheap
How to link existing glass scale DRO readout to LinuxCNC for cheap
Category: Driver Boards
I was checking your GITHUB repos - great content. I am actually working on ELS myself right now. Fitting mechanical parts first to the Atlas lathe - need to add spindle encoder and stepper tot the lead-screw.
What ELS do you use ? your own design? LinuxCNC based ?
What ELS do you use ? your own design? LinuxCNC based ?
- Kieran
- Kieran
19 Jun 2025 04:58 - 19 Jun 2025 05:05
Getting Ebay 2.6kw ethercat kit going. was created by Kieran
Getting Ebay 2.6kw ethercat kit going.
Category: EtherCAT
Im trying to get my 2.6kw spindle servo going. its got a P200SE drive. the instructions are written in Chinese. I used google translate and it worked pretty good. Right now im running it as a Z axis just to see if i can get it working. I got my XML setup enough that Linuxcnc reads the encoder no problem. the servo powers up and holds position along with my stepperonline X and y servos. my current roadblock is that its not listening to commands and doesnt move and it gets a following error shortly after. if i power off and turn the motor the DRO moves the distance expected so that's a good sign. the servo load meter on the PYvcp is workign for this servo too, when i "fight" the servo. i must just be missing something simple in my XML?
lcec_configgen gives me this
my xml so far
lcec_configgen gives me this
Warning: Spoiler!
<masters>
<master idx="0">
<slave idx="0" type="generic" vid="0x00400000" pid="0x00000715" name="D1">
<!--AS715N_sAxis_V0.10-->
<syncManager idx="0" dir="in"/>
<syncManager idx="1" dir="out"/>
<syncManager idx="2" dir="out">
<pdo idx="1701">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="pin-6040-00" halType="BLANK"/>
<pdoEntry idx="607a" subIdx="00" bitLen="32" halPin="pin-607a-00" halType="BLANK"/>
<pdoEntry idx="60b8" subIdx="00" bitLen="16" halPin="pin-60b8-00" halType="BLANK"/>
<pdoEntry idx="60fe" subIdx="01" bitLen="32" halPin="pin-60fe-01" halType="BLANK"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1b01">
<pdoEntry idx="603f" subIdx="00" bitLen="16" halPin="pin-603f-00" halType="BLANK"/>
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="pin-6041-00" halType="BLANK"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pin-6064-00" halType="BLANK"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="pin-6077-00" halType="BLANK"/>
<pdoEntry idx="60f4" subIdx="00" bitLen="32" halPin="pin-60f4-00" halType="BLANK"/>
<pdoEntry idx="60b9" subIdx="00" bitLen="16" halPin="pin-60b9-00" halType="BLANK"/>
<pdoEntry idx="60ba" subIdx="00" bitLen="32" halPin="pin-60ba-00" halType="BLANK"/>
<pdoEntry idx="60bc" subIdx="00" bitLen="32" halPin="pin-60bc-00" halType="BLANK"/>
<pdoEntry idx="60fd" subIdx="00" bitLen="32" halPin="pin-60fd-00" halType="BLANK"/>
</pdo>
</syncManager>
</slave>
<slave idx="1" type="generic" vid="0x00400000" pid="0x00000715" name="D2">
<!--AS715N_sAxis_V0.10-->
<syncManager idx="0" dir="in"/>
<syncManager idx="1" dir="out"/>
<syncManager idx="2" dir="out">
<pdo idx="1701">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="pin-6040-00" halType="BLANK"/>
<pdoEntry idx="607a" subIdx="00" bitLen="32" halPin="pin-607a-00" halType="BLANK"/>
<pdoEntry idx="60b8" subIdx="00" bitLen="16" halPin="pin-60b8-00" halType="BLANK"/>
<pdoEntry idx="60fe" subIdx="01" bitLen="32" halPin="pin-60fe-01" halType="BLANK"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1b01">
<pdoEntry idx="603f" subIdx="00" bitLen="16" halPin="pin-603f-00" halType="BLANK"/>
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="pin-6041-00" halType="BLANK"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pin-6064-00" halType="BLANK"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="pin-6077-00" halType="BLANK"/>
<pdoEntry idx="60f4" subIdx="00" bitLen="32" halPin="pin-60f4-00" halType="BLANK"/>
<pdoEntry idx="60b9" subIdx="00" bitLen="16" halPin="pin-60b9-00" halType="BLANK"/>
<pdoEntry idx="60ba" subIdx="00" bitLen="32" halPin="pin-60ba-00" halType="BLANK"/>
<pdoEntry idx="60bc" subIdx="00" bitLen="32" halPin="pin-60bc-00" halType="BLANK"/>
<pdoEntry idx="60fd" subIdx="00" bitLen="32" halPin="pin-60fd-00" halType="BLANK"/>
</pdo>
</syncManager>
</slave>
<slave idx="2" type="basic_cia402" vid="0x00445653" pid="0x00009252" name="D3">
<!--DVS_ETHCAT_v1.004-->
<modParam name="ciaRxPDOEntryLimit" value="9"/>
<modParam name="ciaTxPDOEntryLimit" value="9"/>
<modParam name="enablePP" value="true"/>
<modParam name="enablePV" value="true"/>
<modParam name="enableTQ" value="true"/>
<modParam name="enableHM" value="true"/>
<modParam name="enableCSP" value="true"/>
<modParam name="enableCSV" value="true"/>
<modParam name="enableCST" value="true"/>
<modParam name="enableActualFollowingError" value="true"/>
<modParam name="enableActualTorque" value="true"/>
<modParam name="enableDigitalInput" value="true"/>
<modParam name="digitalInChannels" value="16"/>
<modParam name="enableDigitalOutput" value="true"/>
<modParam name="digitalOutChannels" value="16"/>
<modParam name="enableErrorCode" value="true"/>
<modParam name="enableFollowingErrorWindow" value="true"/>
<modParam name="enableHomeAccel" value="true"/>
<modParam name="enableInterpolationTimePeriod" value="true"/>
<modParam name="enableMaximumTorque" value="true"/>
<modParam name="enableMotorRatedTorque" value="true"/>
<modParam name="enablePolarity" value="true"/>
<modParam name="enablePositionDemand" value="true"/>
<modParam name="enablePositioningTime" value="true"/>
<modParam name="enablePositioningWindow" value="true"/>
<modParam name="enableProbeStatus" value="true"/>
<modParam name="enableProfileAccel" value="true"/>
<modParam name="enableProfileDecel" value="true"/>
<modParam name="enableProfileMaxVelocity" value="true"/>
<modParam name="enableProfileVelocity" value="true"/>
<modParam name="enableTargetTorque" value="true"/>
<modParam name="enableTorqueDemand" value="true"/>
<modParam name="enableTorqueSlope" value="true"/>
<modParam name="enableVelocityErrorTime" value="true"/>
<modParam name="enableVelocityErrorWindow" value="true"/>
</slave>
</master>
</masters>
<master idx="0">
<slave idx="0" type="generic" vid="0x00400000" pid="0x00000715" name="D1">
<!--AS715N_sAxis_V0.10-->
<syncManager idx="0" dir="in"/>
<syncManager idx="1" dir="out"/>
<syncManager idx="2" dir="out">
<pdo idx="1701">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="pin-6040-00" halType="BLANK"/>
<pdoEntry idx="607a" subIdx="00" bitLen="32" halPin="pin-607a-00" halType="BLANK"/>
<pdoEntry idx="60b8" subIdx="00" bitLen="16" halPin="pin-60b8-00" halType="BLANK"/>
<pdoEntry idx="60fe" subIdx="01" bitLen="32" halPin="pin-60fe-01" halType="BLANK"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1b01">
<pdoEntry idx="603f" subIdx="00" bitLen="16" halPin="pin-603f-00" halType="BLANK"/>
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="pin-6041-00" halType="BLANK"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pin-6064-00" halType="BLANK"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="pin-6077-00" halType="BLANK"/>
<pdoEntry idx="60f4" subIdx="00" bitLen="32" halPin="pin-60f4-00" halType="BLANK"/>
<pdoEntry idx="60b9" subIdx="00" bitLen="16" halPin="pin-60b9-00" halType="BLANK"/>
<pdoEntry idx="60ba" subIdx="00" bitLen="32" halPin="pin-60ba-00" halType="BLANK"/>
<pdoEntry idx="60bc" subIdx="00" bitLen="32" halPin="pin-60bc-00" halType="BLANK"/>
<pdoEntry idx="60fd" subIdx="00" bitLen="32" halPin="pin-60fd-00" halType="BLANK"/>
</pdo>
</syncManager>
</slave>
<slave idx="1" type="generic" vid="0x00400000" pid="0x00000715" name="D2">
<!--AS715N_sAxis_V0.10-->
<syncManager idx="0" dir="in"/>
<syncManager idx="1" dir="out"/>
<syncManager idx="2" dir="out">
<pdo idx="1701">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="pin-6040-00" halType="BLANK"/>
<pdoEntry idx="607a" subIdx="00" bitLen="32" halPin="pin-607a-00" halType="BLANK"/>
<pdoEntry idx="60b8" subIdx="00" bitLen="16" halPin="pin-60b8-00" halType="BLANK"/>
<pdoEntry idx="60fe" subIdx="01" bitLen="32" halPin="pin-60fe-01" halType="BLANK"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1b01">
<pdoEntry idx="603f" subIdx="00" bitLen="16" halPin="pin-603f-00" halType="BLANK"/>
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="pin-6041-00" halType="BLANK"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pin-6064-00" halType="BLANK"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="pin-6077-00" halType="BLANK"/>
<pdoEntry idx="60f4" subIdx="00" bitLen="32" halPin="pin-60f4-00" halType="BLANK"/>
<pdoEntry idx="60b9" subIdx="00" bitLen="16" halPin="pin-60b9-00" halType="BLANK"/>
<pdoEntry idx="60ba" subIdx="00" bitLen="32" halPin="pin-60ba-00" halType="BLANK"/>
<pdoEntry idx="60bc" subIdx="00" bitLen="32" halPin="pin-60bc-00" halType="BLANK"/>
<pdoEntry idx="60fd" subIdx="00" bitLen="32" halPin="pin-60fd-00" halType="BLANK"/>
</pdo>
</syncManager>
</slave>
<slave idx="2" type="basic_cia402" vid="0x00445653" pid="0x00009252" name="D3">
<!--DVS_ETHCAT_v1.004-->
<modParam name="ciaRxPDOEntryLimit" value="9"/>
<modParam name="ciaTxPDOEntryLimit" value="9"/>
<modParam name="enablePP" value="true"/>
<modParam name="enablePV" value="true"/>
<modParam name="enableTQ" value="true"/>
<modParam name="enableHM" value="true"/>
<modParam name="enableCSP" value="true"/>
<modParam name="enableCSV" value="true"/>
<modParam name="enableCST" value="true"/>
<modParam name="enableActualFollowingError" value="true"/>
<modParam name="enableActualTorque" value="true"/>
<modParam name="enableDigitalInput" value="true"/>
<modParam name="digitalInChannels" value="16"/>
<modParam name="enableDigitalOutput" value="true"/>
<modParam name="digitalOutChannels" value="16"/>
<modParam name="enableErrorCode" value="true"/>
<modParam name="enableFollowingErrorWindow" value="true"/>
<modParam name="enableHomeAccel" value="true"/>
<modParam name="enableInterpolationTimePeriod" value="true"/>
<modParam name="enableMaximumTorque" value="true"/>
<modParam name="enableMotorRatedTorque" value="true"/>
<modParam name="enablePolarity" value="true"/>
<modParam name="enablePositionDemand" value="true"/>
<modParam name="enablePositioningTime" value="true"/>
<modParam name="enablePositioningWindow" value="true"/>
<modParam name="enableProbeStatus" value="true"/>
<modParam name="enableProfileAccel" value="true"/>
<modParam name="enableProfileDecel" value="true"/>
<modParam name="enableProfileMaxVelocity" value="true"/>
<modParam name="enableProfileVelocity" value="true"/>
<modParam name="enableTargetTorque" value="true"/>
<modParam name="enableTorqueDemand" value="true"/>
<modParam name="enableTorqueSlope" value="true"/>
<modParam name="enableVelocityErrorTime" value="true"/>
<modParam name="enableVelocityErrorWindow" value="true"/>
</slave>
</master>
</masters>
my xml so far
Warning: Spoiler!
<masters>
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="1">
<slave idx="0" type="generic" vid="00400000" pid="00000715" configPdos="true" >
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="25000"/>
<watchdog divider="2498" intervals="1000"/>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="control-word" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
<pdoEntry idx="60B8" subIdx="00" bitLen="16" halPin="touch-probe-function" halType="u32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1A00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="status-word" halType="u32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pos-actual" halType="s32"/>
<pdoEntry idx="60BA" subIdx="00" bitLen="32" halPin="touch-probe-1" halType="s32"/>
<pdoEntry idx="60BC" subIdx="00" bitLen="32" halPin="touch-probe-2" halType="s32"/>
<pdoEntry idx="60B9" subIdx="00" bitLen="16" halPin="touch-probe-status" halType="s32"/>
<pdoEntry idx="603F" subIdx="00" bitLen="16" halPin="fault-code" halType="s32"/>
<pdoEntry idx="60FD" subIdx="00" bitLen="32" halPin="DI-status" halType="u32"/>
<pdoEntry idx="60F4" subIdx="00" bitLen="32" halPin="follow-error" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
</pdo>
</syncManager>
</slave>
<slave idx="1" type="generic" vid="00400000" pid="00000715" configPdos="true" >
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="25000"/>
<watchdog divider="2498" intervals="1000"/>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="control-word" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
<pdoEntry idx="60B8" subIdx="00" bitLen="16" halPin="touch-probe-function" halType="u32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1A00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="status-word" halType="u32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pos-actual" halType="s32"/>
<pdoEntry idx="60BA" subIdx="00" bitLen="32" halPin="touch-probe-1" halType="s32"/>
<pdoEntry idx="60BC" subIdx="00" bitLen="32" halPin="touch-probe-2" halType="s32"/>
<pdoEntry idx="60B9" subIdx="00" bitLen="16" halPin="touch-probe-status" halType="s32"/>
<pdoEntry idx="603F" subIdx="00" bitLen="16" halPin="fault-code" halType="s32"/>
<pdoEntry idx="60FD" subIdx="00" bitLen="32" halPin="DI-status" halType="u32"/>
<pdoEntry idx="60F4" subIdx="00" bitLen="32" halPin="follow-error" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
</pdo>
</syncManager>
</slave>
<slave idx="2" type="generic" vid="0x00445653" pid="0x00009252" configPdos="true" >
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="25000"/>
<watchdog divider="2498" intervals="1000"/>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="control-word" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
<pdoEntry idx="60B8" subIdx="00" bitLen="16" halPin="touch-probe-function" halType="u32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1A00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="status-word" halType="u32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pos-actual" halType="s32"/>
<pdoEntry idx="60BA" subIdx="00" bitLen="32" halPin="touch-probe-1" halType="s32"/>
<pdoEntry idx="60BC" subIdx="00" bitLen="32" halPin="touch-probe-2" halType="s32"/>
<pdoEntry idx="60B9" subIdx="00" bitLen="16" halPin="touch-probe-status" halType="s32"/>
<pdoEntry idx="603F" subIdx="00" bitLen="16" halPin="fault-code" halType="s32"/>
<pdoEntry idx="60FD" subIdx="00" bitLen="32" halPin="DI-status" halType="u32"/>
<pdoEntry idx="60F4" subIdx="00" bitLen="32" halPin="follow-error" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
</pdo>
</syncManager>
</slave>
</master>
</masters>
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="1">
<slave idx="0" type="generic" vid="00400000" pid="00000715" configPdos="true" >
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="25000"/>
<watchdog divider="2498" intervals="1000"/>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="control-word" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
<pdoEntry idx="60B8" subIdx="00" bitLen="16" halPin="touch-probe-function" halType="u32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1A00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="status-word" halType="u32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pos-actual" halType="s32"/>
<pdoEntry idx="60BA" subIdx="00" bitLen="32" halPin="touch-probe-1" halType="s32"/>
<pdoEntry idx="60BC" subIdx="00" bitLen="32" halPin="touch-probe-2" halType="s32"/>
<pdoEntry idx="60B9" subIdx="00" bitLen="16" halPin="touch-probe-status" halType="s32"/>
<pdoEntry idx="603F" subIdx="00" bitLen="16" halPin="fault-code" halType="s32"/>
<pdoEntry idx="60FD" subIdx="00" bitLen="32" halPin="DI-status" halType="u32"/>
<pdoEntry idx="60F4" subIdx="00" bitLen="32" halPin="follow-error" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
</pdo>
</syncManager>
</slave>
<slave idx="1" type="generic" vid="00400000" pid="00000715" configPdos="true" >
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="25000"/>
<watchdog divider="2498" intervals="1000"/>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="control-word" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
<pdoEntry idx="60B8" subIdx="00" bitLen="16" halPin="touch-probe-function" halType="u32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1A00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="status-word" halType="u32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pos-actual" halType="s32"/>
<pdoEntry idx="60BA" subIdx="00" bitLen="32" halPin="touch-probe-1" halType="s32"/>
<pdoEntry idx="60BC" subIdx="00" bitLen="32" halPin="touch-probe-2" halType="s32"/>
<pdoEntry idx="60B9" subIdx="00" bitLen="16" halPin="touch-probe-status" halType="s32"/>
<pdoEntry idx="603F" subIdx="00" bitLen="16" halPin="fault-code" halType="s32"/>
<pdoEntry idx="60FD" subIdx="00" bitLen="32" halPin="DI-status" halType="u32"/>
<pdoEntry idx="60F4" subIdx="00" bitLen="32" halPin="follow-error" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
</pdo>
</syncManager>
</slave>
<slave idx="2" type="generic" vid="0x00445653" pid="0x00009252" configPdos="true" >
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="25000"/>
<watchdog divider="2498" intervals="1000"/>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="control-word" halType="u32"/>
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="opmode" halType="s32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
<pdoEntry idx="60B8" subIdx="00" bitLen="16" halPin="touch-probe-function" halType="u32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1A00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="status-word" halType="u32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="pos-actual" halType="s32"/>
<pdoEntry idx="60BA" subIdx="00" bitLen="32" halPin="touch-probe-1" halType="s32"/>
<pdoEntry idx="60BC" subIdx="00" bitLen="32" halPin="touch-probe-2" halType="s32"/>
<pdoEntry idx="60B9" subIdx="00" bitLen="16" halPin="touch-probe-status" halType="s32"/>
<pdoEntry idx="603F" subIdx="00" bitLen="16" halPin="fault-code" halType="s32"/>
<pdoEntry idx="60FD" subIdx="00" bitLen="32" halPin="DI-status" halType="u32"/>
<pdoEntry idx="60F4" subIdx="00" bitLen="32" halPin="follow-error" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
</pdo>
</syncManager>
</slave>
</master>
</masters>
- Sekai
- Sekai
19 Jun 2025 03:07
Replied by Sekai on topic LinuxCNC MillTurn
LinuxCNC MillTurn
Category: General LinuxCNC Questions
Thx for the reply.
I know that linuxcnc has 9 axis in total and the name in different.
For now i have the linear guide rails and i'm working in Solidworks to build the 3d model of the entire build.
What i dont know is how to use linuxcnc for the spindle configuration.For example should i use a servomotor for the spindle head, main and subspindle or use a different style like a regular 3 phase motor with a VFD comanded by RS485 and then when i need position i can switch to servomotor or a stepper motor.
The advantage will be with 3 phase motor i can get higher rpm.
I know that linuxcnc has 9 axis in total and the name in different.
For now i have the linear guide rails and i'm working in Solidworks to build the 3d model of the entire build.
What i dont know is how to use linuxcnc for the spindle configuration.For example should i use a servomotor for the spindle head, main and subspindle or use a different style like a regular 3 phase motor with a VFD comanded by RS485 and then when i need position i can switch to servomotor or a stepper motor.
The advantage will be with 3 phase motor i can get higher rpm.
- Sekai
- Sekai
18 Jun 2025 19:26
LinuxCNC MillTurn was created by Sekai
LinuxCNC MillTurn
Category: General LinuxCNC Questions
Hi everybody.
I would like to build a CNC machine with 5 axis MillTurning.
Its basically like the DMG Mori CTX BETA 800 TC.
I work everyday as a cnc programmer with DMG(Siemens/Celo) and Doosan(Fanuc).
It would be a small form factor and only for light materials, like aluminiu or brass.
My ideea is :
X, Y, Z as linear axis.
C1, C2, C3 as rotary axis.
C1 is the rotary axis of the spindle head
C2 is rotary axis of main spindle (G54)
C3 is the subspindle (G55 for ex.)
BTW i know that in DMG the C1, C2, C3 are in angular mode, in turn mode is S1, S2, S3.
The Spindle head will be with a BT30. (i will machine all turn base tool holders for BT30)
The driver part i would like to use 400W to 750 W servomotors.
I would like to use Parallel port for this setup but i get the feeling i'm limiting the performance of the build.
For the moment i have some stepper motors (JSS57P2N) would like to experiment.
The build size will be maximum of 500mm between arbors (S2, S3), the Y axis max 150 mm travel, X axis 200 mm travel.
The problem i face right now is it posibil to make this cnc with linxcnc or i have to buy a different controller and software?
For now i have DELL Optiplex 745 with Intel Core2Duo CPU and 4GB Ram, AMD video card and i get about 12000ns
latency test.
I'm trying different configurations but do not see something compatible for my purpose.
If someone build something similar from DMG style could you guide me.
Thanks
I would like to build a CNC machine with 5 axis MillTurning.
Its basically like the DMG Mori CTX BETA 800 TC.
I work everyday as a cnc programmer with DMG(Siemens/Celo) and Doosan(Fanuc).
It would be a small form factor and only for light materials, like aluminiu or brass.
My ideea is :
X, Y, Z as linear axis.
C1, C2, C3 as rotary axis.
C1 is the rotary axis of the spindle head
C2 is rotary axis of main spindle (G54)
C3 is the subspindle (G55 for ex.)
BTW i know that in DMG the C1, C2, C3 are in angular mode, in turn mode is S1, S2, S3.
The Spindle head will be with a BT30. (i will machine all turn base tool holders for BT30)
The driver part i would like to use 400W to 750 W servomotors.
I would like to use Parallel port for this setup but i get the feeling i'm limiting the performance of the build.
For the moment i have some stepper motors (JSS57P2N) would like to experiment.
The build size will be maximum of 500mm between arbors (S2, S3), the Y axis max 150 mm travel, X axis 200 mm travel.
The problem i face right now is it posibil to make this cnc with linxcnc or i have to buy a different controller and software?
For now i have DELL Optiplex 745 with Intel Core2Duo CPU and 4GB Ram, AMD video card and i get about 12000ns
latency test.
I'm trying different configurations but do not see something compatible for my purpose.
If someone build something similar from DMG style could you guide me.
Thanks
Time to create page: 0.528 seconds