Intense study of MOPA and LB- lessons learned, possible features

Have an JPT M7 “300W” YDFLP-E-300-M7-M-R, lens with a 110mm wide field, 5000mm/s SG7110 head, got the timing set pretty accurately.

First off, lesson #1 this is fundamentally different than running a fiber laser cutter, which cuts by melting a channel and blasting the molten metal through with a high pressure air jet. Cutting or carving depth with a MOPA requires an energy pulse that explodes a particle off the surface but without resulting melting. If your zone melts, it will fill in the cut and it’s not going to cut/carve. Trying to give it more power or run slower will be counterproductive past that point.

Lesson #2: You MUST know the datasheet for your source. The JPT’s Q-pulse options are not continuously variable. Mine has 17 Q-pulses: CW (1ns) ,2 ns, 4 ns, 6 ns, 9 ns, 13 ns, 20 ns, 30 ns, 45 ns, 60 ns, 80 ns, 100 ns, 150 ns, 200 ns, 350 ns, 500 ns. LB will let you type in 5ns- but according to my datasheet (CORRECTION, the manual for mine DOES say it rounds, but the manual I found first for another JPT M7 said rejection) , it says if you enter an undefined value like 5ns, it DOES NOT “ROUND” TO A NEARBY PULSE EITHER WAY, it will ignore the q-pulse command and and use the last valid Q-pulse it had. So your tests will be total junk if you try a test pattern at 30ns, 20ns, 10ns, and 5ns. The 10ns and 5ns will actually fire a 20ns pulse. Or, 5ns would give you the 150ns pulse if that’s the last valid one it saw. It could be anything, so your calibration tests will be nonsense.

Also in JPT M7 datasheets, every Q-pulse has a “cut-off” freq in addition to max freq. If you’re below the cut-off, the machine is supposed to give a constant energy per pulse so net output will increase with freq, like you’d expect. Above the cut-off, it rolls back what I assume is the power to avoid overdriving the source. If your datasheet says x ns has a 500KHz cut-off and you enter 4000KHz, it will reduce the net intensity of each pulse by a factor of 4 but still supposed to be pulsing on and off at the requested 4000KHz. If you try to run tests above cut-off, it’s going to behave totally differently so don’t try to compare these. I am not sure how it limits the net power- I assume it’s the same pulse you’d get if you enter “25%” in LB’s Power field. Hey, for this specific case, does that mean entering 25%-100% in LB’s Power field will give the same limited result? I think it has to. The alternative would be that entering “100% Power” gets you the 25% “limited” pulse and entering “50% Power” gets you a 12.5% power pulse… my first guess is that it wouldn’t work that way.

If you run above max freq, well, I actually don’t know what happens exactly. Datasheet does not say.

You need the datasheet for YOUR source or you’re basically in the dark forever, tripping on invalid Q-pulse lengths and unknowingly operating in cut-off region, and calibration tests will defy all logic and seem to do bizarre things. I know the JPT M7 100W has an “E” and an “E2” version and they’re totally different. I know the JPT M7 300W I have specifies a “YDFLP-E-300-M7-M-R” and “YDFLP-E-300-M7-L-R” and they’ve got different pulse charts. In fact, JPT said they couldn’t give me a datasheet for model number “YDFLP-E-300-M7-M-R”, they had to know the actual serial number- which means they changed the operating parameters during production and DIDN’T increment the model number. I only know this is true of the 300W. I don’t know if it’s true of the 100W or -E- or -E2- or anything else.

You need to take the side panel off the JPT source box to read the serial number. On the 300W, you remove the corner screws on the left- front left top, rear left top, and the upper rail can be removed and the left panel slid upward. You may need to loosen or remove the bottom left pair too if it binds up there. This will not break any warranty seals.

So, if you have a “JPT M7 100W”, that’s not enough info to operate it. You need to be 100% sure what q-pulses are defined, and where the cut-offs are. If you see settings online for a JPT M7 100W, there’s no telling if they’ll all actually work that way on your machine. I wouldn’t even trust info or settings chart from your brand vendor (Cloudray, Monport, etc). You need to be sure you have the correct data for q-pulse widths and cut-offs for the specific box you have and it looks like that has to come from JPT specifically for your serial #.

There is also a graphical chart showing the energy delivery profile of kw vs time, for each Q-pulse. I assume 100% power. They usually shoot up to a peak in the first part of the pulse, and then drop back towards a more stable value, then the pulse ends and power output goes to zero. The 60W and 100W have DRAMATIC increases in the initial surge of power on the shorter pulses. The 200W and 300W are more tame and the delivery is more flat acoss the pulse. But the 100W chart had something like a 16KW peak on one of the shorter q-pulses, whereas the 300W only peaks at 6KW. But the 200W/300W have much higher cut-off frequencies.

Lesson #3- your laser will come with a calibration file “markcfg7” that was for EZCAD, but LB can use it too. It not only specifies some essential hardware details (does it fire when the fire signal is high, or low??) but appears to have calibration data that I think is for flattening out lens distortion. If that’s true, this would require recalibration when changing the lens. I don’t know how to do that.

You MUST do your own calibration for Start TC, Laser Off TC, Polygon, End TC as well as Jump Speed and Min/Max Jump Delay. Otherwise, the ends of vector lines won’t quite meet up, and all your rasters will be trash unless it’s only done unidirectionally- to use a change in scan angle, or even just bidirectional scan, these need to be accurately set.

These guides are good. You will need the test pattern files. https://www.youtube.com/watch?v=gFvbrNnvijo
https://www.youtube.com/watch?v=NdFr70yoRyA&t=4s

Lesson #4: Setup. In addition to an extractor-filter to keep from coating your area with destructive metal dust, you need an “air assist” for 3 purposes- 1. it keeps metal dust that has already been blasted off the surface once from falling back into the engraving which would keep the laser from reaching the surface. Often, with small line intervals, it will only push stuff off in one direction anyways until it falls off the edge, but assist is usually better. 2. if you are doing something aggressive- and with my 300W that’s often the case- sparks can fly as high as the lens, which surely isn’t going to be good for the lens. A strong blower will push them off to the side. and 3. it can cool the metal so it doesn’t warp. But a strong blower can easily blast a coin blank right off the bench, too.

There’s one particular “curiously powerful” CPAP blower the Voron 3D printer guys discovered. The air velocity and static pressure these little things can do on 24V and a few amps is AMAZING.
Amazon.com: SHUDKBNX for Voron 2.4 for Trident 3D Printer for Voron Stealthburner CPAP Fan 7040-24V : Industrial & Scientific They’re cheaper on AliExpress. Plus AE has a kit with an inlet filter which is a good idea, because metal dust swirling around.

That blower is adjustable, but you’ll need a solution to hold it in place. Seriously, it makes a lot of thrust and will push itself, and not square anywhere, so you can’t lean it against a brick or anything really simple like that. And it is a good idea to make an adjustable mount to make it blow where you need it.

I make a stand that bolted to the M6 holes in the table, but it’s already become a major prob. I got a big piece of stainless scrap and I need to cut a piece off- probably want to cut the full 110 one way, then flip over and cut the other way, so 220 is the widest thing I could ever cut. But the fan mount is already in the way.

Overall, the JPT M7 MOPA (looks like the other models too) only has a short cable that mostly required putting on the bench beside the work surface, and it’s creating major limitations since I can’t work on the “middle” of a longer thing. The cable was not long enough to allow me to put the source on the ground, not while maintaining a large radius bend on the ends of cable. Well, lo and behold, when I opened it up to find the serial number, I found that pre-installed non-detachable fiber cable has an extra ~10 ft coiled up inside the case! The short external cable you can see is the fiber plus some copper wires for galvo power and signals. Pulling more out WOULD mean you would need to build an extension for the copper wire too. It’s not a really big number of conductors, but they are high speed and also draw significant current surges so ground loops as well as noise can be a concern.

The “all-in-one” MOPAs lay the source horizontal and place the work fixture and tower on top of it. But it’s got an insane flaw- there’s no case wall in between. The holes go straight through and allow metal dust to fall into the power supplies, controller card, and the MOPA itself. It’s designed to fail. If you just put tape on the bottom of the work fixture, well, often a fixture will have bolts so long they have to reach past the bottom. And dust will still fill the holes and work its way between the tape and table. Bad idea IMHO

2 Likes

Well, that would make the Q-Pulse option in the Material Test non-useful, as you can’t specify discrete options. Now I want a “custom values” option in the Material Test dialog. That would make using a range of discrete Q-Pulse values possible, and it’d also mean that I could do a proper logarithmic distribution of steps for speed and the like.

Right, but that’s not the only prob with the way Materials Test works.

The “cut-off” freq should basically be considered “maximum” for most purposes, and it changes for each q-pulse type. Unfortunately there is also already a parameter the manual calls “max frequency” for each pulse type, so it’s confusing.

The source’s top average power happens at the cut-off freq. On mine, for 2, 4, 6, and 9 ns, it’s 4000khz, but then it’s different for each further type- 20ns=3000, 60ns=12000, 500ns=190

The energy in each pulse is supposed to basically be constant underneath that, so increasing freq should increase average power in an approximately linear fashion. Above cut-off, it’s in constant-average-power mode and increasing the freq decreases energy pur pulse to maintain the average.

So, if you were to sweep, 90% of the time the question is “what happens when I do 1000mm/s at machine full power for each of the pulse types?” … “ok what about 50% of the machine’s full power?”

“Full machine power” means 100% in the power field, but then you need to use the cut-off freq for that q-pulse type.

And the second sweep “ok what about 50% of the machine’s full power?” is nuanced. That could be “50% Power” in the Power field and “100% of the cut-off for the specified q-pulse”, or “100% Power 50% of cut-off freq for the specified q-pulse” The latter is probably more interesting I think.

What I’m saying is that giving freq as an absolute number isn’t actually that useful. The freq should be stated as a % of the cut-off freq for the q-pulse type used.

That’s true of both materials test sweeps and actual general use thinking.

Otherwise, this is the confusing performance I went through:

“Let’s give it full power at 20ns and see what happens” “OK, 60ns, 100% Power, 1200khz by the book”

“OK, let’s try 20 ns” “OK, change q-pulse to 20ns, leave Power at 100%”. Well, that cuts output to 40% of what it can do because the cut-off for 20ns is 3000khz. You have to look up both.

And if you go the other way, “ok, let’s go from 60ns to 100ns” 100ns cut-off is 800khz so the machine’s averge power is basically the same as the 60ns but the pulse power has been limited internally.

I’m saying that LB’s machine config should have a table of defined q-pulse types and each has the cut-off and max freq entered for it.

From there, you should generally work the “Frequency” field as % of cut-off.

So I can say:
100% Power, sweep all the defined q-pulse types at 20%, 40%, 60%, 80%, 100% of cut-off freq for that pulse type"
then
“sweep all the defined q-pulse types 100% of cut-off for that pulse type at 20%, 40%, 60%, 80%, 100% of Power”

was inside the case again to hook up that db9 rs232 port and realized the WHOLE cable has the extra length- that copper wire galvo control cable also has equal slack coiled up. so anyone can pull more cable out any time you want and extend the distance from the galvo fixture to the source and control box. no work, no new signal integrity probs

the only thing you need is new longer piece of split loom protective tubing that encloses the fiber as well as the copper galvo cable between the two cases. That’s all external there’s no slack hidden inside. I measured, it’s 25mm OD. i just ordered a bunch from AliExpress

So i ran q-pulse tests with my 60W M7, but it did not stay with the last valid number. Like halfway between 150 and 200 it quit using the 150 and started using the 200. So I think translation maybe bad, "nearest " valid q-pulse instead of “last” valid q-pulse setting.

Lots of good info!
Here is one test card showing grouping around 150 going to grouping around 200, so if using “last valid” it wouldn’t change up to 199, but this changes between 160 and 180 indicating “nearest valid”

I think I see the simplest, highest return LightBurn improvement needed.

The laser NEEDS a minimum line time and “max layer content” too.

Once stainless starts to melt, the cutting process pretty much stops. Its performance degrades quite a bit before it stops, too.

The galvo laser is basically the opposite of using the a gantry bed cutting laser. Metal does not turn itself into a gas like acrylic or wood does in a CO2 cutting. Simply hitting metal with energy to melt it doesn’t do much- it can melt in place in a little pool but will just re-form in the same spot. In a gantry bed laser cutter, it will Hitting with a high intensity pulse causes a particle to explode off the surface as a spark. But once the material starts melting, it won’t react by throwing off a spark anymore, because it’s a liquid or close to it.

Line width and layer size are highly variable, and there’s just no way to control them currently. Consider the common coin engraving. The starting and ending lines are almost zero length, so after a line gets hit once, it will get hit again almost immediately at almos the same points. It needs a short time for the surface heat to dissipate.

But the real prob was engraving or cutting stainless, which is very poor at shedding heat. All 3D-sliced graphics are heaviest in cutting per sq mm on the first layer and it only ever goes down from there. Often layer 1 rasters 100% of the design, and the next 10 layers nearly 100%, then like 200 layers with notably less content to cut, enough that substar Then by the end there may be 50 layers with only tiny details on them.

So, stainless often has a risk of overheating on the first few layers, but then that problem drops off since it’s delivering a lot less “fire” pixels per minute.

OK, I see a real limitation with how this is running, and LB could actually fix this in software!

The melting issue will come up at higher power levels specifically when your line interval approaches the spot size. If you go below it, then you hit a wall- the surface heat from one pass gets overlapped by the next pass, and the surface overheats and will not cut.

This is completely avoidable by interlacing. e.g. you ask for a 0.015 line interval and 2:1 interlace. It first rasters every other line, so 0.030 stepovers (0.00, 0.03, 0.06, 0.09). Then come back to the start and do every other line (0.015, 0.045, 0.075, 0.105). Each pass should take only a little time more than half the time of a single full pass, so not a lot slower.

The interlacing should support other ratios (e,g, 3 passes stepping over 0.045 for a 0.015 LI)

Actually, the rationale for this next one is more than I can do this late- but this also needs to be an option between layers. Right now, if I specify 0.02 LI with no rotation, there will be visible lines. The raster is much more accurate without rotation or bidir. But that’s the problem. What needs to happen (forget about the interlacing I just laid out) is the even layers start at x=0, then x=0.02, 0.04, etc. On the next LAYER, just start at x=0.01, then 0.03, 0.05, etc. And again ratios other than 1/2 should be supported.

This shouldn’t even be less accurate. The raster content may be 5.01mm tall rectangle to begin with, so right now it can start the raster at the exact edge but can’t do the last raster line at the exact edge.

I can’t think of a way to test and demo this with the current software. Right now, a non-rotating raster can’t do a LI greater than the spot size because it leaves significant lines. When you have a powerful source and scan speed is your limiting factor, you’d really like to do this.

What I expect, though, is that a pass with a 0.03 LI leaves a line on one pass, but that will be wiped away by the next pass that is offset to fire right on the high spot of that line. There will be an artifact of that line at the final point where there’s not a pass beneath it- either because it’s the final pass overall, or this is just the level the depth map says to stop cutting at- all the cut surface will have this line step artifact. It will appear as lines on a flat feature, but moire lines when it goes down a curved surface. But the amplitude should be pretty low and a light cleaning pass should polish it off anyhow.

Both of these allow for faster cutting with less detail loss, and no reason to hold back the power if you have it.

I could see where an system could be even smarter and do 0.03 LI steps if it’s not the final pass for that area of pixels, but if it is, then do 0.015 steps for that area. Yeah it’s complicated to figure out how a raster path would work if it’s doing 0.03 on some parts of a layer and 0.015 in some others- if it’s even possible. And I don’t know if that would be of much benefit in the end.