0.9.09, GRBL, Linux: Laser either 0% or 100% power

Setup: Linux 16.04, LB 0.9.09 (version of 10th Dec)
When I upgraded to 0.9.09, I lost control over the power settings on my laser: When cutting a line, the Laser does not fire until I set the power >=50%. When setting the power >=50% the Laser fires with 100% power during cutting moves. So it is all or nothing which is a bit anoying.
I traced the problem down to the gcode generation: When I enter power vaues lower than 50% the power as set in the gcode by the “S” modifier is 0, and jumps to 100% at >=50%

My suspicion is, that the new feature:

“Reduced output decimals for GCode grayscale on GRBL machines to save bandwidth”

results in too few digits being send to the machine (or saved in gcode).

When I use the old version of LB (before 0.9.08), the problem disappeared, and I can happily score paper at 0.5% current over the laser threshold.
Please continue to allow this fine control over the Laser power, thanks

What is your $30 setting in GRBL, and the S-value max setting in LightBurn?

GRBL does not have a fixed range like Smoothieware does, so the only way I can see this happening for you is if you had $30 set to 1. If you simply bump it up to 1000 (the default) and set the S-Value Max setting in the Device Settings in LightBurn to match, you’ll get the old behavior back.

Hi Oz,
I think you are absolutely right: On my old LB I set the S-value max to 1 and the gcode outputs decimal places, as needed. The new version also has S_value max set to 1 (same config, I guess), but does not output any decimal places. So rounding resulted in either S0 or S1 - nothing in between. And since I run smoothieware in GRBL mode which has a range of 0…1 for S hard coded, S1 results in 100% power (http://smoothieware.org/g1).
I will see whether I can modify the smoothieware source code and change it to interpret S1000 as 100%.
The relevant part is in Robot.cpp Robot::process_move() if I am not mistaken. I will write a short note here, if I was sucessfull for future reference

Wait - are you saying you are using the Smoothieware device in LightBurn and it’s not emitting fractional S values?

Or are you using the GRBL device driver to run a Smoothie board? That is very weird - why not just use it as Smoothieware?

I have a Smoothieboard running Smoothieware compiled with the CNC flag set (enabeling GRBL mode). In LB I created my own GRBL device.
Honestly, I don’t recall exactly why I did not go with the non-CNC build (reprap style gcode flavour), but I think I wanted to try out the “Cut Through” feature whis was (is?) not available for Smoothieware. And since everything worked as I wanted, I stuck with it… (*)
My idea to change the Smoothieware firmware as outlined in my previous post did in fact work, my S-value max is now 1000 in LB and the laser power changes accordingly.

(*) Cut Through still does not work: Smoothieware automatically scales the power down while moving slower than requested in order to not burn corners and intricate details during slow moves. This seems to scale the power down to zero for pseudo-moves like G1S100 G4S0.1 whis is exactly what the “Cut Through” generates. One way would be to use the fire command for Smoothieware: fire 20 30 gives a pulse for 30ms at 20%. Just an idea

The fire command is an immediate command though - it can’t be buffered along with a GCode stream and job planned, at least according to the Smoothieware developers.

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