LinuxCNC
Controls CNC machines: milling machines, lathes, 3d printers, laser cutters, plasma cutters, robot arms, hexapods, and more. - LinuxCNC
see also
- What is the best CNC control software?
- USB to Parallel port converter - Will the USB to Parallel port converters work with LinuxCNC?
- No, parallel converters will not work with LinuxCNC for step generation because they have large latencies to access the I/O pins.
- A normal hardware parallel port will change it’s output pin state typically in less than 1 uSec from when the host CPU does the port write.
- A USB parallel port may take from a few uSec to a few 10s of mS from the host write to the actual pins changing state. This random output timing makes evenly spaced step generation pretty much impossible.
GUI
- QtDragon
- Axis
- GMOCCAPY
- A Widescreen Blender-Style Interface (Discussion)
- probe basic (new UI) / 2 => Installing Probe Basic
- SilverDragon GUI
Hardware Interface to CNC machine
- LinuxCNC - Hardware and Latency
- PCIe LPT Card Status
- Parallell Port PCI & PCIe Add In Card Info Thread
- Parallel port Pci card.
Configuration
Parallel port address
Parallel port is only seen by the kernel is pnpbios is active. (no pnpbios=0
options)
Stepper Configuration
Latency-Test
- If your “Max Jitter” number is less than about 15-20 microseconds (15’000-20’000 nanoseconds), the computer should give very nice results with software stepping.
- If the Max Jitter is more like 30-50 microseconds, you can still get good results, but your maximum step rate might be a little disappointing, especially if you use microstepping or have very fine pitch leadscrews.
- If the numbers are 100 uS or more (100’000 nanoseconds), then the PC is not a good candidate for software stepping.
Stress system
- 3x glxgears (+ redim windows)
- youtube video playing in 720p in firefox
- stress with default cmdline / monitor temp
intel E2180 config (2019)
add Kernels options, with value found in LinuxCNC 2.7 wheezy image this reduced a lot jitter.
The Intel Core2Duo benefits greatly from the idle=poll parameter to the kernel, which disables the deep-sleep C-State of the CPU. The effect is equal to that of hogging one CPU core. RealTime
Option acpi=off
prevent kernel to shutdown pc.
BIOS/Hardware config
- Disable onboard audio
- Disable APM and ACPI bios settings
Turn everything off that you can. Any power saving, anything related to suspending, cpu frequency scaling, etc.
- Enabling ACPI could be the only way to get access to local APIC timer (much lower latency than PIC), as new mainboards do not come with legacy support of MPTABLEs.
- Disable C1E power-saving feature in BIOS (could save about ~10-15ms on recent CPUs), this feature is activated regardless of ACPI or APM, thus needs to be disabled independently. See Wikipedia for more information on this.
- If you have a CPU that is C-state capable, add the following line to the GRUB_CMDLINE_LINUX in
/etc/default/grub
:idle=poll
and runupdate-grub
. Theidle=poll
keeps the CPU in a loop checking to see if it is needed rather then it entering C1 waiting for a wakeup call. I’ve seen latencies go from 30-50us to around 4us (1-2us even) on 6 different systems. RealTime
Multicore
- The Isolcpus Boot Parameter And GRUB2
- Reducing latency on multicore pc’s - initial max jitter value was 30’000ns to the current value of less than 4’000ns:
- disable Vanderpool Technology (cpu vitualization stuff for vm’s)
- disable C1E support
- enable TM support (temperature monitoring - will throttle cpu if it overheats e.g. because of fan malfunction - will mess things up but better than a crash and toasted chip)
Interrupts (IRQ)
Linuxcnc HAL tutorial / github
- #1: The Basics
- wiring goes into .hal / setting goes into .ini
- kinematics / motion module
- net signal command / setp set parameter
- #2: INI improvements
- display axis,control / default.ngc / GCODE subroutine
- halui - running command from the ui
- axis HOME_LATCH_VEL (second search spead)
- user command file => to customize
axis
(linuxcnc ui written in python) (eg: disable command ‘r’)
- #4: PyVCP / gladeVCP - Virtual Control Panel that extend Axis GUI (button / slider / readout)
Jog-wheel
- HAL #5: XBox controller, hal_input, and subroutines
- Gamepad controller for milling machine (03/05/12)
FPGA
XFCE
- Using the Windows key to open Xfce application menu
- Top 7 Xfce Applications
- mousepad - graphical text editor
- thunar - file manager (default)
LinuxCNC/Debian
- Avahi is an mDNS/DNS daemon, service which implements Apples’s Zeroconf mechanism.
$ systemctl disable avahi-daemon
Alternative
Written on October 29, 2020, Last update on September 28, 2024
cnc
linux-system