Search Results (Searched for: stepper spindle)
- spumco
- spumco
05 Dec 2024 22:25
Replied by spumco on topic Probe Basic - ATC sim parameter question
Probe Basic - ATC sim parameter question
Category: QtPyVCP
Chris,
I'll fire up the mill later tonight and get a config dump for you. And yes, I'm using a step/dir non-axis output to drive the ATC stepper.
Once you've had a look - it's complicated - I'll walk you through any of the atc-specific stuff that isn't clear.
Agree - the tool DB would be nice. There are a number of features I'd really like to have that could be automated via a DB value:
I'll fire up the mill later tonight and get a config dump for you. And yes, I'm using a step/dir non-axis output to drive the ATC stepper.
Once you've had a look - it's complicated - I'll walk you through any of the atc-specific stuff that isn't clear.
Agree - the tool DB would be nice. There are a number of features I'd really like to have that could be automated via a DB value:
- lathe front tool/back-tool backplot flips
- lathe main/sub spindle backplot flips
- multiple offsets for a multi-function tool like Siemens does
- Max RPM
- "Big" or 'Heavy" tools for carousels (nothing allowed next to oversized tools, or slow down carousel for high inertia)
- DeckelCNC
- DeckelCNC
30 Nov 2024 21:42
Replied by DeckelCNC on topic Leadshine EL8 Servo Drives - EtherCAT
Leadshine EL8 Servo Drives - EtherCAT
Category: Advanced Configuration
Thank you for the reply's
Kworm : i think i have the pdo's right in the drive Vs the terminal output Vs the .xml ? please let me know if i am not understanding correctly. Thank you for your time.
Aciera (sorry i thought it was better to upload files that made no errors, but not actually working)
i have been reading and come across a post about a Youtuber called Marco Reps ? i thought it would be a idea to apply some of the methods i found in these files. so i have changed things from my first post, and i am now getting errors again / LinuxCNC is not opening. this looks to be the main issue ? EL8_machine.hal:41: Pin 'lcec.0.0.cia-statusword' does not exist
i have included the Error report + the .xml + .hal + .ini
.XML File
.HAL
.ini
Kworm : i think i have the pdo's right in the drive Vs the terminal output Vs the .xml ? please let me know if i am not understanding correctly. Thank you for your time.
Warning: Spoiler!
$ ethercat pdos
=== Master 0, Slave 1 ===
SM0: PhysAddr 0x1000, DefaultSize 0, ControlRegister 0x00, Enable 0
TxPDO 0x1a00 "Channel 1"
PDO entry 0x6000:01, 1 bit, "Input"
TxPDO 0x1a01 "Channel 2"
PDO entry 0x6010:01, 1 bit, "Input"
TxPDO 0x1a02 "Channel 3"
PDO entry 0x6020:01, 1 bit, "Input"
TxPDO 0x1a03 "Channel 4"
PDO entry 0x6030:01, 1 bit, "Input"
TxPDO 0x1a04 "Channel 5"
PDO entry 0x6040:01, 1 bit, "Input"
TxPDO 0x1a05 "Channel 6"
PDO entry 0x6050:01, 1 bit, "Input"
TxPDO 0x1a06 "Channel 7"
PDO entry 0x6060:01, 1 bit, "Input"
TxPDO 0x1a07 "Channel 8"
PDO entry 0x6070:01, 1 bit, "Input"
=== Master 0, Slave 2 ===
SM0: PhysAddr 0x1000, DefaultSize 0, ControlRegister 0x00, Enable 0
TxPDO 0x1a00 "Channel 1"
PDO entry 0x6000:01, 1 bit, "Input"
TxPDO 0x1a01 "Channel 2"
PDO entry 0x6010:01, 1 bit, "Input"
TxPDO 0x1a02 "Channel 3"
PDO entry 0x6020:01, 1 bit, "Input"
TxPDO 0x1a03 "Channel 4"
PDO entry 0x6030:01, 1 bit, "Input"
TxPDO 0x1a04 "Channel 5"
PDO entry 0x6040:01, 1 bit, "Input"
TxPDO 0x1a05 "Channel 6"
PDO entry 0x6050:01, 1 bit, "Input"
TxPDO 0x1a06 "Channel 7"
PDO entry 0x6060:01, 1 bit, "Input"
TxPDO 0x1a07 "Channel 8"
PDO entry 0x6070:01, 1 bit, "Input"
=== Master 0, Slave 3 ===
SM0: PhysAddr 0x0f00, DefaultSize 0, ControlRegister 0x44, Enable 9
RxPDO 0x1600 "Channel 1"
PDO entry 0x7000:01, 1 bit, "Output"
RxPDO 0x1601 "Channel 2"
PDO entry 0x7010:01, 1 bit, "Output"
RxPDO 0x1602 "Channel 3"
PDO entry 0x7020:01, 1 bit, "Output"
RxPDO 0x1603 "Channel 4"
PDO entry 0x7030:01, 1 bit, "Output"
=== Master 0, Slave 4 ===
SM0: PhysAddr 0x1000, DefaultSize 124, ControlRegister 0x26, Enable 1
SM1: PhysAddr 0x1100, DefaultSize 124, ControlRegister 0x22, Enable 1
SM2: PhysAddr 0x1200, DefaultSize 0, ControlRegister 0x64, Enable 1
RxPDO 0x1600 ""
PDO entry 0x6040:00, 16 bit, ""
PDO entry 0x6060:00, 8 bit, ""
PDO entry 0x607a:00, 32 bit, ""
PDO entry 0x60ff:00, 32 bit, ""
SM3: PhysAddr 0x1400, DefaultSize 0, ControlRegister 0x20, Enable 1
TxPDO 0x1a00 ""
PDO entry 0x6041:00, 16 bit, ""
PDO entry 0x6061:00, 8 bit, ""
PDO entry 0x6064:00, 32 bit, ""
PDO entry 0x606c:00, 32 bit, ""
PDO entry 0x6077:00, 16 bit, ""
=== Master 0, Slave 1 ===
SM0: PhysAddr 0x1000, DefaultSize 0, ControlRegister 0x00, Enable 0
TxPDO 0x1a00 "Channel 1"
PDO entry 0x6000:01, 1 bit, "Input"
TxPDO 0x1a01 "Channel 2"
PDO entry 0x6010:01, 1 bit, "Input"
TxPDO 0x1a02 "Channel 3"
PDO entry 0x6020:01, 1 bit, "Input"
TxPDO 0x1a03 "Channel 4"
PDO entry 0x6030:01, 1 bit, "Input"
TxPDO 0x1a04 "Channel 5"
PDO entry 0x6040:01, 1 bit, "Input"
TxPDO 0x1a05 "Channel 6"
PDO entry 0x6050:01, 1 bit, "Input"
TxPDO 0x1a06 "Channel 7"
PDO entry 0x6060:01, 1 bit, "Input"
TxPDO 0x1a07 "Channel 8"
PDO entry 0x6070:01, 1 bit, "Input"
=== Master 0, Slave 2 ===
SM0: PhysAddr 0x1000, DefaultSize 0, ControlRegister 0x00, Enable 0
TxPDO 0x1a00 "Channel 1"
PDO entry 0x6000:01, 1 bit, "Input"
TxPDO 0x1a01 "Channel 2"
PDO entry 0x6010:01, 1 bit, "Input"
TxPDO 0x1a02 "Channel 3"
PDO entry 0x6020:01, 1 bit, "Input"
TxPDO 0x1a03 "Channel 4"
PDO entry 0x6030:01, 1 bit, "Input"
TxPDO 0x1a04 "Channel 5"
PDO entry 0x6040:01, 1 bit, "Input"
TxPDO 0x1a05 "Channel 6"
PDO entry 0x6050:01, 1 bit, "Input"
TxPDO 0x1a06 "Channel 7"
PDO entry 0x6060:01, 1 bit, "Input"
TxPDO 0x1a07 "Channel 8"
PDO entry 0x6070:01, 1 bit, "Input"
=== Master 0, Slave 3 ===
SM0: PhysAddr 0x0f00, DefaultSize 0, ControlRegister 0x44, Enable 9
RxPDO 0x1600 "Channel 1"
PDO entry 0x7000:01, 1 bit, "Output"
RxPDO 0x1601 "Channel 2"
PDO entry 0x7010:01, 1 bit, "Output"
RxPDO 0x1602 "Channel 3"
PDO entry 0x7020:01, 1 bit, "Output"
RxPDO 0x1603 "Channel 4"
PDO entry 0x7030:01, 1 bit, "Output"
=== Master 0, Slave 4 ===
SM0: PhysAddr 0x1000, DefaultSize 124, ControlRegister 0x26, Enable 1
SM1: PhysAddr 0x1100, DefaultSize 124, ControlRegister 0x22, Enable 1
SM2: PhysAddr 0x1200, DefaultSize 0, ControlRegister 0x64, Enable 1
RxPDO 0x1600 ""
PDO entry 0x6040:00, 16 bit, ""
PDO entry 0x6060:00, 8 bit, ""
PDO entry 0x607a:00, 32 bit, ""
PDO entry 0x60ff:00, 32 bit, ""
SM3: PhysAddr 0x1400, DefaultSize 0, ControlRegister 0x20, Enable 1
TxPDO 0x1a00 ""
PDO entry 0x6041:00, 16 bit, ""
PDO entry 0x6061:00, 8 bit, ""
PDO entry 0x6064:00, 32 bit, ""
PDO entry 0x606c:00, 32 bit, ""
PDO entry 0x6077:00, 16 bit, ""
Aciera (sorry i thought it was better to upload files that made no errors, but not actually working)
i have been reading and come across a post about a Youtuber called Marco Reps ? i thought it would be a idea to apply some of the methods i found in these files. so i have changed things from my first post, and i am now getting errors again / LinuxCNC is not opening. this looks to be the main issue ? EL8_machine.hal:41: Pin 'lcec.0.0.cia-statusword' does not exist
i have included the Error report + the .xml + .hal + .ini
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/lib/linuxcnc/modules
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.6
LINUXCNC - 2.9.3
Machine configuration directory is '/home/edmuser/linuxcnc/configs/sim.axis-3'
Machine configuration file is 'EL8_machine.ini'
INIFILE=/home/edmuser/linuxcnc/configs/sim.axis-3/EL8_machine.ini
VERSION=1.1
PARAMETER_FILE=linuxcnc.var
TPMOD=
HOMEMOD=
TASK=milltask
HALUI=halui
DISPLAY=axis
COORDINATES=X Y Z
KINEMATICS=trivkins coordinates=XYZ
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
libnml/buffer/shmem.cc 320: Shared memory buffers toolCmd and toolCmd may conflict. (key=1004(0x3EC))
libnml/buffer/shmem.cc 320: Shared memory buffers toolSts and toolSts may conflict. (key=1005(0x3ED))
libnml/buffer/shmem.cc 320: Shared memory buffers emcError and emcError may conflict. (key=1003(0x3EB))
emc/iotask/ioControl.cc 786: can't load tool table.
Starting HAL User Interface program: halui
linuxcnc TPMOD=tpmod HOMEMOD=homemod EMCMOT=motmod
Found file(REL): ./EL8_machine.hal
Shutting down and cleaning up LinuxCNC...
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Debug file information:
Note: Using POSIX realtime
./EL8_machine.hal:41: Pin 'lcec.0.0.cia-statusword' does not exist
55850
Stopping realtime threads
Unloading hal components
Note: Using POSIX realtime.XML File
Warning: Spoiler!
<masters>
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="5">
<slave idx="0" type="EK1100"/>
<slave idx="1" type="EL1008"/>
<slave idx="2" type="EL1008"/>
<slave idx="3" type="EL2004"/>
<!-- X axis EL8 Servo Drive -->
<slave idx="4" type="generic" vid="00004321" pid="000010c2" configPdos="true">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="cia-controlword" 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="60FF" subIdx="00" bitLen="32" halPin="target-velocity" halType="s32" />
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="cia-statusword" halType="u32"/>
<pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="opmode-display" halType="s32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="actual-position" halType="s32"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="actual-velocity" 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="5">
<slave idx="0" type="EK1100"/>
<slave idx="1" type="EL1008"/>
<slave idx="2" type="EL1008"/>
<slave idx="3" type="EL2004"/>
<!-- X axis EL8 Servo Drive -->
<slave idx="4" type="generic" vid="00004321" pid="000010c2" configPdos="true">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="cia-controlword" 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="60FF" subIdx="00" bitLen="32" halPin="target-velocity" halType="s32" />
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="cia-statusword" halType="u32"/>
<pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="opmode-display" halType="s32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="actual-position" halType="s32"/>
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="actual-velocity" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
</pdo>
</syncManager>
</slave>
</master>
</masters>
.HAL
Warning: Spoiler!
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadusr -W lcec_conf /home/edmuser/linuxcnc/configs/sim.axis-3/ethercat-conf.xml
loadrt lcec
loadrt cia402 count=1
loadrt mult2
addf lcec.read-all servo-thread
addf cia402.0.read-all servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf cia402.0.write-all servo-thread
addf lcec.write-all servo-thread
setp iocontrol.0.emc-enable-in 1
#*******************
# AXIS X
#*******************
# --- joint signals for motion
net x-pos-cmd <= joint.0.motor-pos-cmd
net x-vel-cmd <= joint.0.vel-cmd
net x-pos-fb <= joint.0.motor-pos-fb
net x-enable <= joint.0.amp-enable-out
net all-home => joint.0.home-sw-in
# --- connect stepper driver to joint
net x-pos-cmd => cia402.0.pos-cmd
net x-pos-fb => cia402.0.pos-fb
net x-enable => cia402.0.enable
# --- Drive settings
setp cia402.0.csp-mode 1
setp cia402.0.pos-scale 10000
# --- from Drive(ethercat) to cia402
net x-statusword lcec.0.0.cia-statusword => cia402.0.statusword
net x-opmode-display lcec.0.0.opmode-display => cia402.0.opmode-display
net x-drv-act-pos lcec.0.0.actual-position => cia402.0.drv-actual-position
net x-drv-act-velo lcec.0.0.actual-velocity => cia402.0.drv-actual-velocity
# --- from cia402 to Drive(ethercat)
net x-controlword cia402.0.controlword => lcec.0.0.cia-controlword
net x-modes-of-operation cia402.0.opmode => lcec.0.0.opmode
net x-drv-target-pos cia402.0.drv-target-position => lcec.0.0.target-position
net x-drv-target-velo cia402.0.drv-target-velocity => lcec.0.0.target-velocity
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadusr -W lcec_conf /home/edmuser/linuxcnc/configs/sim.axis-3/ethercat-conf.xml
loadrt lcec
loadrt cia402 count=1
loadrt mult2
addf lcec.read-all servo-thread
addf cia402.0.read-all servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf cia402.0.write-all servo-thread
addf lcec.write-all servo-thread
setp iocontrol.0.emc-enable-in 1
#*******************
# AXIS X
#*******************
# --- joint signals for motion
net x-pos-cmd <= joint.0.motor-pos-cmd
net x-vel-cmd <= joint.0.vel-cmd
net x-pos-fb <= joint.0.motor-pos-fb
net x-enable <= joint.0.amp-enable-out
net all-home => joint.0.home-sw-in
# --- connect stepper driver to joint
net x-pos-cmd => cia402.0.pos-cmd
net x-pos-fb => cia402.0.pos-fb
net x-enable => cia402.0.enable
# --- Drive settings
setp cia402.0.csp-mode 1
setp cia402.0.pos-scale 10000
# --- from Drive(ethercat) to cia402
net x-statusword lcec.0.0.cia-statusword => cia402.0.statusword
net x-opmode-display lcec.0.0.opmode-display => cia402.0.opmode-display
net x-drv-act-pos lcec.0.0.actual-position => cia402.0.drv-actual-position
net x-drv-act-velo lcec.0.0.actual-velocity => cia402.0.drv-actual-velocity
# --- from cia402 to Drive(ethercat)
net x-controlword cia402.0.controlword => lcec.0.0.cia-controlword
net x-modes-of-operation cia402.0.opmode => lcec.0.0.opmode
net x-drv-target-pos cia402.0.drv-target-position => lcec.0.0.target-position
net x-drv-target-velo cia402.0.drv-target-velocity => lcec.0.0.target-velocity
.ini
Warning: Spoiler!
[EMC]
MACHINE = EL8_machines
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = axis
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
ARCDIVISION = 64
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
MAX_FEED_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = 0.5
MAX_SPINDLE_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 2.50
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 25.00
CYCLE_TIME = 0.100
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 1
PROGRAM_PREFIX = /home/cnc/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
PYVCP = pyvcp_panel.xml
[KINS]
JOINTS = 1
KINEMATICS = trivkins coordinates=XYZ
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
PROGRAM_EXTENSION = .nc,.tap G-Code File
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
#HOMEMOD=el8_homecomp
[HAL]
HALFILE = EL8_machine.hal
#HALFILE = xhc-whb04b.hal
POSTGUI_HALFILE = pyvcp_panel.hal
HALUI = halui
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 2.50
MAX_LINEAR_VELOCITY = 25.00
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
#*** AXIS_X *******************************
[AXIS_X]
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
MIN_LIMIT = -200.0
MAX_LIMIT = 200.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = -200.0
MAX_LIMIT = 200.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
SCALE = 80.0
FERROR = 1000
MIN_FERROR = 1000
HOME_ABSOLUTE_ENCODER = 2
#HOME = 0
HOME_OFFSET = 0
HOME_SEARCH_VEL = 20.000000
HOME_LATCH_VEL = 10.000
HOME_SEQUENCE = 1
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = False
HOME_IS_SHARED = 1
#******************************************
MACHINE = EL8_machines
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = axis
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
ARCDIVISION = 64
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
MAX_FEED_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = 0.5
MAX_SPINDLE_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 2.50
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 25.00
CYCLE_TIME = 0.100
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 1
PROGRAM_PREFIX = /home/cnc/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
PYVCP = pyvcp_panel.xml
[KINS]
JOINTS = 1
KINEMATICS = trivkins coordinates=XYZ
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
PROGRAM_EXTENSION = .nc,.tap G-Code File
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
#HOMEMOD=el8_homecomp
[HAL]
HALFILE = EL8_machine.hal
#HALFILE = xhc-whb04b.hal
POSTGUI_HALFILE = pyvcp_panel.hal
HALUI = halui
[TRAJ]
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 2.50
MAX_LINEAR_VELOCITY = 25.00
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
#*** AXIS_X *******************************
[AXIS_X]
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
MIN_LIMIT = -200.0
MAX_LIMIT = 200.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = -200.0
MAX_LIMIT = 200.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
SCALE = 80.0
FERROR = 1000
MIN_FERROR = 1000
HOME_ABSOLUTE_ENCODER = 2
#HOME = 0
HOME_OFFSET = 0
HOME_SEARCH_VEL = 20.000000
HOME_LATCH_VEL = 10.000
HOME_SEQUENCE = 1
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = False
HOME_IS_SHARED = 1
#******************************************
- timo
- timo
30 Nov 2024 05:27
Tip on how to plan a machine was created by timo
Tip on how to plan a machine
Category: General LinuxCNC Questions
Hello,
i was quite fed up with undocumented components on my 2nd hand machine.
That is why I ripped it apart and decided to re-do the complete electric syste.
Now I was thinking it is a good idea to make some sort of wiring diagram, before starting the actual work.
This is to help adding more functions in the future, helps with repair. ( I want to avoid to have to reverse engineer my own installation )
From another thread I learned that this kind of plan might become also helpful to create a structured .hal and .ini file
Just to give an idea what I am up to.
A simple x-y-z mill, optional rotary axis a or c, (maybe rigid tapping, given the low torque spindle probably useless), MPG
Components that I have so far:
Greetings Timo
i was quite fed up with undocumented components on my 2nd hand machine.
That is why I ripped it apart and decided to re-do the complete electric syste.
Now I was thinking it is a good idea to make some sort of wiring diagram, before starting the actual work.
This is to help adding more functions in the future, helps with repair. ( I want to avoid to have to reverse engineer my own installation )
From another thread I learned that this kind of plan might become also helpful to create a structured .hal and .ini file
Just to give an idea what I am up to.
A simple x-y-z mill, optional rotary axis a or c, (maybe rigid tapping, given the low torque spindle probably useless), MPG
Components that I have so far:
- PC
- Mesa Card
- 3 open loop stepper drivers
- 3 stepper motors from old system
- 1 closed loop stepper with integrated driver (for rotary axis)
- Power supply 80V DC
- MPG (wires single switches, "no brain")
- BLDC spindle with driver (from old system) 0-10V speed control (can be pluged to MESA card)
- x-y-z proximity switches
- Temp switch for spindle overheat
- (optional) coolant pump
- (optional) spindle encoder
Greetings Timo
- natholego11

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.
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
- bruno84
- bruno84
16 Nov 2024 04:32
7i96s, 3 axis mill conversion, servo spindle, probe basic almost full function was created by bruno84
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
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
- spumco
- spumco
15 Nov 2024 20:16
Replied by spumco on topic LinuxCNC for lathe questions
LinuxCNC for lathe questions
Category: General LinuxCNC Questions
I won't comment on GUI choice(s) here - those are personal preferences. Regarding your other 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.
- 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.
- slowpoke
- slowpoke
15 Nov 2024 14:44 - 15 Nov 2024 18:28
LinuxCNC for lathe questions was created by slowpoke
LinuxCNC for 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'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.
- hmearns
- hmearns
15 Nov 2024 13:09
Replied by hmearns on topic Novakon Mill Conversion - Getting Started
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.
- hmearns
- hmearns
14 Nov 2024 19:56
Replied by hmearns on topic Novakon Mill Conversion - Getting Started
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.
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.
- schnellmued
- schnellmued
14 Nov 2024 18:24
Replied by schnellmued on topic Mesa 7i96s / Network no longer working
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
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
-
schnellmued
- behai
- behai
14 Nov 2024 13:38
Replied by behai on topic Please help with Nema 23 closed loop CL57T-V41 driver Microstep Switches
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.
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
Thank you and best regards,
...behai.
- AA
- AA
13 Nov 2024 20:17
Multiple controller boards was created by AA
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
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
- mjones@welfab.ca
- mjones@welfab.ca
12 Nov 2024 22:05
Replied by mjones@welfab.ca on topic Mesa, Linuxcnc with step direction servo's for axis and analog servo spindle.
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.
Time to create page: 0.858 seconds