Search Results (Searched for: stepper spindle)
QtPlasmac setup
Category: Plasmac
Generated by PNCconf at Tue Jan 2 16:39:10 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS num_spindles=[TRAJ]SPINDLES
loadrt hostmot2
loadrt hm2_eth board_ip="192.168.1.121" config="num_encoders=1 num_pwmgens=1 num_stepgens=5 sserial_port_0=00000000"
setp [HMOT](CARD0).pwmgen.pwm_frequency 20000
setp [HMOT](CARD0).pwmgen.pdm_frequency 6000000
setp [HMOT](CARD0).watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s
loadrt plasmac
addf [HMOT](CARD0).read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf plasmac servo-thread
addf [HMOT](CARD0).write servo-thread
setp [HMOT](CARD0).dpll.01.timer-us -50
setp [HMOT](CARD0).stepgen.timer-number 1
# ---PLASMA INPUT DEBOUNCE---
#values for these are in custom.hal
loadrt dbounce names=db_breakaway,db_float,db_ohmic,db_arc-ok
addf db_float servo-thread
addf db_ohmic servo-thread
addf db_breakaway servo-thread
addf db_arc-ok servo-thread
# ---JOINT ASSOCIATED WITH THE Z AXIS---
net plasmac:axis-position joint.2.pos-fb => plasmac.axis-z-position
# ---PLASMA INPUTS---
# ---all modes---
net plasmac:float-switch => db_float.in
net plasmac:breakaway => db_breakaway.in
net plasmac:ohmic-probe => db_ohmic.in
net plasmac:ohmic-sense-in => plasmac.ohmic-sense-in
# ---modes 0 & 1
net plasmac:arc-voltage-in => plasmac.arc-voltage-in
# ---modes 1 & 2
net plasmac:arc-ok-in => db_arc-ok.in
# ---mode 2
net plasmac:move-up <= plasmac.move-up
net plasmac:move-down <= plasmac.move-down
# ---PLASMA OUTPUTS---
# ---all modes---
net plasmac:ohmic-enable <= plasmac.ohmic-enable
net plasmac:scribe-arm <= plasmac.scribe-arm
net plasmac:scribe-on <= plasmac.scribe-on
# ---OHMIC SENSE LINK---
net plasmac:ohmic-probe <= plasmac.ohmic-sense-out
# external output signals
# --- PLASMAC:TORCH-ON ---
net plasmac:torch-on => [HMOT](CARD0).ssr.00.out-00
# --- PLASMAC:OHMIC-ENABLE ---
net plasmac:ohmic-enable => [HMOT](CARD0).ssr.00.out-01
# external input signals
# --- BOTH-X ---
net both-x <= [HMOT](CARD0).inm.00.input-00
# --- BOTH-Y ---
net both-y <= [HMOT](CARD0).inm.00.input-01
# --- BOTH-Z ---
net both-z <= [HMOT](CARD0).inm.00.input-02
# --- HOME-X ---
net home-x <= [HMOT](CARD0).inm.00.input-03
# --- HOME-Y ---
net home-y <= [HMOT](CARD0).inm.00.input-04
# --- HOME-Z ---
net home-z <= [HMOT](CARD0).inm.00.input-05
# --- PLASMAC:ARC-OK-IN ---
net plasmac:arc-ok-in <= [HMOT](CARD0).inm.00.input-06
# --- PLASMAC:OHMIC-SENSE-IN ---
net plasmac:ohmic-sense-in <= [HMOT](CARD0).inm.00.input-07
# --- PLASMAC:MOVE-UP ---
net plasmac:move-up <= [HMOT](CARD0).inm.00.input-08
# --- PLASMAC:MOVE-DOWN ---
net plasmac:move-down <= [HMOT](CARD0).inm.00.input-09
# --- ESTOP-EXT ---
net estop-ext <= [HMOT](CARD0).inm.00.input-10-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
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.x.maxerror 0.000500
net x-index-enable => pid.x.index-enable
net x-enable => pid.x.enable
net x-pos-cmd => pid.x.command
net x-pos-fb => pid.x.feedback
net x-output <= pid.x.output
# Step Gen signals/setup
setp [HMOT](CARD0).stepgen.00.dirsetup [JOINT_0]DIRSETUP
setp [HMOT](CARD0).stepgen.00.dirhold [JOINT_0]DIRHOLD
setp [HMOT](CARD0).stepgen.00.steplen [JOINT_0]STEPLEN
setp [HMOT](CARD0).stepgen.00.stepspace [JOINT_0]STEPSPACE
setp [HMOT](CARD0).stepgen.00.position-scale [JOINT_0]STEP_SCALE
setp [HMOT](CARD0).stepgen.00.step_type 0
setp [HMOT](CARD0).stepgen.00.control-type 1
setp [HMOT](CARD0).stepgen.00.maxaccel [JOINT_0]STEPGEN_MAXACCEL
setp [HMOT](CARD0).stepgen.00.maxvel [JOINT_0]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net x-pos-cmd <= joint.0.motor-pos-cmd
net x-vel-cmd <= joint.0.vel-cmd
net x-output => [HMOT](CARD0).stepgen.00.velocity-cmd
net x-pos-fb <= [HMOT](CARD0).stepgen.00.position-fb
net x-pos-fb => joint.0.motor-pos-fb
net x-enable <= joint.0.amp-enable-out
net x-enable => [HMOT](CARD0).stepgen.00.enable
# ---setup home / limit switch signals---
net home-x => joint.0.home-sw-in
net both-x => joint.0.neg-lim-sw-in
net both-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
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.y.maxerror 0.000500
net y-index-enable => pid.y.index-enable
net y-enable => pid.y.enable
net y-pos-cmd => pid.y.command
net y-pos-fb => pid.y.feedback
net y-output <= pid.y.output
# Step Gen signals/setup
setp [HMOT](CARD0).stepgen.01.dirsetup [JOINT_1]DIRSETUP
setp [HMOT](CARD0).stepgen.01.dirhold [JOINT_1]DIRHOLD
setp [HMOT](CARD0).stepgen.01.steplen [JOINT_1]STEPLEN
setp [HMOT](CARD0).stepgen.01.stepspace [JOINT_1]STEPSPACE
setp [HMOT](CARD0).stepgen.01.position-scale [JOINT_1]STEP_SCALE
setp [HMOT](CARD0).stepgen.01.step_type 0
setp [HMOT](CARD0).stepgen.01.control-type 1
setp [HMOT](CARD0).stepgen.01.maxaccel [JOINT_1]STEPGEN_MAXACCEL
setp [HMOT](CARD0).stepgen.01.maxvel [JOINT_1]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net y-pos-cmd <= joint.1.motor-pos-cmd
net y-vel-cmd <= joint.1.vel-cmd
net y-output => [HMOT](CARD0).stepgen.01.velocity-cmd
net y-pos-fb <= [HMOT](CARD0).stepgen.01.position-fb
net y-pos-fb => joint.1.motor-pos-fb
net y-enable <= joint.1.amp-enable-out
net y-enable => [HMOT](CARD0).stepgen.01.enable
# ---setup home / limit switch signals---
net home-y => joint.1.home-sw-in
net both-y => joint.1.neg-lim-sw-in
net both-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.000500
net z-index-enable => pid.z.index-enable
net z-enable => pid.z.enable
net z-pos-cmd => pid.z.command
net z-pos-fb => pid.z.feedback
net z-output <= pid.z.output
# Step Gen signals/setup
setp [HMOT](CARD0).stepgen.02.dirsetup [JOINT_2]DIRSETUP
setp [HMOT](CARD0).stepgen.02.dirhold [JOINT_2]DIRHOLD
setp [HMOT](CARD0).stepgen.02.steplen [JOINT_2]STEPLEN
setp [HMOT](CARD0).stepgen.02.stepspace [JOINT_2]STEPSPACE
setp [HMOT](CARD0).stepgen.02.position-scale [JOINT_2]STEP_SCALE
setp [HMOT](CARD0).stepgen.02.step_type 0
setp [HMOT](CARD0).stepgen.02.control-type 1
setp [HMOT](CARD0).stepgen.02.maxaccel [JOINT_2]STEPGEN_MAXACCEL
setp [HMOT](CARD0).stepgen.02.maxvel [JOINT_2]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net z-pos-cmd <= joint.2.motor-pos-cmd
net z-vel-cmd <= joint.2.vel-cmd
net z-output => [HMOT](CARD0).stepgen.02.velocity-cmd
net z-pos-fb <= [HMOT](CARD0).stepgen.02.position-fb
net z-pos-fb => joint.2.motor-pos-fb
net z-enable <= joint.2.amp-enable-out
net z-enable => [HMOT](CARD0).stepgen.02.enable
# ---setup home / limit switch signals---
net home-z => joint.2.home-sw-in
net both-z => joint.2.neg-lim-sw-in
net both-z => joint.2.pos-lim-sw-in
# ---motion control signals---
net in-position <= motion.in-position
net machine-is-enabled <= motion.motion-enabled
# ---digital in / out signals---
# ---estop signals---
net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in
# ---QTPLASMAC TOOLCHANGE PASSTHROUGH---
net tool:change iocontrol.0.tool-change => iocontrol.0.tool-changed
net tool:prep iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
Anyone figured out how to get Trinamic's TMC5160 drivers working with LinuxCNC?
Category: Driver Boards
www.amazon.com/BIGTREETECH-TMC5160T-Step...81-b373-0e5c1a776d5d
biqu.equipment/products/bigtreetech-tmc5...riant=40447047860322
I really want to use them on the PM-25mv bench mill converted to CNC due to it's "stealthchop" and alike features, would be used for the X and Y-axis closed-loop stepper motors, I think Z-axis should be ok which doesn't have heavy spindle motor.
Anyone figured out how to get the TMC5160 working with LinuxCNC?
I plan on getting a MESA card...
Any advice would be helpful.
Thanks.
Developments on my Home built 5C CNC Lathe - Polar interp. and Live tooling
Category: Advanced Configuration
Yes, the post DOES invoke polar interpolation in the control... meaning if anyone wants an LCNC post (based on my post) with C-axis milling they will have to use some sort of polar interpolation switchkins.
Here's a section of axial milling I just dug up:
(2D Adaptive1)
N130 M1
N135 G90 G94 G18 G80
N140 T0101
N145 M52
N150 G97 S4000 M13
N155 M9
N160 G0 C0.
N165 G12.1
N170 G1 Z0.575 F230.
N175 X1.1179 C-0.1664
N180 Z-0.375
N185 Z-0.385 F16.
N190 X1.1178 Z-0.3859
N195 X1.1176 Z-0.3867
N200 X1.1172 C-0.1663 Z-0.3876
N205 X1.1167 C-0.1662 Z-0.3884
N210 X1.1161 Z-0.3892
N215 X1.1153 C-0.1661 Z-0.39
N220 X1.1144 C-0.1659 Z-0.3907
N225 X1.1133 C-0.1658 Z-0.3914
N230 X1.1122 C-0.1657 Z-0.3921
N235 X1.111 C-0.1655 Z-0.3927
N240 X1.1096 C-0.1653 Z-0.3932
N245 X1.1082 C-0.1652 Z-0.3937
N250 X1.1067 C-0.165 Z-0.3941
N255 X1.1051 C-0.1648 Z-0.3944
N260 X1.1035 C-0.1646 Z-0.3947
N265 X1.1019 C-0.1643 Z-0.3948
N270 X1.1002 C-0.1641 Z-0.395
N275 X1.0985 C-0.1639
N280 G3 X0.8263 C-0.1443 I-0.1584 J-0.6183
N285 G1 X0.8255
N290 G3 X0.7362 C-0.1986 I0.1376 J-0.1587
N295 G2 X0.685 C-0.2357 I-0.121 J0.0562
N300 X0.1857 C-0.3953 I-0.3739 J0.3096
N305 G3 X0.1122 C-0.4059 I0.0071 J-0.0939
N310 G1 X0.1086 C-0.4071
NOTES:
- G12.1 Polar Coordinate Interpolation ON
- M52 C-axis ON
- This disables the main spindle motor
- Fires an air cylinder which forces the C-axis stepper in contact with the spindle bull gear
- Homes the (now) C-axis using the spindle-mounted encoder.
- M13 live tool ON, clockwise
Developments on my Home built 5C CNC Lathe - Polar interp. and Live tooling
Category: Advanced Configuration
If you study my ATC you will see it uses a hirth coupling and compressed air to disengage the coupler, a stepper to rotate to the next tool, with opto-sensing of tool position, and then air release to lock using compression spring discs. Also, the ATC has a live spindle as a tool select - none of this is available in the basic carousel comp - if you want fancy, you have to pay in pain..I paid a lot, nearly giving up many times...
I would not have succeeded if it were not for a LOT of help from Andy, Aciera and
DGarrett, and my good Wife, a really good software Guru.
Re the F360 processor - I think you have me confused with someone else - I never paid for F360 anything - I don't use F360, I dislike the marketing model and its Pro price, esp for hobby use...
I use Rhinocad-7 and Rhinocam - the latter cannot do Mill/turn, ie, no C axis capability in lathe CAM. For this lathe I use eCam - an Italian fellow's creation for Mill and Lathe, with a very usable C axis mode - it is very good, free on weekends, and two or three hundred Euro to buy.
I can share the 3D cad files for the lathe/ATC, etc, but it is all Rhinocad format (.3dm) - I can convert to other standards, but that always creates issues...
Spindle and motion do not work at the same time, both work independently
Category: General LinuxCNC Questions
Spindle and motion do not work at the same time, both work independently
Category: General LinuxCNC Questions
Hal watch parport looks fine. Steppers all work fine until the spindle is activated. I can home, then start a job and the steppers don't move while the spindle is running. I can pause the job and turn off the spindle and resume the job and the motion works without the spindle.
I have tried process of elimination by removing all connections from the pwm pins and that doesn't affect it.
commenting out the following line is the only thing that results in motion working when spindle is enabled (but then the spindle doesn't spin anyway)...
net spindle-cmd-rpm <= spindle.0.speed-out
Edit: Motion fails whether or not VFD is plugged in.
One of my other configs causes loud pwm sound coming from somewhere other than VFD I haven't pinpointed.
I have been trying to get this working over multiple days now. I appreciate anyone talking the time to give me some pointers on diagnosing or resolving this issue.
USB RS 485 disconnects when spindle stops
Category: General LinuxCNC Questions
2. Line filter on VFD input is installed. Did not made a difference.
3. and 4. Just googled common mode chocke. Which one do I need to buy?
I have shielded motor cable, shield connected only at the VFD.
Shielded RS485 cable, shield only connected at the USB Adapter. Ferrit Cores in the data line of the RS 485 signal wires.
LinuxCNC pc, breakout board powered by 5v power adapter OR 5v from the PC. No difference.
I the stepper driver, VFD and LinuxCNC PC all at the same outlet. IS it worth putting the VFD to a different outlet?
QTdragon home switches do not work
Category: Qtvcp
Calysto file is a working file based on axis, e-stop not connected yet. I use this config file for testing purposes.
Qtdragon is the one I can't get to work. Qtdragon starts, I can push the e-stop and machine start, it does not matter if my e-stop physical knob is pressed or not.
Homeing goes wrong, Qtdragon does not react on home-switches. The motors keep turning until they hit the end of the ball-screws and then go into error.
I skipped the qtvcp directory in the zip file to make the zip smaller.
My Machine:
PrintNC, 1540x1540 cutting area. Mesa 7c80 board, with RPI4 4GB.
JMC 180W Servo motors on X/Y/Y2, and a closed loop stepper on Z.
2005 ball screws.
Analogue controled 2,2KW spindle, I couldn't get RS485 to work, will try that again later.
No endstops, only inductive home switches. Software endstops.
In using ECR60+NPN(GPIO), I encountered an issue.
Category: EtherCAT
I now have a new problem that I need assistance with:
I have configured the start/stop and speed control of the spindle in the following way.
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadusr -W armcncio [TRAJ]COORDINATES
loadusr -W lcec_conf machine.xml
loadrt lcec
loadrt cia402 count=[KINS]JOINTS
loadrt debounce cfg=1,8
addf debounce.0 base-thread
addf debounce.1 base-thread
setp debounce.0.delay 100
setp debounce.1.delay 60
addf lcec.read-all servo-thread
addf cia402.0.read-all servo-thread
addf cia402.1.read-all servo-thread
addf cia402.2.read-all servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf cia402.0.write-all servo-thread
addf cia402.1.write-all servo-thread
addf cia402.2.write-all servo-thread
addf lcec.write-all servo-thread
#*******************
# AXIS X
#*******************
setp cia402.0.csp-mode 1
setp cia402.0.pos-scale [JOINT_0]SCALE
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
net x-enable <= joint.0.amp-enable-out => cia402.0.enable
net x-pos-cmd <= joint.0.motor-pos-cmd => cia402.0.pos-cmd
net x-pos-fb <= joint.0.motor-pos-fb => cia402.0.pos-fb
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
net debounce-home-x debounce.1.0.in <= armcncio.gpio.x-home
net both-home-x debounce.1.0.out
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
#*******************
setp cia402.1.csp-mode 1
setp cia402.1.pos-scale [JOINT_1]SCALE
net y-statusword lcec.0.1.cia-statusword => cia402.1.statusword
net y-opmode-display lcec.0.1.opmode-display => cia402.1.opmode-display
net y-drv-act-pos lcec.0.1.actual-position => cia402.1.drv-actual-position
net y-drv-act-velo lcec.0.1.actual-velocity => cia402.1.drv-actual-velocity
net y-enable <= joint.1.amp-enable-out => cia402.1.enable
net y-pos-cmd <= joint.1.motor-pos-cmd => cia402.1.pos-cmd
net y-pos-fb <= joint.1.motor-pos-fb => cia402.1.pos-fb
net y-controlword cia402.1.controlword => lcec.0.1.cia-controlword
net y-modes-of-operation cia402.1.opmode => lcec.0.1.opmode
net y-drv-target-pos cia402.1.drv-target-position => lcec.0.1.target-position
net y-drv-target-velo cia402.1.drv-target-velocity => lcec.0.1.target-velocity
net debounce-home-y debounce.1.1.in <= armcncio.gpio.y-home
net both-home-y debounce.1.1.out
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
#*******************
setp cia402.2.csp-mode 1
setp cia402.2.pos-scale [JOINT_2]SCALE
net z-statusword lcec.0.2.cia-statusword => cia402.2.statusword
net z-opmode-display lcec.0.2.opmode-display => cia402.2.opmode-display
net z-drv-act-pos lcec.0.2.actual-position => cia402.2.drv-actual-position
net z-drv-act-velo lcec.0.2.actual-velocity => cia402.2.drv-actual-velocity
net z-enable <= joint.2.amp-enable-out => cia402.2.enable
net z-pos-cmd <= joint.2.motor-pos-cmd => cia402.2.pos-cmd
net z-pos-fb <= joint.2.motor-pos-fb => cia402.2.pos-fb
net z-controlword cia402.2.controlword => lcec.0.2.cia-controlword
net z-modes-of-operation cia402.2.opmode => lcec.0.2.opmode
net z-drv-target-pos cia402.2.drv-target-position => lcec.0.2.target-position
net z-drv-target-velo cia402.2.drv-target-velocity => lcec.0.2.target-velocity
net debounce-home-z debounce.1.2.in <= armcncio.gpio.z-home
net both-home-z debounce.1.2.out
net both-home-z => joint.2.home-sw-in
net both-home-z => joint.2.neg-lim-sw-in
net both-home-z => joint.2.pos-lim-sw-in
#*********************
# SPINDLE
#*********************
net spindle-rpm spindle.0.speed-out armcncio.gpio.spindle-pwm
# net spindle-enable spindle.0.on armcncio.gpio.spindle-enable
#*********************
# E-STOP
#*********************
net debounce-estop-ext debounce.1.5.in <= armcncio.gpio.estop
net estop-ext debounce.1.5.out
net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in
I encountered the following error.
Debug file information:
Can not find -sec DISPLAY -var INTRO_GRAPHIC -num 1
Can not find -sec DISPLAY -var INTRO_TIME -num 1
Note: Using POSIX realtime
HAL: ERROR: signal 'spindle-rpm' already has output or I/O pin(s)
./machine.hal:110: link failed
9343
Stopping realtime threads
Unloading hal components
When I test the 'armcncio' separately, I can control the spindle normally. However, when integrated into LinuxCNC, it results in an error. Where could the problem be?
linuxcnc stopping constantly
Category: General LinuxCNC Questions
This morning when I went to run another job I can't even get the machine to stay powered on for more than 30 seconds. No alerts come up in the UI, no crashing happens, it really seems as if the software "power" button is just somehow getting pressed. I found this post forum.linuxcnc.org/38-general-linuxcnc-q...utting-off-toggle-f2 where the OP appears to be having a very similar issue, and I went through some of the troubleshooting steps suggested there. Unfortunately I am using a Gecko G540 which is also handling my limit switches so I can't as easily just unplug my drivers to test if they are the cause. I am certain it is not the spindle/VFD because the power offs happen without it running at all. I have started up linuxcnc in debug from the terminal and attached the results below. I assume the qtpyvcp errors are old news and not impacting to this particular issue, although I have never looked at this output before so I can't say that with certainty.
The only reasonable way I can think of to test if my drivers are causing the problem would be to leave the G540 powered on but unplug the stepper motors from the G540 unit, and I don't know if that is safe to do or not so I will wait for guidance here before going that route.
I have video of the issue happening but I am not able to post it from this computer. It is really only showing the power button spontaneously turn grey anyway so I don't know how useful that would be.
I greatly appreciate any help!
where to begin to convert a Delta Tau CNC controller application to Linux CNC
Category: General LinuxCNC Questions
Here is a new one: www.sterlingint.com/lathes/optoform-80
Here is a used one, sold: caeonline.com/buy/machine-tools/precitech-optoform-50/9133282
Optoform 50. Two air bearing linear slides, and one air bearing spindle. Machine uses something like 10CFM of compressed air.
I have never actually seen one, so I don't exactly know. Drive is Delta Tau controller. Delta Tau no longer--it is now Omron. machine made in 1990's, and has been used for grinding interocular lenses. Interocular lenses are the lenses used to implant in people's eyes following cataract removal surgery.
We wish to make contact lenses with these things.
I did ask about the drive: 0-12 volts is what I was told, however I would be surprised, and probably 0-10 volts driving custom-made Kollmorgen motors. "Everything" about the lathes are outdated, and why I asked about where to start with the conversion of the program to Linux CNC.
Linux is a DIY system, and since they take weeks to respond to our requests, I would rather be on my own than depend on them.
With the slides being air bearings, pretty sure encoder feedback with some sort of velocity feedback because cutting torques are really small. ALso t he machine has a vibration isolation base using some sort of air bearings. Best surfaces in the business...
Definitely not stepper motors.
Regarding macros. I have decades of experience designing and making contact and optical lenses--even before the advent of computers. We just did not have enough money for the custom programs. All of the programs date back to Sir Isaac Newton--about 400 years with updates due to computing power.
Pretty sure the program itself is relatively straightforward with the needed changes in the control language from Delta Tau to Linux CNC.
All you really do to make contacts is generate curves. These are relatively small curves, usually in the 6.00mm-15.00mm range. There are some complex curves, however, I believe these are handled by the host computer, and either downloaded or the host computer generates the code for the lathe itself. I just do not know.
Due to taking months to get any service, we are slow with information. Pretty sure the lathe runs on DOS.
Hello (First post), please send me in the right direction
Category: LinuxCNC Documents
- Four x T6 ac servos, AFAIK the controllers for these accept step and direction pulses much like a stepper and take care of closing the loop and are provided with some form of tuning software (yet to be tested).
- 8 limit switches
- Spindle speed encoder
- Scales possibly up to four
- Eventually I will make a custom control board for jogging etc, but hope to use GUI for the short term
Hopefully someone can answer my preliminary questions:
1) For a CPU board, what is powerfull enough? I have a RPi, not sure if that is even close to powerfull enough. I also have more of a PC type SBC EPIA Nano-ITX not sure if it can run Linux? Suggestions for a suitable CPU board please?
2) I can randomly start reading posts, however if there is a starting from zero tutorial somewhere, please provide a link and hopefully I can come back less clueless with more focused questions?
3) What version of Linux should I be loading on the CPU board? is it free?
4) Suggestions for required break out board, someone suggested Mesa 7196S, not sure if there is better or cheaper. I'm all ears?Image of my old custom control panel that I made for my RC mill quite some time ago.Thanks in advance
Remora - ethernet NVEM / EC300 / EC500 cnc board
Category: Computers and Hardware
I've been disconnected from this topic for a few days but I haven't had time!!! remodeling at home!!! hehe housework.
Just yesterday I returned to linuxcnc, my ec500 hardware and the nema 34 closed loop stepper motors and DM860H drivers to perform a small closed loop test. I must say that I would have preferred motors with lower resolution encoders but all the closed loop motors from ebay and aliexpress have 1000 pulses or 4000 counts per revolution, another difficulty has been the voltage level of the encoders is 5V so I have used the free pins of the MPG port +/-WHA +/-WHB which are 5V tolerant (they are differential, something really good because all the closed loop motor encoders that I saw also have differential outputs), I don't know what quality level the differential driver connected to the MPG port will have, I haven't even looked at it, on the other hand, there are the basic configurations for the *.ini and *.hal files that Scott provides us, first I have done certain tests in open circuit and the motors truly reach incredible speeds, this is where I have found problems because the speeds in the sample *.ini file are of the order from 125 <-> 166 mm/s = 7500 <-> 9000 mm/min; which from my ignorance, depending a lot on the construction of the machines, it is quite difficult to reach these speed values, now the problems have been in terms of the relationship between speed and loss of steps since, for example, above 1500mm/min I lose counts in the encoder, my calculations would be the following, you can correct me if I'm wrong: for a spindle with a 4mm pitch it would be 1500mm/min / 4mm = 375 rpm, 375rpm/60 = 6.25rps and 6.25rps*4000 = 25000 counts/sec, which I already say from my ignorance seems quite little to me but I lose counts above this speed, otherwise it has been gratifying to be able to perform a closed loop control using Linuxcnc I was able to adjust the pid without problems, I have seen a pretty good video on the Youtuber size83 very well explained by the way and based on Remora's notes for a closed loop configuration.
Hello Scott, I have made some changes to the qdc module since I had not used the MPG port pins and I had incorrectly configured dir signal continues to occur, I tested your changes in the bugfix branch and I have not seen any improvement in this regard, then I will upload the *.ini and *.hal files since now I am from the phone.
I don't understand why the editor doesn't allow me to add a video, I did it a while ago and it worked, it doesn't matter, I'll leave you a link to the test video
Stepper speed based on position
Category: Basic Configuration
It's all very very very interesting, but I have to make choices...
Stepper speed based on position
Category: Basic Configuration
I can't imagine using LinuxCNC without learning how to use hal. Lincurve is a component:
Like I said, try feeding the motion adaptive feed with lincurve
Sorry... I have now idea how to do that... I think I will leave it this way, it's not that important. Thank you all for your good answers!
linuxcnc.org/docs/html/man/man9/lincurve.9.html
So is motion. Motion is where all of your axis and spindle stuff is controlled:
linuxcnc.org/docs/html/man/man9/motion.9.html
You need to understand how pins and signals work. If you want more help post your hal file.