Advanced Search

Search Results (Searched for: )

  • gitano
  • gitano
  • andypugh
  • andypugh's Avatar
02 Oct 2025 11:31
Replied by andypugh on topic 12m metall bar puncher press

12m metall bar puncher press

Category: CNC Machines

Yes, I am confident that LinuxCNC can do this.

You might prefer to control the machine with a Python script linked to a GUI, but using G-code is also possible.

Adaptive G-code could handle the different punch maps, but Python (which would send G-codes using MDI, probably) might work better.

An example of a GUI that calls adaptive G-code is my lathe macros, here is a link to one of the G-code routines:
github.com/andypugh/LatheMacros/blob/Py3_GTK3/turning.ngc
The subroutine is called with #1, #2 ... #6 specifying various parameters of the actions to be taken.

3) I don't really know the answer. It would probably be automatic at the end of the cycle?

4) The maximum length is much longer than the known universe. (10^308 units) but is practically limited to 15 significant digits, so using mm and 1 micron basic precision it would be approximately 10,000km.
  • ShemJ
  • ShemJ's Avatar
02 Oct 2025 11:25 - 02 Oct 2025 17:41

probe_basic nearly working but: failed to set register P0x000e to 0x0014

Category: QtPyVCP

Hey, thanks for that. That did send me in the right direction.  It was a comms problem over TTL to the VFD, now fixed. I see I need to check the HAL files themselves for error message outputs. I keep thinking it is something internal to linuxcnc. I am a seasoned noob, but a noob nonetheless. 

I appreciate the help!
 
  • meister
  • meister
  • jrc
  • jrc
02 Oct 2025 10:38

Leadshine 2CS3E-D507 / Cia402 almost working - help please!

Category: EtherCAT

I had a bit of time today to try things out.
I did as you suggested and commented out the line which includes the basic_sim.tcl line
This produced a different error - it was unable to add all the servo-thread entries
" HAL :  ERROR: thread 'servo-thread' not found  "
 Looking into basic_sim.tcl I can find no instances of servo-thread.
However, basic_sim.tcl includes another file in line 33 called sim_lib.tcl
sim_lib.tcl has servo-thread appear in a lot of places
So it seems like some version of it is needed if we go the route of recycling one of the sim configs as a starting point

Any ideas on how to solve this one?

As a different possible solution, I created a different XYZ machine using two units of 2CS3E-D507, where the first one handles X and Y and the second handles Z. That way we start out totally away from the possible comlplications from the sim universe and directly go to a machine that only has two real, Ethercat devices,

This seems to load OK, but LinuxCNC starts up with the e-stop engaged and won't let me toggle it off.

The configs I created for this are:
ethercat-conf-xml:
<masters>
  <master idx="0" appTimePeriod="1000000" refClockSyncCycles="-1">
    <slave idx="0" type="2CS3E-D507">
        <!-- <dcConf assignActivate="700" sync0Cycle="*1" sync0Shift="0" sync1Cycle="*1" sync1Shift="0"/> -->
        <dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>  
    </slave>
    <slave idx="1" type="2CS3E-D507">
        <!-- <dcConf assignActivate="700" sync0Cycle="*1" sync0Shift="0" sync1Cycle="*1" sync1Shift="0"/> -->
        <dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>  
    </slave>
  </master>
</masters>

machine_xyz.ini:
[EMC]
MACHINE = machine_xyz
VERSION = 1.1
DEBUG=0x00000242

[DISPLAY]
DISPLAY = axis
MAX_LINEAR_VELOCITY = 1

[TASK]
TASK = milltask
CYCLE_TIME = 0.001

[RS274NGC]
# NoneType object has no attribute 'rfind'
PARAMETER_FILE = machine_xyz.var

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100

[EMCMOT]
EMCMOT = motmod
SERVO_PERIOD = 1000000

[HAL]
# new addition to test Leadshine 2CS3E-D507
HALFILE = 2CS3E_D507xyz.hal

[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 2.50
MAX_LINEAR_VELOCITY = 25.00

[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ

#*** AXIS_X *******************************
[AXIS_X]
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 750.0
MIN_LIMIT = -300.0
MAX_LIMIT = 300.0

[JOINT_0]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = -300.0
MAX_LIMIT = 300.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0

#*** AXIS_Y *******************************
[AXIS_Y]
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
MIN_LIMIT = -300.0
MAX_LIMIT = 300.0

[JOINT_1]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = -300.0
MAX_LIMIT = 300.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0

#*** AXIS_Z *******************************
[AXIS_Z]
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
MIN_LIMIT = -300.0
MAX_LIMIT = 300.0

[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = -300.0
MAX_LIMIT = 300.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0

2CS3E_D507.hal
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=3

loadusr -W lcec_conf ethercat-conf.xml
loadrt lcec
loadrt cia402 count=3

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

#*******************
#  X axis  lcec.0.0 (x) cia402.0 joint.0 Y axis lcec.0.0 cia402.1 joint.1 Z axis lcec.0.1 cia402.1 joint 2
#*******************
setp cia402.0.enable 1
#setp cia402.0.opmode 1
setp cia402.0.csp-mode 1
setp cia402.0.pos-scale 4000

# ethercat to cia402 driver
net x-statusword      lcec.0.0.srv-1-cia-statusword  => cia402.0.statusword
net x-opmode-display  lcec.0.0.srv-1-opmode-display  => cia402.0.opmode-display
net x-drv-act-pos     lcec.0.0.srv-1-actual-position => cia402.0.drv-actual-position
net x-drv-act-vel     lcec.0.0.srv-1-actual-velocity => cia402.0.drv-actual-velocity

# cia402 driver to ethercat
net x-controlword         cia402.0.controlword         => lcec.0.0.srv-1-cia-controlword
net x-modes-of-operation  cia402.0.opmode              => lcec.0.0.srv-1-opmode
net x-drv-target-pos      cia402.0.drv-target-position => lcec.0.0.srv-1-target-position

#from motion to cia
net x-enable    <= joint.0.amp-enable-out => cia402.0.enable
net x-amp-fault => joint.0.amp-fault-in   <= cia402.0.drv-fault
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

## Y axis ##
setp cia402.1.enable 1
#setp cia402.1.opmode 1
setp cia402.1.csp-mode 1
setp cia402.1.pos-scale 4000

# ethercat to cia402 driver
net y-statusword      lcec.0.0.srv-2-cia-statusword  => cia402.1.statusword
net y-opmode-display  lcec.0.0.srv-2-opmode-display  => cia402.1.opmode-display
net y-drv-act-pos     lcec.0.0.srv-2-actual-position => cia402.1.drv-actual-position
net y-drv-act-vel     lcec.0.0.srv-2-actual-velocity => cia402.1.drv-actual-velocity

# cia402 driver to ethercat
net y-controlword         cia402.1.controlword         => lcec.0.0.srv-2-cia-controlword
net y-modes-of-operation  cia402.1.opmode              => lcec.0.0.srv-2-opmode
net y-drv-target-pos      cia402.1.drv-target-position => lcec.0.0.srv-2-target-position

#from motion to cia
net y-enable    <= joint.1.amp-enable-out => cia402.1.enable
net y-amp-fault => joint.1.amp-fault-in   <= cia402.1.drv-fault
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

# homing
#net y-home-request joint.1.request-custom-homing => cia402.1.home
#net y-homing joint.1.is-custom-homing <= cia402.1.stat-homing
#net y-homed joint.1.custom-homing-finished <= cia402.1.stat-homed

## Z axis ##
setp cia402.2.enable 1
#setp cia402.2.opmode 1
setp cia402.2.csp-mode 1
setp cia402.2.pos-scale 4000

# ethercat to cia402 driver
net z-statusword      lcec.0.1.srv-1-cia-statusword  => cia402.2.statusword
net z-opmode-display  lcec.0.1.srv-1-opmode-display  => cia402.2.opmode-display
net z-drv-act-pos     lcec.0.1.srv-1-actual-position => cia402.2.drv-actual-position
net z-drv-act-vel     lcec.0.1.srv-1-actual-velocity => cia402.2.drv-actual-velocity

# cia402 driver to ethercat
net z-controlword         cia402.2.controlword         => lcec.0.1.srv-1-cia-controlword
net z-modes-of-operation  cia402.2.opmode              => lcec.0.1.srv-1-opmode
net z-drv-target-pos      cia402.2.drv-target-position => lcec.0.1.srv-1-target-position

#from motion to cia
net z-enable    <= joint.2.amp-enable-out => cia402.2.enable
net z-amp-fault => joint.2.amp-fault-in   <= cia402.2.drv-fault
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

# homing
#net z-home-request joint.2.request-custom-homing => cia402.2.home
#net z-homing joint.2.is-custom-homing <= cia402.2.stat-homing
#net z-homed joint.2.custom-homing-finished <= cia402.2.stat-homed

Any ideas on how to get this one to start? I tried to make it as basic as possible to avoid anything else distracting things.
To reiterate, it loads correctly and LinuxCNC starts without an error screen popping up, but the e-stop on the top left of the axis interface screen is toggled on when it starts and can't be toggled off.
ethercat slaves shows both 2CS3E-D507 slaves in OP state
 
  • gitano
  • gitano
02 Oct 2025 09:04 - 02 Oct 2025 09:06

LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)

Category: Computers and Hardware

Hello,

after a 6 months break from RIO and LinuxCNC i tried to play around again on the latest riocore git release (wow... the latest additions look VAST!) and can't get past this error:

[code]LINUXCNC - 2.9.6
Machine configuration directory is '/media/gitano/DATA/Software/CAD+CAM/LinuxCNC-RIO/riocore/Output/Tangbob/LinuxCNC'
Machine configuration file is 'rio.ini'
Starting LinuxCNC...
linuxcnc TPMOD=tpmod HOMEMOD=homemod EMCMOT=motmod
Note: Using POSIX non-realtime
twopass:invoked with <> options
twopass:found ./rio.hal
twopass:found ./pregui_call_list.hal
twopass:pass0: loadusr -W hal_manualtoolchange
riocomp.c: In function ‘rtapi_app_main’:
riocomp.c:539:37: error: passing argument 2 of ‘hal_export_funct’ from incompatible pointer type [-Wincompatible-pointer-types]
  539 |     retval = hal_export_funct(name, rio_readwrite, data, 1, 0, comp_id);
      |                                     ^~~~~~~~~~~~~
      |                                     |
      |                                     void (*)(void)
In file included from riocomp.c:4:
/usr/include/linuxcnc/hal.h:710:54: note: expected ‘void (*)(void *, long int)’ but argument is of type ‘void (*)(void)’
  710 | extern int hal_export_funct(const char *name, void (*funct) (void *, long),
      |                                               ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
riocomp.c:48:6: note: ‘rio_readwrite’ declared here
   48 | void rio_readwrite();
      |      ^~~~~~~~~~~~~
make: *** [/usr/share/linuxcnc/Makefile.modinc:117: riocomp.o] Error 1
# compiling and loading rio component...failed
rio: rtapi_app_main: Operation not permitted (-1)

twopass: load_the_modules cmd=<orig_loadrt rio>
waitpid failed /usr/bin/rtapi_app rio
/usr/bin/rtapi_app exited without becoming ready
insmod for rio failed, returned -1

Shutting down and cleaning up LinuxCNC...
Note: Using POSIX non-realtime
LinuxCNC terminated with an error.  You can find more information in the log:
    /home/gitano/linuxcnc_debug.txt
and
    /home/gitano/linuxcnc_print.txt
as well as in the output of the shell command 'dmesg' and in the terminal

which looks like some coding incompabilities between HAL and RIO, as far as i can see. This happens on my testing machine both with LinuxCNC 2.9 as well as master,  both compiled from source, the system is latest Debian 12/13 unstable forky/sid.

Any ideas how to fix this?

Thank You very much!

Cheers,
-lgitano[/code]
  • TripleM
  • TripleM
02 Oct 2025 08:58

Werkzeugaufruf nach Toolnummer, nicht nach Pocketnummer

Category: Deutsch

Hi,
ich habe eine Drehmaschine mit einem Revolver mit 8 Plätzen und zusätzlich 30verscheiden Werkezuge.

Wenn ich T1 aufrufe, wird immer das Werkezeug auf Platz 1 aufgerufen.
Wenn ich jetzt das Werkzeug 1 auf Platz 3 setze und das in der Werkzeugtabelle entsprechend angebe, dann sollte bei einem Aufruf von T1 auch das Werkzeug 1 auf Platz 3 aktiv werden.
Leider habe ich nix passendes gefunden, aber denke, dass das möglich ist
Kann mir diesbezüglich jemand weiterhelfen?

vielen Dank und viele Grüße


 
  • BigDo
  • BigDo
02 Oct 2025 08:26 - 02 Oct 2025 08:30
Replied by BigDo on topic Nativecam running on 2.9.4 almost so close

Nativecam running on 2.9.4 almost so close

Category: NativeCAM

Giovanni, the default_template.xml file was missing. I used your file from the other thread and now the menu and workspace appear, but I can't add a tool change. The following error message appears when I start linuxcnc in the terminal.I looked at the tool-change.cfg, and it says version=1.15, while the other cfgs say version=1.14.And one more point: in an old default_template.xml from 2019, there are two sections:
1. workpeace
2. tool-change 

 
 
  • JanCNC
  • JanCNC
02 Oct 2025 07:48

Pncconf Wizard with MESA 7i92TM and one 7i77 - struggle

Category: PnCConf Wizard

Okay, everything after "Accept Component changes" looks different in my Config Wizard. 
There is no extra window next to P2 with "7i77"

Is there an easy way to fix this bug? Or what should i do next? 
  • Hakan
  • Hakan
02 Oct 2025 07:41

Important EtherCAT configuration option

Category: EtherCAT

Info about an option in Linuxcnc-ethercat, lcec.

It is a new option but actually a rediscovered function.
It's an important function when using distributed clock synchronization,
as most do with servo and stepper motor drives.

The syncToRefClock option
<masters>
  <master idx="0" appTimePeriod="1000000" refClockSyncCycles="5" syncToRefClock="true">

This will synchronize LinuxCNC's servo thread to EtherCAT's distributed clock,
the entire timing chain from LinuxCNC to the drives is then in sync.

When using distributed clock synchronization (a drive uses assignActivate="300")
you probably always want to use this option.
If you experience gravel noises, friction noises, etc., or acceleration and
torque spikes that recur every few minutes, this is the option to use.

There are some hal parameters associated with this option, check the documentation
github.com/linuxcnc-ethercat/linuxcnc-et...istributed-clocks.md

The option is just now introduced in the linuxcnc-ethercat code.
Over time this option will be generally available as distributions pick up the latest software version
of linuxcnc-ethercat. But you don't have to wait for it, the "rediscovery" means it is already in lcec,
you enable synchronization by setting a negative value to refClockSyncCycles.

A big thanks to Scott Laird for accepting the pull request and assisting with this.
  • 2tinker
  • 2tinker
02 Oct 2025 07:30

hm2/hm2_7i76e.0: error finishing read! iter=1342204

Category: Deutsch

Danke für den Link.

Die Installation der "r8168-dkms"-Treiber hat leider den Fehler nicht beseitigt.
Bevor ich tiefer in einem Betriebssystem herumstümper, das ich nicht verstehe, werde ich erst einmal die CPU tauschen.
Ich hoffe mit einem i5 ist das Problem dann beseitigt.

Danke und Grüße,
tinker
  • alexandrap
  • alexandrap
02 Oct 2025 06:29 - 02 Oct 2025 06:38
Replied by alexandrap on topic My MESA 7i95T wiring

My MESA 7i95T wiring

Category: Driver Boards

 it means , that 1 click to MPG = 4 pulses for feed?

so what is the solution ? set 1/4 of the feed value ?

only use the input designated for MPG (foto - input A0,B0) ?

 



i am trying to understand the links

forum.linuxcnc.org/27-driver-boards/4034...g-encoder-count-by-4

www.plctalk.net/forums/threads/encoder-x1-x2-and-x4.140711/

linuxcnc.org/docs/html/man/man9/encoder.9.html#PARAMETERS
  • cmorley
  • cmorley
02 Oct 2025 04:56
Replied by cmorley on topic Error in tool_offsetview.py

Error in tool_offsetview.py

Category: Qtvcp

I updated the brushed metal - thanks.
Fixed gcode with space - there is still room for improvement but I find the 'regular expression' code difficult.

Working on the macro buttons - close:
  • unknown
  • unknown
02 Oct 2025 04:53
Replied by unknown on topic New Install of LCNC,Debian12 dumping core

New Install of LCNC,Debian12 dumping core

Category: General LinuxCNC Questions

iopl() is a system call required to gain access to privileged resources.
It is unclear whether the user has attempted an install from the Linuxcnc ISO or from a vanilla Debian install with a self built kernel or via package manager. Neither is it clear whether this is a RIP install of Linuxcnc or via a package.
If the OP can clarify these items and if self installed give a source for the instructions or elaborate on the process this would be great.

Blindly giving advice such as "reinstall" or redo this or that is the advice that is very common to the "Windows Ecosystem". As ethical Linux users it is far better to establish what the actual issue is and then make recommendations.
Even if one does suspect a corruption of the installation media it would be of great value to suggest, and advise the user how to, check that the ISO is a good download.
Tommy's advice regarding rebooting is a good suggestion regarding a previously "hung" Linuxcnc session.

So once we establish the user's method of install we can hopefully forment a solution.
  • cmorley
  • cmorley
02 Oct 2025 01:23
Replied by cmorley on topic Reading data from var file using Python

Reading data from var file using Python

Category: O Codes (subroutines) and NGCGUI

try a mode change: mdi to manual back to mdi.
It forces the vars to be saved to file.
Displaying 3781 - 3795 out of 22079 results.
Time to create page: 0.304 seconds
Powered by Kunena Forum