## Beyond PPI? duty cycle

General discussion of laser machines

### Beyond PPI? duty cycle

I have been experimenting with PPI using LinuxCNC (formerly EMC2). The very non-intuitive relationship between speed and PPI had me perplexed at many times. After reading more info on the Bart's experiments the idea of "power delivered" and "linear energy density" and their relationship to feed rate, PPI, and laser power was more clear.

"Power delivered" is a measure of how many watts is being pushed into the material, watts = joules / sec, which is a per second quantity. PPI times feed rate determined this value. More PPI or more feed rate increased the delivered power. Which is opposite of how most view the relationship, faster feed rate should cut deeper.

"linear energy density" is a measure of how long the "power delivered" spends at each linear point. This determines how deep a cut is. If one inch is cut at a constant power delivery level, how long this one inch takes determines how deep the cut because 1 second per inch will be half the total power send into the same linear distance as 2 seconds per inch. To go deeper PPI is increased and feed rate is decreased by the same proportion.

After all this I decided to simplify to feed rate and duty cycle. To determine the "power delivered" all you need to do it multiply duty cycle by laser power level (ie 40w at full power). To get "linear energy density", just set feed rate. The end result if if the material is too melty, reduce duty cycle. To cut deeper increase feed rate.

I have implemented this in LinuxCNC using Ben Jackson laserfreq.comp. Using reverse spindle to mean duty cycle (ie M4 S55 is 55% duty cycle). The code https://github.com/jv4779/2x_laser

Jeremy
Last edited by jv4779 on Sun Aug 05, 2012 2:23 am, edited 1 time in total.
jv4779

Posts: 40
Joined: Fri Dec 09, 2011 10:54 pm

### Re: Beyond PPI? duty cycle

I'm curious about your duty cycle implementation and would like to try it out.

I'm having to manually reconcile your config with mine. So far I've got it to load with a custom panel that combines mine and yours. It also moves the X and Y axis but has a strange effect on the rapid speed.

Bottom line; I'm having a difficult time getting your config to run on my laser. Any chance you'd be willing to chat on IRC and answer some questions?
sliptonic

Posts: 30
Joined: Sun May 16, 2010 6:02 pm
Location: Missouri

### Re: Beyond PPI? duty cycle

You can use my laserfreq.comp in an existing 2.x emc config almost unchanged. You have to add a dummy hal net connection to make the gui allow setting ccw spindle. Without that i believe that M4 will work just fine in gcode.

Keep in mind that atleast on my laser with a 3ms pulse on time, 0-50% increases power and 51-100% actually decreases the cut depth. My theory is that after 50% the off time goes less than 3ms and you start to loose the added power boost of pulsing.

Most of my hal changes were some simplifications and conversions to a different raster style. The raster changes are independant of the duty cycle and ppi.

Do you have a specific problem? Also putting your experimental config in a git hub branch so i can see would help alot.
jv4779

Posts: 40
Joined: Fri Dec 09, 2011 10:54 pm

### Re: Beyond PPI? duty cycle

Thanks Jeremy,
I got it working with just the laserfreq. Results look good. I'm laser cutting parts for an OpenROV. After dialing it in, the new parts are less runny on the bottom. Thanks for a cool improvement!
sliptonic

Posts: 30
Joined: Sun May 16, 2010 6:02 pm
Location: Missouri

### Re: Beyond PPI? duty cycle

I think there is still room for improvement. Why the effective cut depth starts to drop off after 50% bugs me.
jv4779

Posts: 40
Joined: Fri Dec 09, 2011 10:54 pm

### Re: Beyond PPI? duty cycle

I've been running with the duty cycle implementation for about a year and it's been working fine. I'm in the process of making some other configuration changes and thought I'd implement some of your other changes like the raster and the controls in your pyvcp panel.

I have most of that working but, so far, I can't get the duty cycle or PPI leds to do anything. Also, the pyvcp.spindle gauge doesn't read anything.
My postgui.hal file wires them up as shown below and I see those signals in halshow. Am I misunderstanding what these controls are telling me?

net laser-freq-duty-cycle <= abs.0.is-negative => pyvcp.duty-cycle-mode
net laser-freq-ppi <= abs.0.is-positive => pyvcp.ppi-mode
net laser-freq-abs <= abs.0.out => pyvcp.spindle
net laser-power-cmd => pyvcp.power
sliptonic

Posts: 30
Joined: Sun May 16, 2010 6:02 pm
Location: Missouri

### Re: Beyond PPI? duty cycle

Those net connections look correct. If it shows on the panel depends on if the custompanel.xml has matching halpin=? in the xml. You also need to have "addf abs.0 servo-thread" or the abs.0 module will not update.

Since my laser is pretty much working I don't visit this forum very frequently. PM is a better way to get my attention.
jv4779

Posts: 40
Joined: Fri Dec 09, 2011 10:54 pm

### Who is online

Users browsing this forum: No registered users and 0 guests