Advanced Search

Search Results (Searched for: )

  • rodw
  • rodw's Avatar
Today 23:35

LinuxCNC latency and jitter improvements with PREEMPT_RT kernel parameter tuning

Category: Computers and Hardware

I also cover RT tuning in this video


What's not immediately clear that the servo thread and base thread are the only RT components used by Linuxcnc so that is why you only see one core in use.
  • jmelson
  • jmelson
Today 22:20

Pico Universal PWM Won't boot Random pins not working

Category: Driver Boards

The load fail red led does come on and stay on when I boot up linuxcnc and get the error messages. also the green estop ok led is lit as well. Prior to starting linuxcnc the light is off.


 

OH, didn't read closely enough!  If you are saying the Load Fail LED only stays on after LinuxCNC starts?  I know of NO WAY LinuxCNC can turn this light on, except by maybe causing a fluctuation of the 12 V supply.
Please give a bit more detail.
Jon
  • jmelson
  • jmelson
Today 22:17

Pico Universal PWM Won't boot Random pins not working

Category: Driver Boards

Jon,


The load fail red led does come on and stay on when I boot up linuxcnc and get the error messages. 

This is the killer problem!  The FPGA is not accepting the load of its program.  It is somewhat unlikely the EPROM has gone bad, but possible.  First, check that the +12V supply is operating properly, and does not have excessive ripple.  Without a valid program in the FPGA, nothing will ever work.  If the power supply is good, then it is possible the FPGA has been damaged, or one of the regulators on the board has gone bad or is overloaded.  You can check from the wide tab of U31 to one of the G terminals of P2.
That should read +3.3 V.  Then check the wide tab of U32, that should read +1.2V.  If either of these is out of range, something got popped.  You can also check for correct power up with the parallel port cable disconnected.  D4 (Load Fail) should blink once and then stay out.
Jon
  • tommylight
  • tommylight's Avatar
Today 22:11

Limit and home swithces with multiplexing with diodes and mux16 component?

Category: Basic Configuration

You can also use a simple BOB on the expansion header, adding 5 more inputs (limited by BOB, not by Mesa).
And for RS422 see Mesa 7i84, it has 32 inputs and 16 outputs that work with 24V, but also work with 5V, i am pretty sure you can have half of IO with 5V and the other half with 12V or 24V or any combination of voltages as half and half. You might want to wait for confirmation of the half/half thing from PCW as i did something like that several years ago and i am a bit fuzzy.
  • jazzkramer
  • jazzkramer
Today 21:40

Limit and home swithces with multiplexing with diodes and mux16 component?

Category: Basic Configuration

Thanks PCW,
that's interesting... so maybe I better think about an expansion card to connect more inputs... I Know 7i96 has RS-422/RS485 and there are cards expansion with many I/Os...
I will think about. My limit switches works at 24V but I can think for a solution if this card works at a lower voltage...
  • PCW
  • PCW's Avatar
Today 21:21

Limit and home swithces with multiplexing with diodes and mux16 component?

Category: Basic Configuration

A disadvantage of multiplexing is that the switch detection will be slower (by a factor of the servo thread period times the multiplex depth)

You could also use the parallel expansion port to add 17 more inputs (though 5V only and probable should have 220 Ohm or so
series resistors for protection)
  • jazzkramer
  • jazzkramer
Today 20:45

Limit and home swithces with multiplexing with diodes and mux16 component?

Category: Basic Configuration

Thanks Tommylight,
I know I can connect more limits/homing to the same input, but in case of a wiring problem/fault I will have a generic "Limit switch triggered error" and I would have to check all the switches wiring...

Instead if is it possible to multiplex limit and home switches inside LinuxCNC, by adding diodes connections between switches, it will reducing the all problem to 4 inputs only. This way, in the case of triggering I have the exact error like for example "Y Limit swtich triggered", so I can check only the Y wiring (in this example).
  • tommylight
  • tommylight's Avatar
Today 19:48

Limit and home swithces with multiplexing with diodes and mux16 component?

Category: Basic Configuration

You do not need 12 switches for a simple machine, you need only 4 for a 4 axis machine, or for 3 axis with one of those having 2 motors/joints like gantry machines.
LinuxCNC can use the same switch for both limits and homing, it can also do all kinds of combinations to the point of using a single input for all limits and home on a 9 axis machine, granted none are tandem axis.
Here is some inspiration for DIY plasma cutting machines, certainly not the only one, but has more details about switches and reductions and overall building of such machines:
forum.linuxcnc.org/show-your-stuff/38547...-5m-cnc-plasma-build
  • jazzkramer
  • jazzkramer
Today 19:11

Limit and home swithces with multiplexing with diodes and mux16 component?

Category: Basic Configuration

Hi all,
I have a diy Plasma with Linuxcnc (it has some mechanical problems and never got it to reliably work... due to modification of the original project due to not having the planned space in my previous location... I will solve...), 

BUT I also had some wiring problems triggering limit switches...

AND, having all limit switches connected to one (or less than the total number) input in my 7i96,
I had to check every limit switch to find which wire was broken or had a loose connection (so triggering).

NOW, Hopefully in a few days, I'm going to be in another project (this NEEDS to work! :) ) adding Linuxcnc to a proper (not diy) milling machine by a Mesa 7i96S.

SO I WAS THINKING:

The Mesa 7i96S does not have enough inputs for 8 limits + 4 homing switches... SO

what if I make a diode schema to connect 8 limit switches (4 axis) + 4 homing switches to 4 7i96S inputs only and I multiplex these switches inside LinuxCNC?

I know there is a module called mux16 (or something similar, I have to check..), maybe I can connect it's output to the limit/home switches...

Has anyone tried that? Does it work?

This way if one limit or home switch get triggered when the machine is not there, I could already know the one to fix because the GUI would tell me which switch would be in error state...

Thanks for any reply,
Alberto.



 
  • wsmagee
  • wsmagee
Today 19:04

LinuxCNC latency and jitter improvements with PREEMPT_RT kernel parameter tuning

Category: Computers and Hardware

I need good latency for software stepping.  I am using a parallel port and a HobbyCNC PRO Stepper board.  
I needed to update my LinuxCNC computer as it was still using Debian 9 on a really old computer.  I had ok latency on that old computer. 
But during the move to Debian 12 I decided to use a somewhat newer PC as well, the "new" one having an AMD A-8 processor.
During initial tests, Debian 12 worked well on this old AMD-A8 machine, but the latency was horrid.
I found this article as well:  dantalion.nl/2024/09/29/linuxcnc-latency...arameter-tuning.html  and after tuning mine I now have excellent latency for my needs. (Big thanks to "dantalion" if they ever see this post, I could not find any way to contact them to thank them in their blog.)
Before tuning: 200,000+ microsecond base threads
After tuning :6,000 and below. 
I ended up only setting 1 of the 4 processors for the real time tasks, vs 1/2 of them.  As when I was watching the cores using HTOP while running latency tests, one core appeared to be doing nothing.  And the non-realtime cores were getting hit pretty hard by other tasks when making the system work.  So I figured I would just let one core handle the real-time, and let the other three cores take care of other stuff.  Not sure if this will cause me a problem at some point, but so far it all seems to be working well, when actually running LinuxCNC and performing some real world initial tests.
Below is what I ended up doing, I am posting steps and my settings below for others that may be new to Linux and struggling with how/where to make the edits.  I have not found anything that walks through all the steps.  If you are using this, just be sure you read the above mentioned article and change the lines that impact the cores.
I don't fully understand all of the settings, but applying all of them noted in the blog post seemed to work for me.
What I did was:Edit Boot Parameters:
- open the terminal
- edit the grub file using nano:  sudo nano /etc/default/grub
- edit one line in grub (put a # in front of the existing GRUB_CMDLINE_LINUX_DEFAULT="quiet" line to comment it out, then make a new line below it.) My new line is: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash skew_tick=1 nosmt=force kthread_cpus=0-1 irqaffinity=0-1 rcu_nocb_poll rcu_nocbs=2-3 nohz=on nohz_full=2-3 isolcpus=2-3 intel_pstate=disable amd_pstate=disable idle=poll cpufreq.off=1 cpuidle.off=1 intel_idle.max_cstate=1 amd_idle.max_cstate=1 nowatchdog nosoftlockup"
- save the file and close out of nano
- update grub: sudo update-grubEdit sysctl parameters:Make a new file for the custom config and add contents to it: sudo nano /etc/sysctl.d/99-custom.conf
- added the following lines: 
kernel.timer_migration=0
kernel.sched_rt_runtime_us=-1
- save file and close out of nano
- I think rebooted computer.
Also I experimented with another machine that had an AMD A10 core, but that would result in 2 of the cores showing as inactive in htop,  I think it has something to do with this chip being really 2 chips with dual cores, vs the AMD A8 is a single chip with 4 cores.  I'm sure there is a way to address that, but since the A8 chipped worked out, I never pursued anymore.   
  • MaHa
  • MaHa
Today 17:49

inconsistency with radiobutton and hal_pin

Category: Flex GUI

Very nice. I listed all pins

halcmd show pin flex > flexpins.txt

all is correct now at startup, and i was able to case sensitive check Type and Dir.
Now i don't need to toggle all the radiobutton before running a subroutine.



 
  • Sekai
  • Sekai
Today 17:31 - Today 18:51
Replied by Sekai on topic New and Working RTAI debs for 2.9

New and Working RTAI debs for 2.9

Category: Installing LinuxCNC

Hi. i install debian 12 clean and 5.4.290 with linuxcnc 2.9.4 and everything works great.
I mean for latency i have max 16us and sim works but when i create a step config with the wizard and try to load linuxcnc from the icon, the screen goes black and i have to restart the pc.

Edit:  i install 5.4.258-rtai with linuxcnc 2.9.2 and the same black screen but after a restart. Starting linuxcnc again it finaly gave me an error

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/realtime-5.4.258-rtai-amd64/modules/linuxcnc
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.6
LINUXCNC - 2.9.2
Machine configuration directory is '/home/cnc/linuxcnc/configs/strung'
Machine configuration file is 'strung.ini'
INIFILE=/home/cnc/linuxcnc/configs/strung/strung.ini
VERSION=1.1
PARAMETER_FILE=linuxcnc.var
TPMOD=
HOMEMOD=
TASK=milltask
HALUI=
DISPLAY=gmoccapy
COORDINATES=X Z
KINEMATICS=trivkins coordinates=XZ
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
linuxcnc TPMOD=tpmod HOMEMOD=homemod EMCMOT=motmod
Found file(REL): ./strung.hal
Found file(REL): ./custom.hal
Starting TASK program: milltask
Starting DISPLAY program: gmoccapy
Shutting down and cleaning up LinuxCNC...
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments

Debug file information:
Traceback (most recent call last):
File "/usr/bin/hal_manualtoolchange", line 61, in <module>
import nf, rs274.options
File "/usr/lib/python3/dist-packages/nf.py", line 19, in <module>
import tkinter
File "/usr/lib/python3.11/tkinter/__init__.py", line 3043, in <module>
/usr/bin/linuxcnc: line 977: 1268 Segmentation fault $EMCDISPLAY -ini "$INIFILE" $EMCDISPLAYARGS $EXTRA_ARGS
"""Checkbutton widget which is either in on- or off-state."""
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SystemError: type Checkbutton has the Py_TPFLAGS_HAVE_GC flag but has no traverse function
/usr/bin/pidof: symbol lookup error: /usr/bin/pidof: undefined symbol: __libc_start_main, version GLIBC_2.34
/usr/bin/milltask exiting
<commandline>:0: milltask exited without becoming ready
/usr/bin/linuxcnc: line 660: 1279 Segmentation fault axis-remote --ping
1217
*** buffer overflow detected ***: terminated
Signal 6 (ABRT) caught by ps (4.0.2).
/usr/bin/ps:src/ps/display.c:71: please report this bug
/usr/bin/grep: symbol lookup error: /lib/x86_64-linux-gnu/libc.so.6: undefined symbol: __libc_enable_secure, version GLIBC_PRIVATE
Stopping realtime threads
Unloading hal components

Kernel message information:
[ 96.998896] I-pipe: head domain RTAI registered.
[ 96.998902] RTAI[hal]: mounted. ISOL_CPUS_MASK: 0.
[ 96.998910] SYSINFO - # CPUs: 1, TIMER NAME: 'lapic', TIMER IRQ: 4355, TIMER FREQ: 10390749, CLOCK NAME: 'tsc', CLOCK FREQ: 1662499000, CPU FREQ: 1662499000, LINUX TIMER IRQ: 4355.
[ 97.050990] RTAI[malloc]: global heap size = 2097152 bytes, <BSD>.
[ 97.051068] kstacks pool size = 524288 bytes
[ 97.051071] RTAI[sched]: hard timer type/freq = lapic/10390749(Hz)
[ 97.051074] linear timed lists.
[ 97.051077] RTAI[sched]: Linux timer freq = 250 (Hz), TimeBase freq = 1662499000 hz.
[ 97.051080] RTAI[sched]: timer setup = 96 ns, resched latency = 0 ns.
[ 97.111842] USERMODE CHECK: OK.
[ 97.111847] USERMODE CHECK PROVIDED (ns): KernelLatency 3210, UserLatency 4927.
[ 97.111850] FINAL CALIBRATION SUMMARY (ns): KernelLatency 3210, UserLatency 4927.
[ 97.251101] RTAI[math]: loaded integrated musl libm version 1.2.3.
[ 97.607590] config string '0 out'
[ 97.956566] gmoccapy[1268]: segfault at 18 ip 00000000004ffef7 sp 00007ffe4af40600 error 4 in python3.11[41f000+2b3000]
[ 97.956585] Code: 40 ff 0f 85 d3 00 00 00 83 f9 0f 0f 8f 35 01 00 00 66 41 89 14 40 48 83 c2 01 49 83 c1 10 48 39 ea 74 32 0f b6 4f 08 49 8b 01 <48> 8b 70 18 48 89 f0 4c 21 d0 83 f9 07 7f ba 41 80 3c 00 ff 0f 85
[ 98.035750] hal_manualtoolc[1256]: segfault at 18 ip 00007fa6cfea6360 sp 00007ffe2d15db50 error 4 in libc.so.6[7fa6cfe36000+156000]
[ 98.035769] Code: 03 00 00 43 f6 44 3e 08 01 0f 84 4b 04 00 00 49 83 66 08 fe 48 8b 45 70 48 8d 55 60 66 48 0f 6e ca 66 48 0f 6e c0 66 0f 6c c1 <48> 39 50 18 0f 85 e6 05 00 00 4c 89 e1 0f 11 43 10 4a 8d 14 23 48
[ 98.144627] traps: milltask[1265] general protection fault ip:7f007f4e1b41 sp:7ffe63e76640 error:0 in libpython3.11.so.1.0[7f007f42a000+2d1000]
[ 98.307458] axis-remote[1279]: segfault at 0 ip 000000000055dc3a sp 00007ffd160584e0 error 6 in python3.11[41f000+2b3000]
[ 98.307477] Code: 0f 12 c8 66 48 0f 7e c6 66 48 0f 7e c9 48 85 d2 0f 84 22 02 00 00 48 83 c0 01 48 83 ea 01 48 89 43 20 48 8b 43 28 48 89 53 30 <48> 83 06 01 48 83 01 01 48 83 38 01 75 40 48 8b 78 18 48 8b 58 20
[ 100.956711] RTAI[math]: unloaded.
[ 101.006264] SCHED releases registered named ALIEN PEDV$D
[ 101.042832] RTAI[malloc]: unloaded.
[ 101.150248] RTAI[sched]: unloaded (forced hard/soft/hard transitions: traps 0, syscalls 0).
[ 101.161380] I-pipe: head domain RTAI unregistered.
[ 101.161387] RTAI[hal]: unmounted.
  • Hakan
  • Hakan
Today 16:10 - Today 16:11
Replied by Hakan on topic asd-a2-e ... lcec driver?

asd-a2-e ... lcec driver?

Category: EtherCAT

Wasn't around here when all this started. lcec_deasda driver has limitations. Ok. Don't use that driver then.
What about using the "generic" driver? Or the basic_cia402. Prefer the "generic" driver)

Is this the drive in question deltronics.ru/images/manual/ASDA_A2-E_UM_EN_20150430.pdf?
Chapter 5.3 describes CSP mode which you want to use. Looks like a normal cia402 drive to me,
shouldn't be too difficult to get going.
  • PCW
  • PCW's Avatar
Today 16:01
Replied by PCW on topic PicoBOB-DLX

PicoBOB-DLX

Category: Driver Boards

This generic "Mach3 5 Axis" breakout has the 0 to 10V feature:

www.amazon.com/KOOBOOK-Breakout-Interfac...oupler/dp/B07S5JSWC6
 
(that's just one example, there are hundreds of very similar or identical breakouts)
  • SLTwogood
  • SLTwogood
Today 15:12
Replied by SLTwogood on topic Manual tool change + tool lengh touch off

Manual tool change + tool lengh touch off

Category: Advanced Configuration

Hello Vector. I installed your auto tool setter ngc and it ran through all of the code until it hit line 185. I got this error: 185 duplicate O-word label - already defined in line 173: 'o510if [#5070 EQ 0]'. I went to line 185 and changed the o510 for lines 185, 187, and 188 to o520. I am not sure if this o code is used anywhere else but now the code runs all the way through the way i expect it.
Displaying 1 - 15 out of 280983 results.
Time to create page: 1.226 seconds
Powered by Kunena Forum