I've been inside Universal Laser Systems lasers. The laser doesn't have a throttle, just an on/off for the beam, and it's like this:
The beam is about 0.008" dia, 1/125th of an inch. If you specify <100% power in vector mode, there is a Pulse Per Inch (PPI) factor used. If you specify 50% power 300 PPI, it cuts at 1/600th in on, 1/600th in off. When it's on it's full power. That's not wide enough of a stop to leave any unburned length. For any given point, it receives less exposure to the beam. When hitting the corners of a square, of course, acceleration rules apply to full stop/full start the vectors, and since it's less than the commanded speed, the exposure would be increased past the specification. So it does add a DIFFERENT pwm to reduce power when the speed is below the target command, but it's fast- like 1000 pulses per inch, or might be in the time domain, I don't know. It's not affected by the commanded PPI. This does seem to mean that if you command 50% power and 500PPI, when it does the start/end of vectors and isn't at commanded speed, there's a series of 1/600th in on/off segments, AND within the ON segment it's pulsing at 1000PPI. With rastering, there's two modes. One is more "analog" and does high frequency PWM based on shade as it passes. The other uses a fixed-length PWM as it goes, based on shade. Like on 333 vertical raster lines per inch, it has a 60-lines-per-inch horizontal resolution. That is, a 127 value in an 8-bit greyscale is 1/120th in on, 1/120th in off. It's an offset pattern, every other line starts 1/120th of an inch offset, to make a diamond-shaped grid. There's also random-density mode, where it makes dots. But it's hard to really nail down what it's doing- the laser must burn in a line. It can't actually do a circular dot without stopping, which it doesn't do. It can burn pill-shapes of varying lengths. Just thinking on this- you COULD specify that a straight 50% power vector line is a long string of G-codes- M62, one G11/600th in segment on, M63, one G1 1/1600th off, interleaved over and over. It would be a VERY long file, and might have slow execution, and won't take into account acceleration. Also, it is not uncommon to want to change power on the fly, and that'd be impossible- you'd have to regenerate the whole G-code. FYI, in my experience with ULS lasers, yes you can change the speed & power of VECTORS on the machine after the job is generated. However you cannot change the number of vertical lines per inch on rastering. You can change the raster speed. Which makes sense. So the way I interpret it, no, that's all totally wrong to generate G-code pulses within the vectors, instead you'd generate the PWM within LinuxCNC's software. But, now, rastering- that's genuinely complicated. Like I say, at least 2 modes here. In either case I can't imagine how to do it with LinuxCNC's software. In the case of the "analog raster mode" (using a high speed PWM and changing it rapidly), well I still don't get how you'd specify all the raster data. You could use the Z to specify the power, but then it'll want to ramp into and out of pixels, which sounds pretty wrong. e.g. with 100 DPI 50% gray, it would be: G1 X0 Y0 Z0 G1 X0.05 Y0 Z1 G1 X0.10 Y0 Z0 And you'd end up with a sawtoothed path, instead of a square pixel. That's not quite right. It would have to be: G1 X0 Y0 Z0 G0 Z1 G1 X0.05 Y0 G0 Z0 G1 X0.10 Y0 Which might work, but it sure sounds awkward. Danny On 4/30/2016 7:22 AM, Nicklas Karlsson wrote: > If you have problem with PWM signal generation there are plenty of cheap > micro controller development board available although protocols may be > worse. I guess it could be an idea to search m-codes for "professional" > laser cutters or maybe reuse codes usually used for spindle. > > 2016-04-30 3:48 GMT+02:00 Bruce Layne <linux...@thinkingdevices.com>: > >> I still haven't built my 3' X 5' 80W CNC laser, but it'll be controlled >> by LinuxCNC when I do. I've had a big pile of laser parts for almost >> three years. Maybe later this summer, if I finally find some mojo. >> >> LinuxCNC is better for cutting and embossing/engraving lines. LinuxCNC >> is not good for raster laser engraving. Most of my laser jobs are >> cutting and light scoring which are essentially vector jobs, but I do >> have a few logos that are currently raster engraved on a friend's laser, >> which is essentially operating as a Windows printer using a proprietary >> printer driver, under CorelDraw. My logos are simple, made of solid >> shapes, and I expect to render them as vector engravings by outputting >> vector image files from Inkscape. That's the plan, anyway. If you want >> to laser engrave photographs, you will probably need some way to raster >> engrave. In that case, LinuxCNC may not be a good option for you. >> >> I've seen a few CNC lasers that used the -Z hack to turn the laser on, >> and that does have a certain simplicity, but I think it's too kludgey >> with too many tradeoffs and undesirable behaviors from the trajectory >> planner. I plan on using M codes to turn the laser on and off. I also >> plan on using the Z axis to drive stepper motors to jog the table >> elevation when setting up a job at the correct height. In theory, I >> could laser engrave 3D objects by using the Z axis as well, but I don't >> plan on using any Z motion in my laser G code, other than maybe a fixed >> Z offset at the beginning from the homed Z position is I decide to have >> a hardware Z=0 with relative offsets from that for each job. I also >> plan on a light duty 4th axis for laser cutting round objects. One of >> my production jobs requires laser cutting and embossing cylindrical tubes. >> >> For reduced power settings, I'll pulse width modulate a signal to turn >> the laser on and off fairly quickly. >> >> Many people would assume that it'd be easier and faster to draw >> something in CorelDraw and "print" it on the laser, but I hate it, and >> would much rather have direct control of the G code. The CorelDraw >> print driver for the laser may be faster when making one or two of >> something, but it gives me no control over the order in which features >> are cut on the laser, which results in clumsy production jobs that are >> difficult to run because the order of subsequent steps are random, and >> there is a lot of wasted motion. I want the control that I get writing >> G code by hand, in a logical progression. To some extent, this is an >> extension of the lack of control I have in Windows, compared to Linux. >> I think it's more of a philosophical difference than a technical >> difference. >> >> Sorry, but I haven't implemented any of this LinuxCNC laser stuff yet, >> so I have only this generic advice and no specific LinuxCNC example code. >> >> >> >> On 04/29/2016 08:29 PM, Danny Miller wrote: >>> Having some preliminary thoughts about LinuxCNC's appropriateness to be >>> a laser cutter, like 120W CO2. The other option is the open-source >>> Lasersaur or Axecut. Those aren't particularly advanced trajectory >>> planners or anything. >>> >>> Can it be a good tool for lasering? >>> >>> I did see where some people had done it with some hacks, but I don't >>> know how practical they are. There was something about using a negative >>> Z-value to turn on the laser. >>> >>> A lot of things come to mind. >>> >>> One, often the laser needs to turn on and off quickly, without >>> stopping. If it's technically implemented as a Z-move, it would slow to >>> move the nonexistent Z-axis. Would that work by just changing the >>> Z-acceleration to something ridiculously high? >>> >>> Two, sometimes we do reduce the cut power, to only mark the surface >>> instead of cutting it. Initially you reduce the depth of cut by >>> increasing speed, but if it's paper, you can't increase the speed >>> enough, you have to cut back on the power. And the required power will >>> change inside the document. How would that get specified, just with a >>> differing Z-depth? >>> >>> When not at the specified speed due to acceleration limits, the software >>> needs to reduce the power to avoid delivering more energy/mm than the >>> user specified. Actually this sounds like the easiest part, presuming >>> we can get an accurate instantaneous speed. >>> >>> All power adjustments come via a PWM pin. >>> >>> Danny >>> >> >> >> ------------------------------------------------------------------------------ >> Find and fix application performance issues faster with Applications >> Manager >> Applications Manager provides deep performance insights into multiple >> tiers of >> your business applications. It resolves application problems quickly and >> reduces your MTTR. Get your free trial! >> https://ad.doubleclick.net/ddm/clk/302982198;130105516;z >> _______________________________________________ >> Emc-users mailing list >> Emc-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/emc-users >> > ------------------------------------------------------------------------------ > Find and fix application performance issues faster with Applications Manager > Applications Manager provides deep performance insights into multiple tiers of > your business applications. It resolves application problems quickly and > reduces your MTTR. Get your free trial! > https://ad.doubleclick.net/ddm/clk/302982198;130105516;z > _______________________________________________ > Emc-users mailing list > Emc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-users > ------------------------------------------------------------------------------ Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users