Advanced Search

Search Results (Searched for: )

  • Robert312
  • Robert312
29 Sep 2025 20:41

After homing the spindle position is not understood by the GUI

Category: General LinuxCNC Questions

Less verbose question that would help the situation:
What informs the GUI as to where the virtual spindle is placed in reference to the bounding box? (What else, other than the center of the min and max joint values)

Summarized Problem: Why doesn't the orientation of the spindle in the AXIS GUI reflect the actual position of the machine's spindle in space? Within the bounding box. The bounding box dimensions and size are correct. 
 
In our Linux CNC configuration when we turn on the machine and open AXIS, the GUI displays a 3D bounding box built by the min and max values given for the joints/axis in the INI file.  The GUI then puts the virtual spindle in the center of our workspace which is fine initially however our HOME position for our Bostomatic 3-axis milling machine is in the top front corner. I was expecting that when we press home all then the GUI virtual spindle will realize it is not in the correct position, however it does not, after it homes the virtual spindle is in the same position in AXIS  as when the application opened (the center). Where as our machine correctly went through the homing procedure where the soft-limit switch and home is shared and the actual spindle is now in that top front corner (which would be the top front corner of the GUI bounding box if it did what I wanted it to).  In this config the min and max values for the x, y and z axis are respectively (-9,9), (-6, 6) and (-6, 6). Which makes sense why AXIS is assuming that the origin, (the (0,0,0)) is the same at the home position.  So then I thought the solution would be to change the x, y, and z axes' mins and maxes to be: (-18, 0), (-12, 0) and (-12, 0) so that the (0, 0, 0) position is that corner where the home actually is.  This does put the virtual spindle in the right position. However this messes up the range of the axes because is assumes the position the machine is in when it is turned on IS on the edge of the bounding box and therefor won't jog in the positive direction because AXIS thinks it has no room but the machine indeed does. And therefor the GUI and the machine are still not on the same page just off in a different way.  We have discovered using G92 to help align the g code but this does not solve our problem.  SO, how do I get AXIS on the same page as the machine.

 
  • MacKaye
  • MacKaye
29 Sep 2025 19:58
Replied by MacKaye on topic External E-Stop

External E-Stop

Category: HAL Examples

Thank you but i have seemingly stumbled upon an issue with estop i cannot resolve in any way. Even without any further hal functionality, just ini, configuring a basic gmoccapy and a base hal doing nothing but estop logic i can´t reset estop.
# base.hal – Minimalstart für Weiler XZ (V10)

# --- components ---
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT
loadrt hostmot2
loadrt hm2_pci config="num_encoders=6 num_pwmgens=0 num_stepgens=0 sserial_port_0=000XXXXX"
loadrt estop_latch count=1

# --- Motion in den Servo-Thread einhängen ---
addf motion-command-handler servo-thread
addf motion-controller      servo-thread
addf hm2_5i25.0.read        servo-thread
addf estop-latch.0          servo-thread

# --- Loopback pro Joint, damit Motion ohne Feedback auskommt ---
net joint-0-pos-loop joint.0.motor-pos-cmd => joint.0.motor-pos-fb
net joint-1-pos-loop joint.1.motor-pos-cmd => joint.1.motor-pos-fb

# Enable-Leitungen/Faults – aktuell ohne Verdrahtung (werden später ergänzt)

addf hm2_5i25.0.write servo-thread

# --- ESTOP CHAIN (single latch) ---
net latch-reset <= iocontrol.0.user-request-enable
net latch-ok-in <= iocontrol.0.user-enable-out

net latch-ok-in   => estop-latch.0.ok-in
net latch-reset   => estop-latch.0.reset
net latch-out iocontrol.0.emc-enable-in <= estop-latch.0.ok-out
net estop-out     estop-latch.0.fault-out

# External E-Stop input (single source)
# For testing: fix the external signal to TRUE (fault active)
net external-estop => estop-latch.0.fault-in
sets external-estop TRUE

# --- ESTOP CHAIN ENDS ---


# doormagnet and relay for 24V supply
setp hm2_5i25.0.7i84.0.2.output-02 TRUE
setp hm2_5i25.0.7i84.0.2.output-03 TRUE

Current version i am trying. I can set external estop via halcmd to either states and try to reset estop with F1 GUI estop
I have built pretty elaborate estop logics with debouncing of external estop time delays and everything, but can´t get emc-task 3 (OFF but no estop) to show.

 
  • ArcAiN6
  • ArcAiN6's Avatar
29 Sep 2025 19:55

Looking for a specific, detailed howto guide for XYYZ gantry setup

Category: Advanced Configuration

I think i might have figured it out.

because the homing seek rate was super slow (so i didn't break anything) it was difficult to tell, but one of the motors was actually moving in the opposite direction, giving it the appearance that only one motor was moving. (i've already ordered replacement motors, as it seems one was stronger than the other)

i had to manually change the hal file
'''
setp parpart.0.pin-09-out-invert 0
'''

After that, they both were moving at the same speed and rate, in the same direction.

Final Note:

Thank you guys for the help, and sorry about the opening rant. the frustration was VERY real for me.
  • jschulze
  • jschulze
29 Sep 2025 19:32
Replied by jschulze on topic Wrapped Rotary on Non Rotary Axis Letter.

Wrapped Rotary on Non Rotary Axis Letter.

Category: Basic Configuration

Looking for 'WRAPPED_ROTARY' in the source code seems to suggest that it indeed only applies to axes A,B,C:
~/git/linuxcnc-dev$ grep -rnw ./ -e WRAPPED_ROTARY
./configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:85:WRAPPED_ROTARY = 1
./bin/axis:3516:a_axis_wrapped = inifile.find("AXIS_A", "WRAPPED_ROTARY")
./bin/axis:3517:b_axis_wrapped = inifile.find("AXIS_B", "WRAPPED_ROTARY")
./bin/axis:3518:c_axis_wrapped = inifile.find("AXIS_C", "WRAPPED_ROTARY")
./src/emc/rs274ngc/rs274ngc_pre.cc:872: inifile.Find(&_setup.a_axis_wrapped, "WRAPPED_ROTARY", "AXIS_A");
./src/emc/rs274ngc/rs274ngc_pre.cc:873: inifile.Find(&_setup.b_axis_wrapped, "WRAPPED_ROTARY", "AXIS_B");
./src/emc/rs274ngc/rs274ngc_pre.cc:874: inifile.Find(&_setup.c_axis_wrapped, "WRAPPED_ROTARY", "AXIS_C");
./src/emc/usr_intf/axis/scripts/axis.py:3514:a_axis_wrapped = inifile.find("AXIS_A", "WRAPPED_ROTARY")
./src/emc/usr_intf/axis/scripts/axis.py:3515:b_axis_wrapped = inifile.find("AXIS_B", "WRAPPED_ROTARY")
./src/emc/usr_intf/axis/scripts/axis.py:3516:c_axis_wrapped = inifile.find("AXIS_C", "WRAPPED_ROTARY")
./src/emc/usr_intf/gremlin/qt5_graphics.py:274: self.a_axis_wrapped = self.inifile.find("AXIS_A", "WRAPPED_ROTARY")
./src/emc/usr_intf/gremlin/qt5_graphics.py:275: self.b_axis_wrapped = self.inifile.find("AXIS_B", "WRAPPED_ROTARY")
./src/emc/usr_intf/gremlin/qt5_graphics.py:276: self.c_axis_wrapped = self.inifile.find("AXIS_C", "WRAPPED_ROTARY")
./src/emc/usr_intf/gremlin/gremlin.py:204: self.a_axis_wrapped = inifile.find("AXIS_A", "WRAPPED_ROTARY")
./src/emc/usr_intf/gremlin/gremlin.py:205: self.b_axis_wrapped = inifile.find("AXIS_B", "WRAPPED_ROTARY")
./src/emc/usr_intf/gremlin/gremlin.py:206: self.c_axis_wrapped = inifile.find("AXIS_C", "WRAPPED_ROTARY")
grep: ./src/objects/emc/rs274ngc/rs274ngc_pre.o: binary file matches
./docs/src/config/ini-config.adoc:902:* `WRAPPED_ROTARY = 1` - When this is set to 1 for an ANGULAR axis the axis will move 0-359.999 degrees.
grep: ./lib/librs274.so.0: binary file matches
./lib/python/qt5_graphics.py:274: self.a_axis_wrapped = self.inifile.find("AXIS_A", "WRAPPED_ROTARY")
./lib/python/qt5_graphics.py:275: self.b_axis_wrapped = self.inifile.find("AXIS_B", "WRAPPED_ROTARY")
./lib/python/qt5_graphics.py:276: self.c_axis_wrapped = self.inifile.find("AXIS_C", "WRAPPED_ROTARY")
./lib/python/gremlin.py:204: self.a_axis_wrapped = inifile.find("AXIS_A", "WRAPPED_ROTARY")
./lib/python/gremlin.py:205: self.b_axis_wrapped = inifile.find("AXIS_B", "WRAPPED_ROTARY")
./lib/python/gremlin.py:206: self.c_axis_wrapped = inifile.find("AXIS_C", "WRAPPED_ROTARY")
 

Thanks so much for checking.  I'll try to figure out a different solution.
  • LeonDolnicar
  • LeonDolnicar
29 Sep 2025 19:26

Stepper motors should hold position when error.

Category: General LinuxCNC Questions

I am running a 3 axis CNC mill with stepper motors, through a 7i76eu card running linux CNC. Currently when one of the motor drivers gets a fault, the motor lose all power. This is problematic for the Z axis, which uses a stepper motor with a brake. When its driver gets a fault the brake is engaged, but there is a delay, in the meantime the z axis is in free fall for about 10cm. Is it possible to program the stepper drivers in such a way that when they get a fault they stop the motors and hold the position.

Thank you for all the answer and suggestions in advance.
  • tommylight
  • tommylight's Avatar
29 Sep 2025 19:03
Replied by tommylight on topic Issues THC.

Issues THC.

Category: Plasmac

Yes it is, but that also depends on a lot of other external conditions, like current set, air supply and pressure and moisture in it, nozzle size and type, feed rate, material composition, etc etc, so any of change and the cutting result will change, most of the time not noticeably but sometimes very noticeably.
If you have an older plasma source with a big transformer, that will also vary with the input voltage and spikes and drops in the line ripple.
As a general rule:
-thinner material or faster feed rate = more P
-thicker material or slower feed rate = less P
-
On most of my machines i have it set at 7 and never change as they do mostly cut the same 2-3mm material all day long but sometimes they do cut 6-10mm thick so it works fine for both materials as the wavy cut is not very noticeable on thin material.
  • endian
  • endian's Avatar
29 Sep 2025 18:59
Replied by endian on topic Beckhoff AX5YZZ internal probing

Beckhoff AX5YZZ internal probing

Category: EtherCAT

Solved 

config below 
  • paulsao1
  • paulsao1
29 Sep 2025 18:46
Replied by paulsao1 on topic Issues THC.

Issues THC.

Category: Plasmac

Thanks a lot, Tommy, for your help. With P=5, I got this result, and it seems to be correct again. But why? Should the PID be robust enough to handle the physical changes that can occur in the system? Or not? 
  • tommylight
  • tommylight's Avatar
29 Sep 2025 18:27
Replied by tommylight on topic Issues THC.

Issues THC.

Category: Plasmac

Try P=5 and post picture.
Also, watch the voltage on screen, does it fluctuate a lot? +-10V is OK, even a bit more is still OK, but 50V difference is not OK and might be interference or loose contacts on the plasma side.
  • paulsao1
  • paulsao1
29 Sep 2025 18:08
Issues THC. was created by paulsao1

Issues THC.

Category: Plasmac

Greetings everyone!!!
I've been using Qtplasmac for over 3 years without any problems, but 2 days ago I had a problem with the THC. I'm attaching a photo. It seems to be out of control when exiting or entering a corner at high speed. This is the first time this has happened to me. It could be something to do with the PID tuning; the normal values ​​are P=10, which is always used.
 
  • Aciera
  • Aciera's Avatar
29 Sep 2025 17:37 - 29 Sep 2025 17:39
Replied by Aciera on topic Wrapped Rotary on Non Rotary Axis Letter.

Wrapped Rotary on Non Rotary Axis Letter.

Category: Basic Configuration

Looking for 'WRAPPED_ROTARY' in the source code seems to suggest that it indeed only applies to axes A,B,C:
~/git/linuxcnc-dev$ grep -rnw ./ -e WRAPPED_ROTARY
./configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:85:WRAPPED_ROTARY = 1
./bin/axis:3516:a_axis_wrapped = inifile.find("AXIS_A", "WRAPPED_ROTARY")
./bin/axis:3517:b_axis_wrapped = inifile.find("AXIS_B", "WRAPPED_ROTARY")
./bin/axis:3518:c_axis_wrapped = inifile.find("AXIS_C", "WRAPPED_ROTARY")
./src/emc/rs274ngc/rs274ngc_pre.cc:872: inifile.Find(&_setup.a_axis_wrapped, "WRAPPED_ROTARY", "AXIS_A");
./src/emc/rs274ngc/rs274ngc_pre.cc:873: inifile.Find(&_setup.b_axis_wrapped, "WRAPPED_ROTARY", "AXIS_B");
./src/emc/rs274ngc/rs274ngc_pre.cc:874: inifile.Find(&_setup.c_axis_wrapped, "WRAPPED_ROTARY", "AXIS_C");
./src/emc/usr_intf/axis/scripts/axis.py:3514:a_axis_wrapped = inifile.find("AXIS_A", "WRAPPED_ROTARY")
./src/emc/usr_intf/axis/scripts/axis.py:3515:b_axis_wrapped = inifile.find("AXIS_B", "WRAPPED_ROTARY")
./src/emc/usr_intf/axis/scripts/axis.py:3516:c_axis_wrapped = inifile.find("AXIS_C", "WRAPPED_ROTARY")
./src/emc/usr_intf/gremlin/qt5_graphics.py:274: self.a_axis_wrapped = self.inifile.find("AXIS_A", "WRAPPED_ROTARY")
./src/emc/usr_intf/gremlin/qt5_graphics.py:275: self.b_axis_wrapped = self.inifile.find("AXIS_B", "WRAPPED_ROTARY")
./src/emc/usr_intf/gremlin/qt5_graphics.py:276: self.c_axis_wrapped = self.inifile.find("AXIS_C", "WRAPPED_ROTARY")
./src/emc/usr_intf/gremlin/gremlin.py:204: self.a_axis_wrapped = inifile.find("AXIS_A", "WRAPPED_ROTARY")
./src/emc/usr_intf/gremlin/gremlin.py:205: self.b_axis_wrapped = inifile.find("AXIS_B", "WRAPPED_ROTARY")
./src/emc/usr_intf/gremlin/gremlin.py:206: self.c_axis_wrapped = inifile.find("AXIS_C", "WRAPPED_ROTARY")
grep: ./src/objects/emc/rs274ngc/rs274ngc_pre.o: binary file matches
./docs/src/config/ini-config.adoc:902:* `WRAPPED_ROTARY = 1` - When this is set to 1 for an ANGULAR axis the axis will move 0-359.999 degrees.
grep: ./lib/librs274.so.0: binary file matches
./lib/python/qt5_graphics.py:274: self.a_axis_wrapped = self.inifile.find("AXIS_A", "WRAPPED_ROTARY")
./lib/python/qt5_graphics.py:275: self.b_axis_wrapped = self.inifile.find("AXIS_B", "WRAPPED_ROTARY")
./lib/python/qt5_graphics.py:276: self.c_axis_wrapped = self.inifile.find("AXIS_C", "WRAPPED_ROTARY")
./lib/python/gremlin.py:204: self.a_axis_wrapped = inifile.find("AXIS_A", "WRAPPED_ROTARY")
./lib/python/gremlin.py:205: self.b_axis_wrapped = inifile.find("AXIS_B", "WRAPPED_ROTARY")
./lib/python/gremlin.py:206: self.c_axis_wrapped = inifile.find("AXIS_C", "WRAPPED_ROTARY")
 
  • ArcAiN6
  • ArcAiN6's Avatar
29 Sep 2025 16:52
  • jschulze
  • jschulze
29 Sep 2025 16:34
Replied by jschulze on topic Wrapped Rotary on Non Rotary Axis Letter.

Wrapped Rotary on Non Rotary Axis Letter.

Category: Basic Configuration

Does the letter matter?

Isn't it just a visual ID?

Not sure.  Either way it's not working for me and I'm not sure why.  It works no problem as a rotary axis, but I'd like to figure out a way to keep position while using it as a spindle and I figure that will be easier if it wraps at 360.  
  • GDTH
  • GDTH's Avatar
29 Sep 2025 15:56

Carousel with counts move x amount of pockets

Category: Advanced Configuration

setp carousel1.0.scale 2000
setp carousel1.0.width 200
setp carousel1.0.home-offset 800
setp carousel1.0.debounce 3
  • tommylight
  • tommylight's Avatar
29 Sep 2025 15:50
Replied by tommylight on topic Extremely confused - Nonworking limit switches

Extremely confused - Nonworking limit switches

Category: General LinuxCNC Questions

No worries, we all miss things and mess up.
Thank you for helping.
Displaying 8131 - 8145 out of 18110 results.
Time to create page: 0.386 seconds
Powered by Kunena Forum