LinuxCNC configuration for 2.x Laser
Posted: Wed Dec 19, 2012 10:35 pm
There's discussion of this in my buildlog thread and elsewhere but I'm making this dedicated post:
I have updated https://github.com/bjj/2x_laser to LinuxCNC 2.5. There were already fixes floating around in other branches for this purpose and I have evaluated them all and applied the patches I found to be correct and some small additional stuff. I also improved rastering reliability (there were some small numerical differences between the gcode maath of LinuxCNC and python).
From the updated README:
I've just purchased a Mesa Electronics 5i25 "Anything I/O" board and I will be adding a branch with a configuration to support that board. Ultimately I will make a custom configuration for that board which will offload PPI and raster engraving to the FPGA. This will make base thread "latency" irrelevant and make it possible to hit much higher speeds even with 16x microstepping.
I also have some scripts which pre-process PostScript into gcode suitable for my rastering configuration. It's not very sophisticated but I have drawn things in Inkscape (with hairlines for cuts) and produced combination raster/vector jobs.
I have updated https://github.com/bjj/2x_laser to LinuxCNC 2.5. There were already fixes floating around in other branches for this purpose and I have evaluated them all and applied the patches I found to be correct and some small additional stuff. I also improved rastering reliability (there were some small numerical differences between the gcode maath of LinuxCNC and python).
From the updated README:
Overview
This is a LinuxCNC 2.5 configuration for the Buildlog.net 2.x laser cutter. It has the following features:
- X/Y axis for the laser gantry and carriage. Configured for MXL belts, 400 step motors and 8x microstepping.
- U axis for the table. Configured for 1/4" 20 TPI threaded rod driven by a 400 step motor, 8x microstepping via a 48:20 belt reduction.
- Z axis which does not move the table at all but instead activates the laser when Z<0. This provides some "instant compatibility" with mill/router CAM.
There is some minor customization to Axis, the primary LinuxCNC GUI. Some of the viewing angle buttons have been eliminated and page up/down have been shifted to the U (table) axis.
The laser has a master enable provided by M3/M5 (spindle control). When the "spindle" is off the laser cannot fire. This means the laser turns off when you expect it to, such as when aborting a job.
When the laser is enabled via M3 it can be fired either by digital IO or by moving the imaginary Z axis to any negative position. Using a high "plunge" speed in the CAM job and a very small depth of cut (such as 0.01mm) avoids having the laser pause when it starts and stops cuts.
A custom "M" script is provided, M144, which can raster engrave images.
I've just purchased a Mesa Electronics 5i25 "Anything I/O" board and I will be adding a branch with a configuration to support that board. Ultimately I will make a custom configuration for that board which will offload PPI and raster engraving to the FPGA. This will make base thread "latency" irrelevant and make it possible to hit much higher speeds even with 16x microstepping.
I also have some scripts which pre-process PostScript into gcode suitable for my rastering configuration. It's not very sophisticated but I have drawn things in Inkscape (with hairlines for cuts) and produced combination raster/vector jobs.