Overdrive (?) diode laser

Hi everybody,
I was engraving a power test on a ceramic tile (Norton method) with 100% power.
I was not happy with the picture that was coming up (black not really black but grey). Now, Lightburn allows you to increase the power on the fly, so I tried to increase the power first to 150% and then to 200%, thinking that I would not get any change because I had already set the power at 100%, but actually it worked, to my big surprise! The picture got darker at 150% and even darker at 200%. How is it possible? Once you set the power at 100%, I thought that it’s not possible to go over it.
In my understanding, when you set power at 100%, the controller output is already at its maximum level.
Can someone tell me something about it? Thank you

1 Like

Any help from anybody?

GRBL uses parameter $30 to set the maximum power, with the S parameter then varying the actual power between 0 and whatever is set by $30. The numeric value of $30 depends on which GRBL firmware version you’re using, but typical values seem to be either 255 or 1000. The actual maximum power from the laser happens when the S value equals the $30 value.

If $30 = 255, but the firmware expects 1000, then S = 511 will produce “twice as much power”, but the laser is still emitting only half of its actual maximum power. You could use S=1020, which looks like four times the maximum (!) before the actual output power hit the true limit.

Compare the settings for $30 and the maximum value used for S with what your firmware expects: perhaps there’s a mismatch.

Are you certain about this? I suspect this may not be how it works. My understanding was that the value in $30 actually determined the value used to describe Max power. So anything 255 or higher would get you max duty cycle. So in your example, S set to 511 will still only get you max value of 255. There is no other internally defined max value that would hold the 1000 value that I’m aware of. It’s been a while since I dug into the GRBL source code though.

$31 oddly doesn’t define the floor value, but rather defines the lowest addressable value between 0 and $31. So $30 and $31 are not quite analogs.

In any case, I think your advice to check value of $30 and S Value Max in Device Settings is solid.

Found something that might backup your view but needs further investigation:

The first two are the RPM_MAX ($30) and RPM_MIN ($31) Grbl settings. These must be
programmed into Grbl manually or setup in defaults.h for new systems. Altering these
values within Grbl after a piece-wise linear model is installed will not change alter
model. It will only alter the range of spindle speed rpm values Grbl output.

For example, if the solver produces an RPM_MAX of 9000 and Grbl is programmed with
$30=8000, S9000 may be programmed, but Grbl will only produce the output voltage to run
at 8000 rpm. In other words, Grbl will only output voltages the range between
max(RPM_MIN,$31) and min(RPM_MAX,$30).

So $30 does act as a limiter to the range of voltages output. However, apparently the original Max and Min values are compiled in as you indicated.

From a quick reading it looks like the values at compile time for SPINDLE_PWM_MAX_VALUE ($30) and SPINDLE_PWM_MIN_VALUE ($31) build the model.

Runtime changes of $30 and $31 will only further limit within that range. S values outside of that range are not addressable.

However, I may be reading the code wrong.

So, bottom line, the correct factory settings for $30 must be used if full power is to be made available. S Value max should then be made to match $30, not vice versa.

Heck, no. I am decreasingly certain of anything these days … :grin:

Or, more precisely, the numeric value to produce 100% PWM, because that’s what really comes out of the hardware pin.

In any event, the maximum laser power happens when that pin is high “all the time”, which may correspond to a 99% PWM value in order to allow a very slight downward pulse to keep the power supply’s filter happy. More than that, it cannot produce, no matter what the software may indicate.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.