Page 1 of 1

LinuxCNC configuration for 2.x Laser

PostPosted: Wed Dec 19, 2012 10:35 pm
by BenJackson
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:

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.

Re: LinuxCNC configuration for 2.x Laser

PostPosted: Fri Dec 21, 2012 2:02 pm
by autocrib
I really needed this, Thanks for sharing this. I have LinuxCNC 2.5 but no idea how install this. Do you have any user manual so that I can get into this comfortably.

Re: LinuxCNC configuration for 2.x Laser

PostPosted: Sat Dec 22, 2012 9:25 am
by BenJackson
autocrib wrote:I really needed this, Thanks for sharing this. I have LinuxCNC 2.5 but no idea how install this. Do you have any user manual so that I can get into this comfortably.

There's an install section of the README (follow the link above). Just get the LinuxCNC 2.5 "live CD", boot it, and follow the instructions. You can clone my repository and launch with "linuxcnc 2x_Laser.ini" but you want to read the whole README and understand how your PC might require tuning for LinuxCNC.

Thread Index

PostPosted: Sun Dec 23, 2012 8:47 pm
by BenJackson
For those just getting started with LinuxCNC, here's a list of threads where it has been discussed:

Re: LinuxCNC configuration for 2.x Laser

PostPosted: Thu May 23, 2013 9:22 pm
by BenJackson
I'm going to quote an interesting PM I got here because I don't have a flowmeter to test the integration:

Modelart wrote:Hi, ben
Heres my little contribution, isnt finished yet, its a monitor for flowmeter, (missing integration with e-stop), my programming skills are very limited, but after a suffering a catastrophic tube failure keep me thinking :oops: ..
I will be very pleased if you want to integrate it in the shared files in github, if you like.
Please, comment!
Regards
Ricardo

Code: Select all
#Modules to load       add/change cfg=# if need
loadrt not
loadrt timedelay
loadrt oneshot
loadrt or2
addf not.0 servo-thread
addf timedelay.0 servo-thread
addf oneshot.0 servo-thread
addf or2.0 servo-thread

# its based in negated splindle-on *HIGH on F05* with an off-delay for water pump spoolup
# a retriggerable oneshot from flowmeter connected in parport.0.pin 11
# both as an input in an or2, when F05 is active, or2.out is HIGH
# when F03 is active or2 is HIGH only if there is a rising edge detected in parport.0.pin 11
# or2.out has to be bundled in the e-stop chain

net spindle-on  => not.0.in
net spindle-on-not timedelay.0.in <= not.0.out
net spindle-on-not-delayed <= timedelay.0.out
#time for flowmetter spoolup
setp timedelay.0.off-delay 3 
net flow-pulse parport.0.pin-11-in => oneshot.0.in
net flow-ok-active-high <= oneshot.0.out
setp oneshot.0.width 1.5
setp oneshot.0.retriggerable 1
setp oneshot.0.rising 1
net flow-oneshot-retriggered => or2.0.in0
net spindle-on-not-delayed => or2.0.in1
net flow-behavior-or <= or2.0.out

Re: LinuxCNC configuration for 2.x Laser

PostPosted: Thu May 23, 2013 10:03 pm
by Enraged
Adafruit and other vendors have cheap flow meters, probably a good thing to have. I'll probably get something like this for my build: http://www.adafruit.com/products/828

Re: LinuxCNC configuration for 2.x Laser

PostPosted: Fri May 24, 2013 3:50 am
by kbob
Enraged wrote:Adafruit and other vendors have cheap flow meters, probably a good thing to have. I'll probably get something like this for my build: http://www.adafruit.com/products/828


Cool. I'll pick one of those up in my next Adafruit order.