Advanced Search

Search Results (Searched for: stepper spindle)

10 Jan 2024 01:37

Which linux distro is easiest to start with to select for LinuxCNX as of today?

Category: General LinuxCNC Questions

1 Yes
2 Yes
See also 7i85S, it connects to 7i96S and adds another 4 steppers and 4 encoders/linear scales.
The spindle encoder on 7i96S can also be used for joint/axis encoder/linear scale.
Linear scales must be incremental with TTL/5V output.
If you later need more I/O, add 1 or 2 of 7i84, each has 32 inputs and 16 outputs, easy wiring to 7i96S or 7i85S.
10 Jan 2024 00:42

Which linux distro is easiest to start with to select for LinuxCNX as of today?

Category: General LinuxCNC Questions

Thank You very much! Around 16 kHz is what is necessary to step a motor at 600RPM and 1/8 microstep, which should be ok in the beginning?.. (as I understand microsteps are then at 1/8 lower torques so they do not add any precision when load is high)

The "highest" model listed here seems to be the 7i96S, which is also available here and there, but it is 5 axis only and doesn't contain servo encoder feedback.

The seemingly more powerful 6 axis model with servo feedback for each axis: eusurplus.com/index.php?route=product/pr...62_71&product_id=115

is not available immediately (preorder necessary).

The former card does have 5 axis support, which should be more than fine for a beginner. "The 7I96S also has 11 isolated inputs plus 6 isolated outputs for general purpose I/O use. A high speed encoder interface is provided for spindle synchronized motion and an isolated analog spindle output allows spindle speed control . A RS-422/RS485 serial port and a parallel port are provided for I/O expansion ."

I wonder if I am able to use these inputs from micrometric linear scales, to have a feedback for my step motor control. I am thinking of "removing" (rather compensating for) backslash electronically with the rule, that scale numbers are the final truth about position of my table, not motor angle (like in servo and servo-steppers). This way I would not care about wheter motor shaft did the step, but whether the scale masurement got me to the right position. I would push motor steps until I am at the expected value. If I could not achieve it within a reasonable number of steps, it would be an alarm to stop further operation.

1. Does it sound reasonable.
2. Can LinuxCNC support such approach out of the box.

I am a C++ programmer, maybe I can add an extension if 2!=true?
08 Jan 2024 23:19
Mesa CT 7i96 7i85S was created by jtrantow

Mesa CT 7i96 7i85S

Category: Driver Boards

I just installed mesact from your github hoping I can use it for my lathe and mill instead of using an editor. I've used stepconf and pncconf but this is my first use of mesact.

I have my lathe setup with XYZA motors connected to stepgens on the 7i96 and encoders for XYZ and Spindle on the 7i85S. I'm currently running the 7i96_7i85s.bit firmware but I intend to switch to the a bitfile with PWM on the 7i96 Step4 pins.

Using the firmware/Mesaflash dialog I can verify the firmware. But Options says "No pin file found!" and I can't change the Step Generators, PWM Generatiors, Encoders options?

It looks like I could rewire my steppers connected to the 7i96 6 pin step gen connectors to use the 8 pin Diff Out connectors of the 7i85S and use mesact the way it is?

With the current implementation of mesact is it possible to pair the 7i96 stepgens with the 7i85s encoders?
08 Jan 2024 13:58

Best Mesa Option for me

Category: General LinuxCNC Questions

Hello, 

i have a cnc router i build a few years back.  works well. 
This was my first step in motion control. I used a cheap parallel card to drive 
my stepper drivers, dust collection, and all the limit switches and estops.  
I all so have a USB to serial to control a VFD. As well as a diode laser to engrave/burn wood.
The Parallel card is out of io and I have all so had some issues with the computer sometimes losing its place.  Maybe i accidentally click off of linuxCNC to some other app or some other dumb thing.

so i have been looking at mesa cards.  and i think that i want to get the 7i95t but i don't see it directly supported in linuxCNC.  I could all so use the 7i76.
i want to  know how hard this is going to be to implement. And if it is the correct choice.

my goal here is this:
I want to separate limit switches, homing circuits and probing input. 
I want to add separate control for pneumatic stuff.   i.e. a mister for cutting aluminumI want to add some tactile controls to feed overrides and spindle.Maybe add a pendant at some point.Last question do these cards connect directly to the computer or do/can they be on the network.  Thanks for the help and advice.
04 Jan 2024 00:24

Beginner with LinuxCNC and Roland EGX-300, looking for a few pointers

Category: General LinuxCNC Questions

Thanks for the advice! I see; in that case, I'll take a two-track approach. I'll work with either C/C++ or Python to program the machine in the HPGL-like format that it uses, whilst also obtaining a PC with PCIe card slot, so I can have a small testbed for learning LinuxCNC, and switch to that once I'm familiar with it.
After some googling, I can see that a "Lenovo P320 Tiny" (I want an ideally small form-factor machine) has a PCIe slot, and it's cheap on ebay, so I'll probably pick that up (unless there are better recommendations for a small, low-cost PC), plus PCIe cards for serial and parallel so I can try them both out.
I'm curious too what's inside the EXG-300, but it's not at the location where I an currently, so I can't take a screwdriver to it just yet : ) But ideally I'd just like to use it as a black box and apply the HPGL-like commands (known as CAMM-GL in Roland speak) via LinuxCNC, and learn about suitable stepper/spindle driver boards over time.
02 Jan 2024 18:10 - 02 Jan 2024 19:03
Replied by David Herrera on topic QtPlasmac setup

QtPlasmac setup

Category: Plasmac

sorry cant find the config file
 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
 
26 Dec 2023 09:02 - 26 Dec 2023 09:07

Anyone figured out how to get Trinamic's TMC5160 drivers working with LinuxCNC?

Category: Driver Boards

Finally some big beefy TMC5160 driver boards out, supports 60 DC Volts and 6 Amps, could be used for CNC metal milling:

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.

18 Dec 2023 13:36

Developments on my Home built 5C CNC Lathe - Polar interp. and Live tooling

Category: Advanced Configuration

Egg on my face to anyone reading this.  It's been a while since I've used live tooling on my lathe and I simply forgot how the post works.

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:
Warning: Spoiler!


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
17 Dec 2023 14:44

Developments on my Home built 5C CNC Lathe - Polar interp. and Live tooling

Category: Advanced Configuration

WRT the ATC - If I recall, the basic carousel comp requires the ATC hardware to be able to rotate the carousel, past the tool locate point, a pawn then engages and the carousel is then rotated backwards to lock against the pawl ( EMCO style..)
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...
15 Dec 2023 18:07

Spindle and motion do not work at the same time, both work independently

Category: General LinuxCNC Questions

I want to add the other configuration that I had mentioned. In this case the motors and spindle work simultaneously, but the motors are not smooth and the PWM signal can be heard coming from the steppers. I have disconnected the signal wires from the stepper drivers and confirmed the pwm sound is coming from the all of the stepper motors.

File Attachment:

File Name: my-mill_20...15-2.ini
File Size:4 KB

File Attachment:

File Name: my-mill_20...15-2.hal
File Size:4 KB

File Attachment:

File Name: postgui_ca...15-2.hal
File Size:0 KB

File Attachment:

File Name: vfd-pwm_20...2-15.hal
File Size:1 KB
15 Dec 2023 06:09 - 15 Dec 2023 17:20

Spindle and motion do not work at the same time, both work independently

Category: General LinuxCNC Questions

I do not have any idea what is going on. I had everything working then updated my configs to get a laser working. I have ditched the laser and can't get the spindle working again even using my previously working configs. I am thinking it may be a wiring issue, but I even tried swapping BOB's with another machine and the behavior is the same.

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.
09 Dec 2023 16:03 - 09 Dec 2023 16:04

USB RS 485 disconnects when spindle stops

Category: General LinuxCNC Questions

1. It is as far as possible away, the motor and power wiring comes from the bottom, the RS485 wiring is currently pulled directly to the front and away from the VFD. No parallel routing to any other cable.
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?
05 Dec 2023 15:19 - 05 Dec 2023 15:21

QTdragon home switches do not work

Category: Qtvcp

Attached my configs.

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.

 

File Attachment:

File Name: QTdragon_Linuxcnc.zip
File Size:10 KB

File Attachment:

File Name: Calysto_Li...C_v1.zip
File Size:20 KB
04 Dec 2023 05:21

In using ECR60+NPN(GPIO), I encountered an issue.

Category: EtherCAT

This issue has not been resolved yet. It might be due to the fact that I am using open-loop stepper motors, and the XML and HAL configurations might not have been properly set up for this.

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?
02 Dec 2023 19:58

linuxcnc stopping constantly

Category: General LinuxCNC Questions

Hello everyone, I have started running in to a really strange problem today. I have been running my machine happily for over a year now, I would guess there is probably 100 - 200 hours of runtime on it without any problems at all. Last night I was running a 2 hour job, and about 1:45 into it linuxcnc just randomly powered off (not estop, not crashed, just as if I had hit the "power" button). At the time I was able to just push power again and finish the job using run from line.

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!
Displaying 151 - 165 out of 168 results.
Time to create page: 0.901 seconds
Powered by Kunena Forum