Search Results (Searched for: )
- tommy
- tommy
30 Nov 2024 16:29
Replied by tommy on topic Mesa Configuration Tool
Mesa Configuration Tool
Category: Configuration Tools
In MesaCT I configured 6 axis on 7i95T and one on 7i78, but for that one there are no stepgens defined in .hal file:
# This file was created with the Mesa Configuration Tool on Nov 30 2024 17:11:51
# If you make changes to this file DO NOT run the configuration tool again!
# This file will be replaced with a new file if you do!
# kinematics
loadrt [KINS](KINEMATICS)
# motion controller
loadrt [EMCMOT](EMCMOT) servo_period_nsec=[EMCMOT](SERVO_PERIOD) num_joints=[KINS](JOINTS)
# hostmot2 driver
loadrt hostmot2
loadrt [HM2](DRIVER) board_ip=[HM2](ADDRESS) config="sserial_port_0=00000000"
setp hm2_[MESA](BOARD).0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.a,pid.b,pid.c,pid.u
# PID Information for Stepper Boards
# Mesa hardware step generators at every servo thread invocation, the step
# generator hardware is given a new velocity. Without feedback from the PID
# controller the hardware position would slowly drift because of clock speed and
# timing differences between LinuxCNC and the step generator hardware.
# The PID controller gets feedback from the actual (fractional) step position and
# corrects for these small differences.
# THREADS
addf hm2_[MESA](BOARD).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.z.do-pid-calcs servo-thread
addf pid.a.do-pid-calcs servo-thread
addf pid.b.do-pid-calcs servo-thread
addf pid.c.do-pid-calcs servo-thread
addf pid.u.do-pid-calcs servo-thread
addf hm2_[MESA](BOARD).0.write servo-thread
# DPLL TIMER
setp hm2_[MESA](BOARD).0.dpll.01.timer-us -50
setp hm2_[MESA](BOARD).0.stepgen.timer-number 1
# amp enable
net motion-enable <= motion.motion-enabled
# Board: 7i95
# Axis: X Joint: 0 Output: 0
# PID Setup
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
# limit stepgen velocity corrections caused by position feedback jitter
setp pid.x.maxerror [JOINT_0](MAX_ERROR)
# joint-0 enable chain
net joint-0-index-enable <=> pid.x.index-enable
net joint-0-index-enable <=> joint.0.index-enable
net joint-0-enable <= joint.0.amp-enable-out
net joint-0-enable => pid.x.enable
net joint-0-enable => hm2_[MESA](BOARD).0.stepgen.00.enable
# Joint 0 Step Generator Settings
setp hm2_[MESA](BOARD).0.stepgen.00.dirsetup [JOINT_0](DIRSETUP)
setp hm2_[MESA](BOARD).0.stepgen.00.dirhold [JOINT_0](DIRHOLD)
setp hm2_[MESA](BOARD).0.stepgen.00.steplen [JOINT_0](STEPLEN)
setp hm2_[MESA](BOARD).0.stepgen.00.stepspace [JOINT_0](STEPSPACE)
setp hm2_[MESA](BOARD).0.stepgen.00.position-scale [JOINT_0](SCALE)
setp hm2_[MESA](BOARD).0.stepgen.00.maxvel [JOINT_0](STEPGEN_MAX_VEL)
setp hm2_[MESA](BOARD).0.stepgen.00.maxaccel [JOINT_0](STEPGEN_MAX_ACC)
setp hm2_[MESA](BOARD).0.stepgen.00.step_type 0
setp hm2_[MESA](BOARD).0.stepgen.00.control-type 1
# position command and feedback
net joint-0-pos-cmd <= joint.0.motor-pos-cmd
net joint-0-pos-cmd => pid.x.command
net joint-0-pos-fb <= hm2_[MESA](BOARD).0.stepgen.00.position-fb
net joint-0-pos-fb => joint.0.motor-pos-fb
net joint-0-pos-fb => pid.x.feedback
# PID Output
net joint.0.output <= pid.x.output
net joint.0.output => hm2_[MESA](BOARD).0.stepgen.00.velocity-cmd
# Axis: Y Joint: 1 Output: 1
# PID Setup
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
# limit stepgen velocity corrections caused by position feedback jitter
setp pid.y.maxerror [JOINT_1](MAX_ERROR)
# joint-1 enable chain
net joint-1-index-enable <=> pid.y.index-enable
net joint-1-index-enable <=> joint.1.index-enable
net joint-1-enable <= joint.1.amp-enable-out
net joint-1-enable => pid.y.enable
net joint-1-enable => hm2_[MESA](BOARD).0.stepgen.01.enable
# Joint 1 Step Generator Settings
setp hm2_[MESA](BOARD).0.stepgen.01.dirsetup [JOINT_1](DIRSETUP)
setp hm2_[MESA](BOARD).0.stepgen.01.dirhold [JOINT_1](DIRHOLD)
setp hm2_[MESA](BOARD).0.stepgen.01.steplen [JOINT_1](STEPLEN)
setp hm2_[MESA](BOARD).0.stepgen.01.stepspace [JOINT_1](STEPSPACE)
setp hm2_[MESA](BOARD).0.stepgen.01.position-scale [JOINT_1](SCALE)
setp hm2_[MESA](BOARD).0.stepgen.01.maxvel [JOINT_1](STEPGEN_MAX_VEL)
setp hm2_[MESA](BOARD).0.stepgen.01.maxaccel [JOINT_1](STEPGEN_MAX_ACC)
setp hm2_[MESA](BOARD).0.stepgen.01.step_type 0
setp hm2_[MESA](BOARD).0.stepgen.01.control-type 1
# position command and feedback
net joint-1-pos-cmd <= joint.1.motor-pos-cmd
net joint-1-pos-cmd => pid.y.command
net joint-1-pos-fb <= hm2_[MESA](BOARD).0.stepgen.01.position-fb
net joint-1-pos-fb => joint.1.motor-pos-fb
net joint-1-pos-fb => pid.y.feedback
# PID Output
net joint.1.output <= pid.y.output
net joint.1.output => hm2_[MESA](BOARD).0.stepgen.01.velocity-cmd
# Axis: Z Joint: 2 Output: 2
# PID Setup
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
# limit stepgen velocity corrections caused by position feedback jitter
setp pid.z.maxerror [JOINT_2](MAX_ERROR)
# joint-2 enable chain
net joint-2-index-enable <=> pid.z.index-enable
net joint-2-index-enable <=> joint.2.index-enable
net joint-2-enable <= joint.2.amp-enable-out
net joint-2-enable => pid.z.enable
net joint-2-enable => hm2_[MESA](BOARD).0.stepgen.02.enable
# Joint 2 Step Generator Settings
setp hm2_[MESA](BOARD).0.stepgen.02.dirsetup [JOINT_2](DIRSETUP)
setp hm2_[MESA](BOARD).0.stepgen.02.dirhold [JOINT_2](DIRHOLD)
setp hm2_[MESA](BOARD).0.stepgen.02.steplen [JOINT_2](STEPLEN)
setp hm2_[MESA](BOARD).0.stepgen.02.stepspace [JOINT_2](STEPSPACE)
setp hm2_[MESA](BOARD).0.stepgen.02.position-scale [JOINT_2](SCALE)
setp hm2_[MESA](BOARD).0.stepgen.02.maxvel [JOINT_2](STEPGEN_MAX_VEL)
setp hm2_[MESA](BOARD).0.stepgen.02.maxaccel [JOINT_2](STEPGEN_MAX_ACC)
setp hm2_[MESA](BOARD).0.stepgen.02.step_type 0
setp hm2_[MESA](BOARD).0.stepgen.02.control-type 1
# position command and feedback
net joint-2-pos-cmd <= joint.2.motor-pos-cmd
net joint-2-pos-cmd => pid.z.command
net joint-2-pos-fb <= hm2_[MESA](BOARD).0.stepgen.02.position-fb
net joint-2-pos-fb => joint.2.motor-pos-fb
net joint-2-pos-fb => pid.z.feedback
# PID Output
net joint.2.output <= pid.z.output
net joint.2.output => hm2_[MESA](BOARD).0.stepgen.02.velocity-cmd
# Axis: A Joint: 3 Output: 3
# PID Setup
setp pid.a.Pgain [JOINT_3](P)
setp pid.a.Igain [JOINT_3](I)
setp pid.a.Dgain [JOINT_3](D)
setp pid.a.bias [JOINT_3](BIAS)
setp pid.a.FF0 [JOINT_3](FF0)
setp pid.a.FF1 [JOINT_3](FF1)
setp pid.a.FF2 [JOINT_3](FF2)
setp pid.a.deadband [JOINT_3](DEADBAND)
setp pid.a.maxoutput [JOINT_3](MAX_OUTPUT)
setp pid.a.error-previous-target True
# limit stepgen velocity corrections caused by position feedback jitter
setp pid.a.maxerror [JOINT_3](MAX_ERROR)
# joint-3 enable chain
net joint-3-index-enable <=> pid.a.index-enable
net joint-3-index-enable <=> joint.3.index-enable
net joint-3-enable <= joint.3.amp-enable-out
net joint-3-enable => pid.a.enable
net joint-3-enable => hm2_[MESA](BOARD).0.stepgen.03.enable
# Joint 3 Step Generator Settings
setp hm2_[MESA](BOARD).0.stepgen.03.dirsetup [JOINT_3](DIRSETUP)
setp hm2_[MESA](BOARD).0.stepgen.03.dirhold [JOINT_3](DIRHOLD)
setp hm2_[MESA](BOARD).0.stepgen.03.steplen [JOINT_3](STEPLEN)
setp hm2_[MESA](BOARD).0.stepgen.03.stepspace [JOINT_3](STEPSPACE)
setp hm2_[MESA](BOARD).0.stepgen.03.position-scale [JOINT_3](SCALE)
setp hm2_[MESA](BOARD).0.stepgen.03.maxvel [JOINT_3](STEPGEN_MAX_VEL)
setp hm2_[MESA](BOARD).0.stepgen.03.maxaccel [JOINT_3](STEPGEN_MAX_ACC)
setp hm2_[MESA](BOARD).0.stepgen.03.step_type 0
setp hm2_[MESA](BOARD).0.stepgen.03.control-type 1
# position command and feedback
net joint-3-pos-cmd <= joint.3.motor-pos-cmd
net joint-3-pos-cmd => pid.a.command
net joint-3-pos-fb <= hm2_[MESA](BOARD).0.stepgen.03.position-fb
net joint-3-pos-fb => joint.3.motor-pos-fb
net joint-3-pos-fb => pid.a.feedback
# PID Output
net joint.3.output <= pid.a.output
net joint.3.output => hm2_[MESA](BOARD).0.stepgen.03.velocity-cmd
# Axis: B Joint: 4 Output: 4
# PID Setup
setp pid.b.Pgain [JOINT_4](P)
setp pid.b.Igain [JOINT_4](I)
setp pid.b.Dgain [JOINT_4](D)
setp pid.b.bias [JOINT_4](BIAS)
setp pid.b.FF0 [JOINT_4](FF0)
setp pid.b.FF1 [JOINT_4](FF1)
setp pid.b.FF2 [JOINT_4](FF2)
setp pid.b.deadband [JOINT_4](DEADBAND)
setp pid.b.maxoutput [JOINT_4](MAX_OUTPUT)
setp pid.b.error-previous-target True
# limit stepgen velocity corrections caused by position feedback jitter
setp pid.b.maxerror [JOINT_4](MAX_ERROR)
# joint-4 enable chain
net joint-4-index-enable <=> pid.b.index-enable
net joint-4-index-enable <=> joint.4.index-enable
net joint-4-enable <= joint.4.amp-enable-out
net joint-4-enable => pid.b.enable
net joint-4-enable => hm2_[MESA](BOARD).0.stepgen.04.enable
# Joint 4 Step Generator Settings
setp hm2_[MESA](BOARD).0.stepgen.04.dirsetup [JOINT_4](DIRSETUP)
setp hm2_[MESA](BOARD).0.stepgen.04.dirhold [JOINT_4](DIRHOLD)
setp hm2_[MESA](BOARD).0.stepgen.04.steplen [JOINT_4](STEPLEN)
setp hm2_[MESA](BOARD).0.stepgen.04.stepspace [JOINT_4](STEPSPACE)
setp hm2_[MESA](BOARD).0.stepgen.04.position-scale [JOINT_4](SCALE)
setp hm2_[MESA](BOARD).0.stepgen.04.maxvel [JOINT_4](STEPGEN_MAX_VEL)
setp hm2_[MESA](BOARD).0.stepgen.04.maxaccel [JOINT_4](STEPGEN_MAX_ACC)
setp hm2_[MESA](BOARD).0.stepgen.04.step_type 0
setp hm2_[MESA](BOARD).0.stepgen.04.control-type 1
# position command and feedback
net joint-4-pos-cmd <= joint.4.motor-pos-cmd
net joint-4-pos-cmd => pid.b.command
net joint-4-pos-fb <= hm2_[MESA](BOARD).0.stepgen.04.position-fb
net joint-4-pos-fb => joint.4.motor-pos-fb
net joint-4-pos-fb => pid.b.feedback
# PID Output
net joint.4.output <= pid.b.output
net joint.4.output => hm2_[MESA](BOARD).0.stepgen.04.velocity-cmd
# Axis: C Joint: 5 Output: 5
# PID Setup
setp pid.c.Pgain [JOINT_5](P)
setp pid.c.Igain [JOINT_5](I)
setp pid.c.Dgain [JOINT_5](D)
setp pid.c.bias [JOINT_5](BIAS)
setp pid.c.FF0 [JOINT_5](FF0)
setp pid.c.FF1 [JOINT_5](FF1)
setp pid.c.FF2 [JOINT_5](FF2)
setp pid.c.deadband [JOINT_5](DEADBAND)
setp pid.c.maxoutput [JOINT_5](MAX_OUTPUT)
setp pid.c.error-previous-target True
# limit stepgen velocity corrections caused by position feedback jitter
setp pid.c.maxerror [JOINT_5](MAX_ERROR)
# joint-5 enable chain
net joint-5-index-enable <=> pid.c.index-enable
net joint-5-index-enable <=> joint.5.index-enable
net joint-5-enable <= joint.5.amp-enable-out
net joint-5-enable => pid.c.enable
net joint-5-enable => hm2_[MESA](BOARD).0.stepgen.05.enable
# Joint 5 Step Generator Settings
setp hm2_[MESA](BOARD).0.stepgen.05.dirsetup [JOINT_5](DIRSETUP)
setp hm2_[MESA](BOARD).0.stepgen.05.dirhold [JOINT_5](DIRHOLD)
setp hm2_[MESA](BOARD).0.stepgen.05.steplen [JOINT_5](STEPLEN)
setp hm2_[MESA](BOARD).0.stepgen.05.stepspace [JOINT_5](STEPSPACE)
setp hm2_[MESA](BOARD).0.stepgen.05.position-scale [JOINT_5](SCALE)
setp hm2_[MESA](BOARD).0.stepgen.05.maxvel [JOINT_5](STEPGEN_MAX_VEL)
setp hm2_[MESA](BOARD).0.stepgen.05.maxaccel [JOINT_5](STEPGEN_MAX_ACC)
setp hm2_[MESA](BOARD).0.stepgen.05.step_type 0
setp hm2_[MESA](BOARD).0.stepgen.05.control-type 1
# position command and feedback
net joint-5-pos-cmd <= joint.5.motor-pos-cmd
net joint-5-pos-cmd => pid.c.command
net joint-5-pos-fb <= hm2_[MESA](BOARD).0.stepgen.05.position-fb
net joint-5-pos-fb => joint.5.motor-pos-fb
net joint-5-pos-fb => pid.c.feedback
# PID Output
net joint.5.output <= pid.c.output
net joint.5.output => hm2_[MESA](BOARD).0.stepgen.05.velocity-cmd
# Board: 7i78
# Axis: U Joint: 6 Output: 0
# PID Setup
setp pid.u.Pgain [JOINT_6](P)
setp pid.u.Igain [JOINT_6](I)
setp pid.u.Dgain [JOINT_6](D)
setp pid.u.bias [JOINT_6](BIAS)
setp pid.u.FF0 [JOINT_6](FF0)
setp pid.u.FF1 [JOINT_6](FF1)
setp pid.u.FF2 [JOINT_6](FF2)
setp pid.u.deadband [JOINT_6](DEADBAND)
setp pid.u.maxoutput [JOINT_6](MAX_OUTPUT)
setp pid.u.error-previous-target True
# joint-6 enable chain
net joint-6-index-enable <=> pid.u.index-enable
net joint-6-index-enable <=> joint.6.index-enable
net joint-6-enable <= joint.6.amp-enable-out
net joint-6-enable => pid.u.enable
# position command and feedback
net joint-6-pos-cmd <= joint.6.motor-pos-cmd
net joint-6-pos-cmd => pid.u.command
net joint-6-pos-fb <= hm2_[MESA](BOARD).0.stepgen.06.position-fb
net joint-6-pos-fb => joint.6.motor-pos-fb
net joint-6-pos-fb => pid.u.feedback
# PID Output
net joint.6.output <= pid.u.output
# Standard I/O Block - EStop, Etc
# create a signal for the estop loopback
net estop-loopback iocontrol.0.emc-enable-in <= iocontrol.0.user-enable-out- tommylight

30 Nov 2024 16:29

Replied by tommylight on topic ESP32/S2/S3 LinuxCNC Controller (6 axis hardware step gen), USB plug-and-play
ESP32/S2/S3 LinuxCNC Controller (6 axis hardware step gen), USB plug-and-play
Category: Computers and Hardware
Yeah, it is probably Meister's channel, sorry for the mix up.Nah, not my channel,
I just had two friends in the shop, fixing 3 PC's, all the time they were screaming at me for not recording that and putting it online as they would like to watch that again and again! I am a pedantic p.o.s when i work with PC, so i always think that would be boring as hell !...got none of that online exposure, maybe one day but I doubt that. Same reason as yours, so little time for those sort of things
![]()
Thank you very much. Been quite some time since i injured myself... aaah good timesAll the best to you & family. And be safe in that shop!!
- PCW

30 Nov 2024 15:28 - 30 Nov 2024 15:29
Replied by PCW on topic Plasma and Ethercat?
Plasma and Ethercat?
Category: Plasma & Laser
When an arc stops or starts, the connection is broken or established in a fraction of a nanosecond.
This generates a large current transient what starting and because the plasma source has substantial output
inductance, it causes a large voltage transient when the connection is broken.
This is the reason relay contacts typically have arc suppression devices, not just to preserve the contacts
but to suppress the massive EMI generated by the near instantaneous current interruption.
This generates a large current transient what starting and because the plasma source has substantial output
inductance, it causes a large voltage transient when the connection is broken.
This is the reason relay contacts typically have arc suppression devices, not just to preserve the contacts
but to suppress the massive EMI generated by the near instantaneous current interruption.
- bkt

30 Nov 2024 15:18
Replied by bkt on topic Linuxcnc show linuxcnc-error window when close my gui app
Linuxcnc show linuxcnc-error window when close my gui app
Category: Advanced Configuration
not know .tlc file programming ... but seems if we filter that messages that seems a bug ... we can eliminate error Lcnc windows at the end.
We can create debug_file or report_file in any folder if we would .... personally for now i add these at end of file:
my modify file ... only as example and for sure all can do these in better way ... personally is first time in these things ... so undersatnd me ...
in attach my file located on : /lib/tcltk/linuxcnc/show_errors.tcl
We can create debug_file or report_file in any folder if we would .... personally for now i add these at end of file:
# Open the info file
%readfile("$info_file", "file_content")
# Check if the file contains the word USERMOT
if (contains(file_content, "USRMOT: ERROR: command 30 timeout"))
# Found USERMOT, destroy immediately
{destroy .}
else
# Wait for 40 seconds before destroying
wait 40s
{destroy .}
endifmy modify file ... only as example and for sure all can do these in better way ... personally is first time in these things ... so undersatnd me ...
in attach my file located on : /lib/tcltk/linuxcnc/show_errors.tcl
- Axolito

30 Nov 2024 15:05
Replied by Axolito on topic Embed tab not displayed with autostart
Embed tab not displayed with autostart
Category: Gmoccapy
That didn't work either, but I came up with an idea to get the logs in a roundabout way.
I use :Then I saved the output in the attached file.
This is an error related to the toggle.1 function in the HAL file for the dust collector button.
I was able to solve my problem with this information!
My “loadrt toggle” was in the “postgui.hal” file, I moved it to the “machine.hal” file.
For some reason, the “postgui.hal” file isn't loaded at exactly the same time when it's an autostart and when it's a manual start.
In any case, now it's cleaner and more stable.
Thanks for the help.
I use :
xfce4-terminal -x linuxcnc '/home/axel/linuxcnc/configs/mini-cnc-tc-dust/mini-cnc-tc-dust.ini'This is an error related to the toggle.1 function in the HAL file for the dust collector button.
I was able to solve my problem with this information!
My “loadrt toggle” was in the “postgui.hal” file, I moved it to the “machine.hal” file.
For some reason, the “postgui.hal” file isn't loaded at exactly the same time when it's an autostart and when it's a manual start.
In any case, now it's cleaner and more stable.
Thanks for the help.
- RDA
- RDA
30 Nov 2024 15:01
Replied by RDA on topic Plasma and Ethercat?
Plasma and Ethercat?
Category: Plasma & Laser
Maybe I misunderstand something here. I assumed we were talking about work to electrode voltage and further than that, the divided one.
So apart from the ignition or ohmic sensing the cutting itself is nothing dramatic, well at least to me its not. What do you mean by the "nanosecond" rates?
So purely from work to electrode voltage point of view the plasma does not "instantaneously" turn on the cutting power. The current is ramped up in the tens or hundreds ms time frame. This is all depending on the torch/consumable design. Same goes when you stop cutting, the arc is "extinguished" in a controlled manner.
Typically the IGBT's switch around 50kHZ, I have seen some a bit higher, some a bit lower but all that I came across switch under 100kHZ. The arc itself I see as a purely resistive load.
Now for crossing a kerf, the arc lags behind for a few degrees, depending on speed and material. When you cross a kerf, the top of the arc will touch the material before the bottom and makes the arc "jump" over the kerf. This extends the arc to a certain degree and makes the arc voltage higher (longer arc). Something similar happens when the center slug drops and the arc follows the slug for a moment, extending the arc.
Anyone can test their plasma's max output voltage during cutting by incrementing the cut height and seeing when the arc goes off. A plasma rated for example 200V cannot sustain an arc that requires 300V.
I will try to remember to scope the kerf crossing and hole cutting next time I have a chance, maybe not this year but for sure start of 25.
I'm eager to learn new things and it would be great if someone corrects me if I am wrong.
So apart from the ignition or ohmic sensing the cutting itself is nothing dramatic, well at least to me its not. What do you mean by the "nanosecond" rates?
So purely from work to electrode voltage point of view the plasma does not "instantaneously" turn on the cutting power. The current is ramped up in the tens or hundreds ms time frame. This is all depending on the torch/consumable design. Same goes when you stop cutting, the arc is "extinguished" in a controlled manner.
Typically the IGBT's switch around 50kHZ, I have seen some a bit higher, some a bit lower but all that I came across switch under 100kHZ. The arc itself I see as a purely resistive load.
Now for crossing a kerf, the arc lags behind for a few degrees, depending on speed and material. When you cross a kerf, the top of the arc will touch the material before the bottom and makes the arc "jump" over the kerf. This extends the arc to a certain degree and makes the arc voltage higher (longer arc). Something similar happens when the center slug drops and the arc follows the slug for a moment, extending the arc.
Anyone can test their plasma's max output voltage during cutting by incrementing the cut height and seeing when the arc goes off. A plasma rated for example 200V cannot sustain an arc that requires 300V.
I will try to remember to scope the kerf crossing and hole cutting next time I have a chance, maybe not this year but for sure start of 25.
I'm eager to learn new things and it would be great if someone corrects me if I am wrong.
- slowpoke
- slowpoke
30 Nov 2024 14:54
Replied by slowpoke on topic Small touchscreen display 7-10' -> 14-16"
Small touchscreen display 7-10' -> 14-16"
Category: General LinuxCNC Questions
RaspberryPi was $50 locally, the touchscreens $80-100ish Canadian pesos from Amazon. So a shade > US$100 for both. I can't vouch for the "good" WRT reliability the resolution/sharpness is decent not ipad quality but quite acceptable for a CNC machine.Out of curiosity, how much is a RPI and a good touchscreen these days?
Wondering as i got a Lenovo X1 Carbon Yoga for 120 and a Lenovo Yoga Y370 for 220, bot work for LinuxCNC with Mesa, both have 120Hz touchscreens, very high quality ones, very good keyboards, and both do over 4-6 hours on batteries.
- RDA
- RDA
30 Nov 2024 14:28
Replied by RDA on topic Plasma and Ethercat?
Plasma and Ethercat?
Category: Plasma & Laser
Nice one, have not seen that before. It's quite expensive though? And maybe a bit overkill with 8 x 16-bit ADC (for a single plasma). Would be nice to find a mixed signal one with something like16 I/O and few ADC and few PWM. Maybe one day I will have time to make one.
- Mecanix
- Mecanix
30 Nov 2024 14:06
All the best to you & family. And be safe in that shop!!
Replied by Mecanix on topic ESP32/S2/S3 LinuxCNC Controller (6 axis hardware step gen), USB plug-and-play
ESP32/S2/S3 LinuxCNC Controller (6 axis hardware step gen), USB plug-and-play
Category: Computers and Hardware
Nah, not my channel, got none of that online exposure, maybe one day but I doubt that. Same reason as yours, so little time for those sort of thingsRMT will have to wait, limited time, but lately i am stuck at home/shops so maybe...
All the best to you & family. And be safe in that shop!!
- NTULINUX

30 Nov 2024 13:40 - 02 Dec 2024 13:24
Replied by NTULINUX on topic Gentoo Image, Which Applications are in and Which are Out
Gentoo Image, Which Applications are in and Which are Out
Category: General LinuxCNC Questions
The mainline 6.12 kernel has the i915 DRM (Direct Rendering Manager) driver has been disabled if PREEMPT_RT is selected in Kconfig. I guess the fixes for the i915 driver that were in the PREEMPT_RT kernel patch have not made it into mainline, so the driver has been forcibly disabled for now. The newer Intel Xe driver on the other hand is perfectly fine. Hardware acceleration will not work on Intel GPUs that are not covered by the Xe driver. When i915 has been re-enabled, I will push a new Gentoo image with the driver on.
git.kernel.org/pub/scm/linux/kernel/git/...Kconfig?h=v6.12.1#n6
config DRM_I915 depends on !PREEMPT_RT
I have however set the Xe Intel driver force_probe feature to "*" which enables the Xe driver for all known devices.
www.phoronix.com/review/intel-xe-benchmark
"This driver is designed just to support Intel Tigerlake Gen12 graphics and newer -- both integrated and discrete graphics moving forward. "
Also, this will _not_ be the case in the kernel I built:
"With the Xe DRM driver in Linux 6.8, the driver remains disabled by default for all released Intel integrated and discrete graphics hardware. Even when building the Intel Xe driver to be part of the kernel, it will be off by default with the long-used i815 kernel driver remaining the default. But it is easy to switch to this new driver when the Xe driver is included. Via boot parameters like "i915.force_probe=!56a2 xe.force_probe=56a2" is enough to prevent loading of the i915 driver and loading instead the experimental Xe driver, assuming your PCI graphics ID is 0x56a2. Just adjust for your appropriate Intel PCI graphics ID and from there it's easy to boot with this new kernel driver."
You will not have to specify IDs in the kernel command line in order to use the Xe driver as this has been enabled already in Kconfig.
Sorry for the inconvenience, I know a lot of you may be running older i915 hardware. I'm going to test this on an Intel laptop to make sure X at least works with the proper display resolution, but hardware 3D acceleration may not work for some of you.
edit: Just cloned the linux-rt-devel git repository, switched to the 6.12.y-rt branch, pulled in the 6.12.y branch from stable to update it, so the i915 driver has been re-enabled. 6.12.1 with i915 is a go! The PREEMPT_RT kernel patch series hasn't been updated since 6.12-rc4, so that's fixed.
edit 2: The 6.12 mainline kernel, while has PREEMPT_RT enabled, is actually a bit useless because real-time applications check for /sys/kernel/realtime including LinuxCNC. This patch is required for LinuxCNC to work with real-time POSIX threads:
git.kernel.org/pub/scm/linux/kernel/git/...be0b95341fdc7ef1c193
So I'll be maintaining my own 6.12 real-time kernel repository that also allows building with the -O3 flag.
All is well!
git.kernel.org/pub/scm/linux/kernel/git/...Kconfig?h=v6.12.1#n6
config DRM_I915 depends on !PREEMPT_RT
I have however set the Xe Intel driver force_probe feature to "*" which enables the Xe driver for all known devices.
www.phoronix.com/review/intel-xe-benchmark
"This driver is designed just to support Intel Tigerlake Gen12 graphics and newer -- both integrated and discrete graphics moving forward. "
Also, this will _not_ be the case in the kernel I built:
"With the Xe DRM driver in Linux 6.8, the driver remains disabled by default for all released Intel integrated and discrete graphics hardware. Even when building the Intel Xe driver to be part of the kernel, it will be off by default with the long-used i815 kernel driver remaining the default. But it is easy to switch to this new driver when the Xe driver is included. Via boot parameters like "i915.force_probe=!56a2 xe.force_probe=56a2" is enough to prevent loading of the i915 driver and loading instead the experimental Xe driver, assuming your PCI graphics ID is 0x56a2. Just adjust for your appropriate Intel PCI graphics ID and from there it's easy to boot with this new kernel driver."
You will not have to specify IDs in the kernel command line in order to use the Xe driver as this has been enabled already in Kconfig.
Sorry for the inconvenience, I know a lot of you may be running older i915 hardware. I'm going to test this on an Intel laptop to make sure X at least works with the proper display resolution, but hardware 3D acceleration may not work for some of you.
edit: Just cloned the linux-rt-devel git repository, switched to the 6.12.y-rt branch, pulled in the 6.12.y branch from stable to update it, so the i915 driver has been re-enabled. 6.12.1 with i915 is a go! The PREEMPT_RT kernel patch series hasn't been updated since 6.12-rc4, so that's fixed.
edit 2: The 6.12 mainline kernel, while has PREEMPT_RT enabled, is actually a bit useless because real-time applications check for /sys/kernel/realtime including LinuxCNC. This patch is required for LinuxCNC to work with real-time POSIX threads:
git.kernel.org/pub/scm/linux/kernel/git/...be0b95341fdc7ef1c193
So I'll be maintaining my own 6.12 real-time kernel repository that also allows building with the -O3 flag.
All is well!
- Creative25
- Creative25
30 Nov 2024 13:12
Replied by Creative25 on topic Building a chain driven Plasma table.
Building a chain driven Plasma table.
Category: General LinuxCNC Questions
I think I will go max to 3 meter
I don’t have a 3D printer.
I could put some pulleys in series to get a better gear ratio.
What ratio would you recommend?
I don’t have a 3D printer.
I could put some pulleys in series to get a better gear ratio.
What ratio would you recommend?
Time to create page: 0.589 seconds