Search Results (Searched for: stepper spindle)
- Will_cnc
- Will_cnc
30 Oct 2025 12:30
Replied by Will_cnc on topic Stepper online A6 Servo motor as Spindle motor
Stepper online A6 Servo motor as Spindle motor
Category: General LinuxCNC Questions
Print file information:
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/lib/linuxcnc/modules
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.6
LINUXCNC - 2.9.6
Machine configuration directory is '/home/cnc/linuxcnc/configs/probe_basic_dev'
Machine configuration file is 'EL8_machine.ini'
INIFILE=/home/cnc/linuxcnc/configs/probe_basic_dev/EL8_machine.ini
VERSION=1.1
PARAMETER_FILE=linuxcnc.var
TPMOD=
HOMEMOD=el8_homecomp
TASK=milltask
HALUI=halui
DISPLAY=probe_basic
COORDINATES=X Y Z
KINEMATICS=trivkins coordinates=XYZ
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
Starting HAL User Interface program: halui
linuxcnc TPMOD=tpmod HOMEMOD=el8_homecomp EMCMOT=motmod
Found file(REL): ./hallib/EL8_machine.hal
Shutting down and cleaning up LinuxCNC...
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Debug file information:
Note: Using POSIX realtime
HAL: ERROR: function 'cia402pv.Spindle.read-all' not found
./hallib/EL8_machine.hal:18: addf failed
2439
Stopping realtime threads
Unloading hal components
Note: Using POSIX realtime
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/lib/linuxcnc/modules
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.6
LINUXCNC - 2.9.6
Machine configuration directory is '/home/cnc/linuxcnc/configs/probe_basic_dev'
Machine configuration file is 'EL8_machine.ini'
INIFILE=/home/cnc/linuxcnc/configs/probe_basic_dev/EL8_machine.ini
VERSION=1.1
PARAMETER_FILE=linuxcnc.var
TPMOD=
HOMEMOD=el8_homecomp
TASK=milltask
HALUI=halui
DISPLAY=probe_basic
COORDINATES=X Y Z
KINEMATICS=trivkins coordinates=XYZ
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
Starting HAL User Interface program: halui
linuxcnc TPMOD=tpmod HOMEMOD=el8_homecomp EMCMOT=motmod
Found file(REL): ./hallib/EL8_machine.hal
Shutting down and cleaning up LinuxCNC...
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Debug file information:
Note: Using POSIX realtime
HAL: ERROR: function 'cia402pv.Spindle.read-all' not found
./hallib/EL8_machine.hal:18: addf failed
2439
Stopping realtime threads
Unloading hal components
Note: Using POSIX realtime
- Will_cnc
- Will_cnc
30 Oct 2025 12:25
Replied by Will_cnc on topic Stepper online A6 Servo motor as Spindle motor
Stepper online A6 Servo motor as Spindle motor
Category: General LinuxCNC Questions
Hi Hakan
Thanks for the help I have configured to the directory now, but have a new error message ?
Thanks for the help I have configured to the directory now, but have a new error message ?
- Hakan
- Hakan
30 Oct 2025 12:04
Replied by Hakan on topic Stepper online A6 Servo motor as Spindle motor
Stepper online A6 Servo motor as Spindle motor
Category: General LinuxCNC Questions
Be in the directory were you have downloaded cia402pv.comp
and there do "sudo halcompile --install cia402pv.comp"
Easy to spot with the error messages, that helps a lot.
and there do "sudo halcompile --install cia402pv.comp"
Easy to spot with the error messages, that helps a lot.
- Will_cnc
- Will_cnc
30 Oct 2025 11:01
Replied by Will_cnc on topic Stepper online A6 Servo motor as Spindle motor
Stepper online A6 Servo motor as Spindle motor
Category: General LinuxCNC Questions
Print file information:
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/lib/linuxcnc/modules
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.6
LINUXCNC - 2.9.6
Machine configuration directory is '/home/cnc/linuxcnc/configs/probe_basic_dev'
Machine configuration file is 'EL8_machine.ini'
INIFILE=/home/cnc/linuxcnc/configs/probe_basic_dev/EL8_machine.ini
VERSION=1.1
PARAMETER_FILE=linuxcnc.var
TPMOD=
HOMEMOD=el8_homecomp
TASK=milltask
HALUI=halui
DISPLAY=probe_basic
COORDINATES=X Y Z
KINEMATICS=trivkins coordinates=XYZ
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
Starting HAL User Interface program: halui
linuxcnc TPMOD=tpmod HOMEMOD=el8_homecomp EMCMOT=motmod
Found file(REL): ./hallib/EL8_machine.hal
Shutting down and cleaning up LinuxCNC...
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Debug file information:
Note: Using POSIX realtime
cia402pv: dlopen: /usr/lib/linuxcnc/modules/cia402pv.so: cannot open shared object file: No such file or directory
./hallib/EL8_machine.hal:9: waitpid failed /usr/bin/rtapi_app cia402pv
./hallib/EL8_machine.hal:9: /usr/bin/rtapi_app exited without becoming ready
./hallib/EL8_machine.hal:9: insmod for cia402pv failed, returned -1
2207
Stopping realtime threads
Unloading hal components
Note: Using POSIX realtime
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/lib/linuxcnc/modules
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.6
LINUXCNC - 2.9.6
Machine configuration directory is '/home/cnc/linuxcnc/configs/probe_basic_dev'
Machine configuration file is 'EL8_machine.ini'
INIFILE=/home/cnc/linuxcnc/configs/probe_basic_dev/EL8_machine.ini
VERSION=1.1
PARAMETER_FILE=linuxcnc.var
TPMOD=
HOMEMOD=el8_homecomp
TASK=milltask
HALUI=halui
DISPLAY=probe_basic
COORDINATES=X Y Z
KINEMATICS=trivkins coordinates=XYZ
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
Starting HAL User Interface program: halui
linuxcnc TPMOD=tpmod HOMEMOD=el8_homecomp EMCMOT=motmod
Found file(REL): ./hallib/EL8_machine.hal
Shutting down and cleaning up LinuxCNC...
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Debug file information:
Note: Using POSIX realtime
cia402pv: dlopen: /usr/lib/linuxcnc/modules/cia402pv.so: cannot open shared object file: No such file or directory
./hallib/EL8_machine.hal:9: waitpid failed /usr/bin/rtapi_app cia402pv
./hallib/EL8_machine.hal:9: /usr/bin/rtapi_app exited without becoming ready
./hallib/EL8_machine.hal:9: insmod for cia402pv failed, returned -1
2207
Stopping realtime threads
Unloading hal components
Note: Using POSIX realtime
- Will_cnc
- Will_cnc
30 Oct 2025 11:00
Replied by Will_cnc on topic Stepper online A6 Servo motor as Spindle motor
Stepper online A6 Servo motor as Spindle motor
Category: General LinuxCNC Questions
sudo halcompile --install cia402pv.comp
cnc@raspberrypi:~$ sudo halcompile --install cia402pv.comp
Traceback (most recent call last):
File "/usr/bin/halcompile", line 1553, in <module>
main()
File "/usr/bin/halcompile", line 1523, in main
process(f, mode, outfile)
File "/usr/bin/halcompile", line 1363, in process
a, b = parse(filename)
^^^^^^^^^^^^^^^
File "/usr/bin/halcompile", line 434, in parse
f = open(filename).read()
^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'cia402pv.comp'
cnc@raspberrypi:~$ sudo halcompile --install cia402pv.comp
Traceback (most recent call last):
File "/usr/bin/halcompile", line 1553, in <module>
main()
File "/usr/bin/halcompile", line 1523, in main
process(f, mode, outfile)
File "/usr/bin/halcompile", line 1363, in process
a, b = parse(filename)
^^^^^^^^^^^^^^^
File "/usr/bin/halcompile", line 434, in parse
f = open(filename).read()
^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'cia402pv.comp'
- Hakan
- Hakan
30 Oct 2025 10:45
Replied by Hakan on topic Stepper online A6 Servo motor as Spindle motor
Stepper online A6 Servo motor as Spindle motor
Category: General LinuxCNC Questions
Very difficult to say, you give me no clues.
You have to show the error messages from linuxcnc startup, that is the biggest help.
I kind of think you have not installed the component?
"sudo halcompile --install cia402pv.comp"
should put the component in the right place.
Anyway, I have to see the errors you get. A general description is not enough.
You have to show the error messages from linuxcnc startup, that is the biggest help.
I kind of think you have not installed the component?
"sudo halcompile --install cia402pv.comp"
should put the component in the right place.
Anyway, I have to see the errors you get. A general description is not enough.
- Will_cnc
- Will_cnc
30 Oct 2025 10:40
Replied by Will_cnc on topic Stepper online A6 Servo motor as Spindle motor
Stepper online A6 Servo motor as Spindle motor
Category: General LinuxCNC Questions
.Hal file I am using
- Will_cnc
- Will_cnc
30 Oct 2025 10:38 - 30 Oct 2025 10:41
Replied by Will_cnc on topic Stepper online A6 Servo motor as Spindle motor
Stepper online A6 Servo motor as Spindle motor
Category: General LinuxCNC Questions
Hi Hakan thanks for your help to configure the drive.
Unfortunately I am having no luck in getting it to work.
I have attached my files below do you mind having a look to see if there is anything obvious I am missing?
I am very new to linux so am struggling to work out when using the loadrt command in the .hal file where the other file is loading from?
Thanks Will
Unfortunately I am having no luck in getting it to work.
I have attached my files below do you mind having a look to see if there is anything obvious I am missing?
I am very new to linux so am struggling to work out when using the loadrt command in the .hal file where the other file is loading from?
Thanks Will
- richcolvin

28 Oct 2025 02:05
Replied by richcolvin on topic M19 for Indexing a Spindle using Stepper Motors
M19 for Indexing a Spindle using Stepper Motors
Category: General LinuxCNC Questions
Jean Philippe,
Thank you for sharing these. I greatly appreciate your generosity.
Am I correct I. My thinking that the magic for this is in the spindle.hal file?
Rich
Thank you for sharing these. I greatly appreciate your generosity.
Am I correct I. My thinking that the magic for this is in the spindle.hal file?
Rich
- Hakan
- Hakan
26 Oct 2025 16:26
Replied by Hakan on topic Stepper online A6 Servo motor as Spindle motor
Stepper online A6 Servo motor as Spindle motor
Category: General LinuxCNC Questions
Here is now a modified cia402 component together with a complete example on how to use PV (Profile Velcotiy) for an EtherCAT spindle drive.
github.com/MetalMusings/cia402pv
github.com/MetalMusings/cia402pv
- Hakan
- Hakan
26 Oct 2025 11:46 - 26 Oct 2025 11:47
Replied by Hakan on topic Stepper online A6 Servo motor as Spindle motor
Stepper online A6 Servo motor as Spindle motor
Category: General LinuxCNC Questions
I *could* put my stepper drivers in PV mode. So I am making a modification to the cia402 component to (hopefully) make a stepper motor work as a spindle (how useful). Servo drives also.
Check back in few hours.
Check back in few hours.
- Chad
- Chad
26 Oct 2025 10:12
Remora SPI: Bad SPI payload, estop won’t reset, SKR 1.4 + RPi4 – config below was created by Chad
Remora SPI: Bad SPI payload, estop won’t reset, SKR 1.4 + RPi4 – config below
Category: Computers and Hardware
Hi,
I’m trying to get Remora to work with a Raspberry Pi 4 Compute Module (on the official IO board) and a BTT SKR 1.4 (LPC1768) board via SPI (using EXP2 directly).No matter what I do, I keep getting “bad spi payload” errors and I can’t reset estop in LinuxCNC. The estop status toggles randomly, sometimes reporting errors like “fffff”, “3a”, “71”, then “0”, but it never clears or lets me enable the machine.Here’s what I’ve already tried:, and files plus a photo of my wiring. Any advice, example configs, or troubleshooting steps would be greatly appreciated!
.hal file:
.ini file:
config.txt:
I’m trying to get Remora to work with a Raspberry Pi 4 Compute Module (on the official IO board) and a BTT SKR 1.4 (LPC1768) board via SPI (using EXP2 directly).No matter what I do, I keep getting “bad spi payload” errors and I can’t reset estop in LinuxCNC. The estop status toggles randomly, sometimes reporting errors like “fffff”, “3a”, “71”, then “0”, but it never clears or lets me enable the machine.Here’s what I’ve already tried:
- Double/triple-checked config files (.hal/.ini/config.txt) for base/servo thread values and SPI freq
- Tried SPI_FREQ values from 40000 down to 2500
- Used multiple different SD cards, freshly copied firmware/config.txt every time
- Swapped and powered from two different power supplies, always with common ground
- Used short (10–20 cm) jumper wires and a dedicated IDC ribbon cable between RPi CM4 IO board and SKR (connected to SPI0 CS0)
- Confirmed CS line matches config and wiring
- Tried wiring both loosened and via the screw-terminal “HAT”
- Tested with two different RPi modules
- Flashed the correct Remora firmware for LPC1768, config.txt matches hardware
- LinuxCNC starts, RPi and SKR both power up
- E-stop never disengages, status bits change randomly
- Console/log shows many “bad spi payload” errors, with hex codes changing each time
- Stepper drivers do not respond, SPI module loads but does not work
- Raspberry Pi 4 Compute Module on official IO board
- BTT SKR 1.4 (LPC1768) with Remora firmware
- Connecting via SPI (EXP2 header), CS0
- Cables all short, tried IDC and normal dupont/jumper types
- Is there anything obvious I’m missing in configs or wiring?
- Has anyone had this persist even with good IDC cable and CM4?
- Any proven working “plug-and-play” cable or adapter for this combo?
- Are there common hardware quirks or firmware issues with this setup?
- Would using a logic analyzer or scope help, and what to look for?
.hal.iniconfig.txt.hal file:
# Load the realtime components loadrt [KINS]KINEMATICS loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS loadrt remora-spi SPI num=0 CS_num=0 SPI [remora]SPI_FREQ=20000 # estop loopback, SPI comms enable and feedback net user-enable-out <= iocontrol.0.user-enable-out => remora.SPI.enable net user-request-enable <= iocontrol.0.user-request-enable => remora.SPI-reset net remora-status <= remora.SPI-status => iocontrol.0.emc-enable-in # add the remora and motion functions to threads addf remora.read servo-thread addf motion-command-handler servo-thread addf motion-controller servo-thread addf remora.update-req servo-thread addf remora.write servo-thread # Joint 0 setup setp remora.joint.0.scale [JOINT_0]SCALE setp remora.joint.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL net x:pos-cmd <= joint.0.motor-pos-cmd => remora.joint.0.pos-cmd net x:pos-fb <= remora.joint.0.pos-fb => joint.0.pos-fb net x:enable <= joint.0.amp-enable-out => remora.joint.0.enable # Joint 1 setup setp remora.joint.1.scale [JOINT_1]SCALE setp remora.joint.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL net y:pos-cmd <= joint.1.motor-pos-cmd => remora.joint.1.pos-cmd net y:pos-fb <= remora.joint.1.pos-fb => joint.1.pos-fb net y:enable <= joint.1.amp-enable-out => remora.joint.1.enable # Joint 2 setup setp remora.joint.2.scale [JOINT_2]SCALE setp remora.joint.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL net z:pos-cmd <= joint.2.motor-pos-cmd => remora.joint.2.pos-cmd net z:pos-fb <= remora.joint.2.pos-fb => joint.2.pos-fb net z:enable <= joint.2.amp-enable-out => remora.joint.2.enable.ini file:
# Basic LinuxCNC config for testing of Remora firmware [EMC] MACHINE = Remora-XYZ DEBUG = 0 VERSION = 1.1 [DISPLAY] DISPLAY = axis EDITOR = gedit POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL ARCDIVISION = 64 GRIDS = 10mm 20mm 50mm 100mm MAX_FEED_OVERRIDE = 1.2 MIN_SPINDLE_OVERRIDE = 0.5 MAX_SPINDLE_OVERRIDE = 1.2 DEFAULT_LINEAR_VELOCITY = 50.00 MIN_LINEAR_VELOCITY = 0.00 MAX_LINEAR_VELOCITY = 200.00 DEFAULT_ANGULAR_VELOCITY = 36.00 MAX_ANGULAR_VELOCITY = 45.00 INTRO_GRAPHIC = linuxcnc.gif INTRO_TIME = 5 PROGRAM_PREFIX = ~/linuxcnc/nc_files INCREMENTS = 50mm 10mm 5mm 1mm .5mm .1mm .05mm .01mm [KINS] JOINTS = 3 #KINEMATICS =trivkins coordinates=XYZ kinstype=BOTH KINEMATICS = trivkins coordinates=XYZ [FILTER] PROGRAM_EXTENSION = .py Python Script py = python [TASK] TASK = milltask CYCLE_TIME = 0.010 [RS274NGC] PARAMETER_FILE = linuxcnc.var [EMCMOT] EMCMOT = motmod COMM_TIMEOUT = 1.0 COMM_WAIT = 0.010 BASE_PERIOD = 25000 SERVO_PERIOD = 1000000 [HAL] HALFILE = remora-xyz.hal POSTGUI_HALFILE = postgui_call_list.hal [TRAJ] COORDINATES = X Y Z LINEAR_UNITS = mm ANGULAR_UNITS = degree CYCLE_TIME = 0.010 DEFAULT_LINEAR_VELOCITY = 50.00 MAX_LINEAR_VELOCITY = 200.00 NO_FORCE_HOMING = 1 [EMCIO] EMCIO = io CYCLE_TIME = 1.00 TOOL_TABLE = tool.tbl [AXIS_X] MAX_VELOCITY = 250 MAX_ACCELERATION = 750.0 MIN_LIMIT = -5.0 MAX_LIMIT = 300.0 [JOINT_0] TYPE = LINEAR HOME = 0.0 MIN_LIMIT = -5.0 MAX_LIMIT = 300.0 MAX_VELOCITY = 250.0 MAX_ACCELERATION = 750.0 STEPGEN_MAXACCEL = 2000.0 SCALE = 80.0 FERROR = 2 MIN_FERROR = 2.0 HOME_OFFSET = 2.0 HOME_SEARCH_VEL = 0 HOME_LATCH_VEL = 0 HOME_SEQUENCE = 0 [AXIS_Y] MAX_VELOCITY = 250.0 MAX_ACCELERATION = 750.0 MIN_LIMIT = -0.01 MAX_LIMIT = 300.0 [JOINT_1] TYPE = LINEAR HOME = 0.0 MIN_LIMIT = -5.0 MAX_LIMIT = 300.0 MAX_VELOCITY = 250.0 MAX_ACCELERATION = 750.0 STEPGEN_MAXACCEL = 2000.0 SCALE = 80.0 FERROR = 5 MIN_FERROR = 5.0 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 0 HOME_LATCH_VEL = 0 HOME_SEQUENCE = 0 [AXIS_Z] OFFSET_AV_RATIO = 0.2 MAX_VELOCITY = 5.0 MAX_ACCELERATION = 200.0 MIN_LIMIT = -280 MAX_LIMIT = 280 [JOINT_2] TYPE = LINEAR HOME = 0.0 MIN_LIMIT = -280 MAX_LIMIT = 280 MAX_VELOCITY = 5.0 MAX_ACCELERATION = 200.0 STEPGEN_MAXACCEL = 3000.0 SCALE = 400.0 FERROR = 5 MIN_FERROR = 1.0 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 0 HOME_LATCH_VEL = 0 HOME_SEQUENCE = 0config.txt:
{
"Board": "BIGTREETECH SKR v1.3 & v1.4",
"Threads": [
{ "Thread": "Base", "Frequency": 40000 },
{ "Thread": "Servo", "Frequency": 1000 }
],
"Modules": [
{
"Thread": "Servo",
"Type": "Reset Pin",
"Comment": "Reset pin",
"Pin": "1.31"
},
{
"Thread": "Base",
"Type": "SPI",
"Comment": "SPI interface to Raspberry Pi",
"CS Pin": "0.16"
},
{
"Thread": "Base",
"Type": "Stepgen",
"Comment": "X - Joint 0 step generator",
"Joint Number": 0,
"Step Pin": "2.2",
"Direction Pin": "2.6",
"Enable Pin": "2.1"
},
{
"Thread": "Base",
"Type": "Stepgen",
"Comment": "Y - Joint 1 step generator",
"Joint Number": 1,
"Step Pin": "0.19",
"Direction Pin": "0.20",
"Enable Pin": "2.8"
},
{
"Thread": "Base",
"Type": "Stepgen",
"Comment": "Z - Joint 2 step generator",
"Joint Number": 2,
"Step Pin": "0.22",
"Direction Pin": "2.11",
"Enable Pin": "0.21"
}
]
}
- Hakan
- Hakan
25 Oct 2025 16:35
Replied by Hakan on topic Stepper online A6 Servo motor as Spindle motor
Stepper online A6 Servo motor as Spindle motor
Category: General LinuxCNC Questions
What have you tried? Which Leadshine drive model?
I am going to propose to use PV mode. It is similar to a vfd.
You just give a speed and the driver ramps up and down as needed.
I have not tried it myself, and I don't have a driver to try it so it is up to you.
I foresee that the cia402 component needs modification, it only handles csp and csv.
I am going to propose to use PV mode. It is similar to a vfd.
You just give a speed and the driver ramps up and down as needed.
I have not tried it myself, and I don't have a driver to try it so it is up to you.
I foresee that the cia402 component needs modification, it only handles csp and csv.
- Will_cnc
- Will_cnc
25 Oct 2025 12:24
Stepper online A6 Servo motor as Spindle motor was created by Will_cnc
Stepper online A6 Servo motor as Spindle motor
Category: General LinuxCNC Questions
I have a Stepperonline 1000W servo motor with an EtherCAT servo drive, which I intend to use as a temporary spindle motor until I can upgrade to a higher-power unit.
Currently, I have three axes configured to work with Leadshine servo drives via EtherCAT.How can I configure this servo motor to function as a spindle motor?
Specifically, what needs to be added or modified in the following configuration files:I’ve tried setting it up based on information from other forum posts, but I haven’t had much success so far.
Currently, I have three axes configured to work with Leadshine servo drives via EtherCAT.How can I configure this servo motor to function as a spindle motor?
Specifically, what needs to be added or modified in the following configuration files:
.INI .HAL. .XML- distro88
- distro88
23 Oct 2025 18:32 - 23 Oct 2025 18:33
torch moving UP when it should be moving DOWN was created by distro88
torch moving UP when it should be moving DOWN
Category: Plasmac
Hello everyone,
I’m having a strange issue with QtPlasmaC (version 2.9.238 / LinuxCNC 2.9.2) and my PROMA THC 150 connected to a Mesa 7i92 card.
Everything on my machine moves correctly — all axes jog fine, torch on/off works, ARC OK is detected correctly, and the THC UP and DOWN inputs show properly in HAL meter.
However, during cutting:
When the THC UP signal is active, the torch moves up
When the THC DOWN signal is active, the torch moves up instead of down
Both UP and DOWN signals appear normally in HAL meter as true/false.
Here’s my setup:
Controller: Mesa 7i92 + db25 bib (raw pins)
Plasma: PROMA THC 150
QtPlasmaC version: 2.9.238 (LinuxCNC 2.9.2)
QtPlasmaC Mode: External THC (UP/DOWN/ARC OK)
THC wiring: optocoupled to Mesa inputs
Firmware: 7i92_7i76x1D.
I’ll attach my .hal and .ini files below.
.hal[/code]
I’m having a strange issue with QtPlasmaC (version 2.9.238 / LinuxCNC 2.9.2) and my PROMA THC 150 connected to a Mesa 7i92 card.
Everything on my machine moves correctly — all axes jog fine, torch on/off works, ARC OK is detected correctly, and the THC UP and DOWN inputs show properly in HAL meter.
However, during cutting:
When the THC UP signal is active, the torch moves up
When the THC DOWN signal is active, the torch moves up instead of down
Both UP and DOWN signals appear normally in HAL meter as true/false.
Here’s my setup:
Controller: Mesa 7i92 + db25 bib (raw pins)
Plasma: PROMA THC 150
QtPlasmaC version: 2.9.238 (LinuxCNC 2.9.2)
QtPlasmaC Mode: External THC (UP/DOWN/ARC OK)
THC wiring: optocoupled to Mesa inputs
Firmware: 7i92_7i76x1D.
I’ll attach my .hal and .ini files below.
.hal
# Generated by PNCconf at Wed Oct 22 23:20:44 2025
# 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="10.10.10.10" config="num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=00xxxxxx"
setp hm2_7i92.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.y2,pid.z,pid.s
loadrt plasmac
addf hm2_7i92.0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.y2.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 hm2_7i92.0.write servo-thread
setp hm2_7i92.0.dpll.01.timer-us -50
setp hm2_7i92.0.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.3.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
# external output signals
# --- PLASMAC:TORCH-ON ---
setp hm2_7i92.0.gpio.030.is_output true
net plasmac:torch-on => hm2_7i92.0.gpio.030.out
setp hm2_7i92.0.gpio.030.invert_output true
# --- PLASMAC:LASER-ON ---
setp hm2_7i92.0.gpio.031.is_output true
net plasmac:laser-on => hm2_7i92.0.gpio.031.out
# --- DOUT-00 ---
setp hm2_7i92.0.gpio.032.is_output true
net dout-00 => hm2_7i92.0.gpio.032.out
# --- DOUT-01 ---
setp hm2_7i92.0.gpio.033.is_output true
#qtplasmac uses digital output dout-01:
#net dout-01 => hm2_7i92.0.gpio.033.out
# external input signals
# --- MIN-HOME-X ---
net min-home-x <= hm2_7i92.0.gpio.018.in
# --- MIN-HOME-Y ---
net min-home-y <= hm2_7i92.0.gpio.019.in
# --- MIN-HOME-Y2 ---
net min-home-y2 <= hm2_7i92.0.gpio.020.in
# --- MAX-HOME-Z ---
net max-home-z <= hm2_7i92.0.gpio.021.in
# --- PLASMAC:FLOAT-SWITCH ---
net plasmac:float-switch <= hm2_7i92.0.gpio.022.in
# --- PLASMAC:BREAKAWAY ---
net plasmac:breakaway <= hm2_7i92.0.gpio.023.in
# --- PLASMAC:ARC-OK-IN ---
net plasmac:arc-ok-in <= hm2_7i92.0.gpio.024.in
# --- PLASMAC:MOVE-UP ---
net plasmac:move-up <= hm2_7i92.0.gpio.025.in
# --- PLASMAC:MOVE-DOWN ---
net plasmac:move-down <= hm2_7i92.0.gpio.026.in
# --- ESTOP-EXT ---
net estop-ext <= hm2_7i92.0.gpio.027.in_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.012700
net x-index-enable => pid.x.index-enable
net x-enable => pid.x.enable
net x-pos-cmd => pid.x.command
net x-pos-fb => pid.x.feedback
net x-output <= pid.x.output
# Step Gen signals/setup
setp hm2_7i92.0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
setp hm2_7i92.0.stepgen.00.dirhold [JOINT_0]DIRHOLD
setp hm2_7i92.0.stepgen.00.steplen [JOINT_0]STEPLEN
setp hm2_7i92.0.stepgen.00.stepspace [JOINT_0]STEPSPACE
setp hm2_7i92.0.stepgen.00.position-scale [JOINT_0]STEP_SCALE
setp hm2_7i92.0.stepgen.00.step_type 0
setp hm2_7i92.0.stepgen.00.control-type 1
setp hm2_7i92.0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAXACCEL
setp hm2_7i92.0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net x-pos-cmd <= joint.0.motor-pos-cmd
net x-vel-cmd <= joint.0.vel-cmd
net x-output => hm2_7i92.0.stepgen.00.velocity-cmd
net x-pos-fb <= hm2_7i92.0.stepgen.00.position-fb
net x-pos-fb => joint.0.motor-pos-fb
net x-enable <= joint.0.amp-enable-out
net x-enable => hm2_7i92.0.stepgen.00.enable
# ---setup home / limit switch signals---
net min-home-x => joint.0.home-sw-in
net min-home-x => joint.0.neg-lim-sw-in
net x-pos-limit => joint.0.pos-lim-sw-in
#*******************
# AXIS Y JOINT 1
#*******************
setp pid.y.Pgain [JOINT_1]P
setp pid.y.Igain [JOINT_1]I
setp pid.y.Dgain [JOINT_1]D
setp pid.y.bias [JOINT_1]BIAS
setp pid.y.FF0 [JOINT_1]FF0
setp pid.y.FF1 [JOINT_1]FF1
setp pid.y.FF2 [JOINT_1]FF2
setp pid.y.deadband [JOINT_1]DEADBAND
setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.y.maxerror 0.012700
net y-index-enable => pid.y.index-enable
net y-enable => pid.y.enable
net y-pos-cmd => pid.y.command
net y-pos-fb => pid.y.feedback
net y-output <= pid.y.output
# Step Gen signals/setup
setp hm2_7i92.0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
setp hm2_7i92.0.stepgen.01.dirhold [JOINT_1]DIRHOLD
setp hm2_7i92.0.stepgen.01.steplen [JOINT_1]STEPLEN
setp hm2_7i92.0.stepgen.01.stepspace [JOINT_1]STEPSPACE
setp hm2_7i92.0.stepgen.01.position-scale [JOINT_1]STEP_SCALE
setp hm2_7i92.0.stepgen.01.step_type 0
setp hm2_7i92.0.stepgen.01.control-type 1
setp hm2_7i92.0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAXACCEL
setp hm2_7i92.0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net y-pos-cmd <= joint.1.motor-pos-cmd
net y-vel-cmd <= joint.1.vel-cmd
net y-output => hm2_7i92.0.stepgen.01.velocity-cmd
net y-pos-fb <= hm2_7i92.0.stepgen.01.position-fb
net y-pos-fb => joint.1.motor-pos-fb
net y-enable <= joint.1.amp-enable-out
net y-enable => hm2_7i92.0.stepgen.01.enable
# ---setup home / limit switch signals---
net min-home-y => joint.1.home-sw-in
net min-home-y => joint.1.neg-lim-sw-in
net y-pos-limit => joint.1.pos-lim-sw-in
#*******************
# Tandem AXIS Y2 JOINT 2
#*******************
setp pid.y2.Pgain [JOINT_2]P
setp pid.y2.Igain [JOINT_2]I
setp pid.y2.Dgain [JOINT_2]D
setp pid.y2.bias [JOINT_2]BIAS
setp pid.y2.FF0 [JOINT_2]FF0
setp pid.y2.FF1 [JOINT_2]FF1
setp pid.y2.FF2 [JOINT_2]FF2
setp pid.y2.deadband [JOINT_2]DEADBAND
setp pid.y2.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.y2.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.y2.maxerror 0.012700
net y2-index-enable => pid.y2.index-enable
net y2-enable => pid.y2.enable
net y2-pos-cmd => pid.y2.command
net y2-pos-fb => pid.y2.feedback
net y2-output <= pid.y2.output
# Step Gen signals/setup for tandem axis
setp hm2_7i92.0.stepgen.04.dirsetup [JOINT_2]DIRSETUP
setp hm2_7i92.0.stepgen.04.dirhold [JOINT_2]DIRHOLD
setp hm2_7i92.0.stepgen.04.steplen [JOINT_2]STEPLEN
setp hm2_7i92.0.stepgen.04.stepspace [JOINT_2]STEPSPACE
setp hm2_7i92.0.stepgen.04.position-scale [JOINT_2]STEP_SCALE
setp hm2_7i92.0.stepgen.04.step_type 0
setp hm2_7i92.0.stepgen.04.control-type 1
setp hm2_7i92.0.stepgen.04.maxaccel [JOINT_2]STEPGEN_MAXACCEL
setp hm2_7i92.0.stepgen.04.maxvel [JOINT_2]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net y2-pos-cmd <= joint.2.motor-pos-cmd
net y2-vel-cmd <= joint.2.vel-cmd
net y2-output => hm2_7i92.0.stepgen.04.velocity-cmd
net y2-pos-fb <= hm2_7i92.0.stepgen.04.position-fb
net y2-pos-fb => joint.2.motor-pos-fb
net y2-enable <= joint.2.amp-enable-out
net y2-enable => hm2_7i92.0.stepgen.04.enable
# ---setup home / limit switch signals---
net min-home-y2 => joint.2.home-sw-in
net min-home-y2 => joint.2.neg-lim-sw-in
net y2-pos-limit => joint.2.pos-lim-sw-in
#*******************
# AXIS Z JOINT 3
#*******************
setp pid.z.Pgain [JOINT_3]P
setp pid.z.Igain [JOINT_3]I
setp pid.z.Dgain [JOINT_3]D
setp pid.z.bias [JOINT_3]BIAS
setp pid.z.FF0 [JOINT_3]FF0
setp pid.z.FF1 [JOINT_3]FF1
setp pid.z.FF2 [JOINT_3]FF2
setp pid.z.deadband [JOINT_3]DEADBAND
setp pid.z.maxoutput [JOINT_3]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.012700
net z-index-enable => pid.z.index-enable
net z-enable => pid.z.enable
net z-pos-cmd => pid.z.command
net z-pos-fb => pid.z.feedback
net z-output <= pid.z.output
# Step Gen signals/setup
setp hm2_7i92.0.stepgen.03.dirsetup [JOINT_3]DIRSETUP
setp hm2_7i92.0.stepgen.03.dirhold [JOINT_3]DIRHOLD
setp hm2_7i92.0.stepgen.03.steplen [JOINT_3]STEPLEN
setp hm2_7i92.0.stepgen.03.stepspace [JOINT_3]STEPSPACE
setp hm2_7i92.0.stepgen.03.position-scale [JOINT_3]STEP_SCALE
setp hm2_7i92.0.stepgen.03.step_type 0
setp hm2_7i92.0.stepgen.03.control-type 1
setp hm2_7i92.0.stepgen.03.maxaccel [JOINT_3]STEPGEN_MAXACCEL
setp hm2_7i92.0.stepgen.03.maxvel [JOINT_3]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net z-pos-cmd <= joint.3.motor-pos-cmd
net z-vel-cmd <= joint.3.vel-cmd
net z-output => hm2_7i92.0.stepgen.03.velocity-cmd
net z-pos-fb <= hm2_7i92.0.stepgen.03.position-fb
net z-pos-fb => joint.3.motor-pos-fb
net z-enable <= joint.3.amp-enable-out
net z-enable => hm2_7i92.0.stepgen.03.enable
# ---setup home / limit switch signals---
net max-home-z => joint.3.home-sw-in
net z-neg-limit => joint.3.neg-lim-sw-in
net max-home-z => joint.3.pos-lim-sw-in
# ---motion control signals---
net in-position <= motion.in-position
net machine-is-enabled <= motion.motion-enabled
# ---digital in / out signals---
net dout-00 <= motion.digital-out-00
#qtplasmac uses digital output dout-01:
#net dout-01 <= motion.digital-out-01
# ---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
.ini
[code]# Generated by PNCconf at Wed Oct 22 23:20:44 2025
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
[EMC]
MACHINE = test-2
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = qtvcp qtplasmac
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/x/linuxcnc/nc_files
INCREMENTS = 10mm 1mm .1mm .01mm .001mm
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 6.000000
MAX_LINEAR_VELOCITY = 25.000000
MIN_LINEAR_VELOCITY = 0.500000
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
GEOMETRY = xyz
CYCLE_TIME = 100
[FILTER]
PROGRAM_EXTENSION = .ngc,.nc,.tap GCode File (*.ngc, *.nc, *.tap)
ngc = qtplasmac_gcode
nc = qtplasmac_gcode
tap = qtplasmac_gcode
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
RS274NGC_STARTUP_CODE = G21 G40 G49 G80 G90 G92.1 G94 G97 M52P1
SUBROUTINE_PATH = ./:../../nc_files
USER_M_PATH = ./:../../nc_files
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[HMOT]
# **** This is for info only ****
CARD0=hm2_7i92.0
[HAL]
HALUI = halui
HALFILE = test-2.hal
HALFILE = qtplasmac_comp.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
SHUTDOWN = shutdown.hal
[HALUI]
[KINS]
JOINTS = 4
KINEMATICS = trivkins coordinates=XYYZ
[TRAJ]
SPINDLES = 3
COORDINATES = XYYZ
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 2.50
MAX_LINEAR_VELOCITY = 25.00
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
#******************************************
[AXIS_X]
# MAX_VEL & MAX_ACC need to be twice the corresponding joint value
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 1500.0
OFFSET_AV_RATIO = 0.5
MIN_LIMIT = -0.01
MAX_LIMIT = 2000.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 31.25
STEPGEN_MAXACCEL = 937.50
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 100.0
MIN_LIMIT = -0.01
MAX_LIMIT = 2000.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = 0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 2
#******************************************
#******************************************
[AXIS_Y]
# MAX_VEL & MAX_ACC need to be twice the corresponding joint value
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 1500.0
OFFSET_AV_RATIO = 0.5
MIN_LIMIT = -0.01
MAX_LIMIT = 3000.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 31.25
STEPGEN_MAXACCEL = 937.50
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 100.0
MIN_LIMIT = -0.01
MAX_LIMIT = 3000.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = 0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = -3
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 31.25
STEPGEN_MAXACCEL = 937.50
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 100.0
MIN_LIMIT = -0.01
MAX_LIMIT = 3000.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = 0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = -3
#******************************************
#******************************************
[AXIS_Z]
# MAX_VEL & MAX_ACC need to be twice the corresponding joint value
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 1500.0
OFFSET_AV_RATIO = 0.5
MIN_LIMIT = -200.0
MAX_LIMIT = 0.01
[JOINT_3]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 31.25
STEPGEN_MAXACCEL = 937.50
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 100.0
MIN_LIMIT = -200.0
MAX_LIMIT = 0.01
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = 0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1
#******************************************
Any help or working HAL example with PROMA 150 + Mesa hardware would be greatly appreciated!
Thank you in advance
Time to create page: 0.428 seconds