Duet3D RepRap M3 support, OR post-processor possibility

Hi Oz;

I am trying your amazing software on my DIY marker based on Duet3D (RepRap firmware) and I have a minor issue which I’m sure it’s easy for you to resolve (if I’m not doing it all wrong. But I searched around the forum and didn’t find anything about this particular issue of my concern)

To my understanding, and for the sake of clarity, in RepRap, M3 (and M4 for CCW) command turns the Spindle on in CNC mode or Laser on in Laser mode. If I set the machine in Laser mode and set S1 (Sticky laser mode) each G1 command keeps the laser on during the move in accordance to the last M3 Sxxx command. M5 command sets M3(or M4) to S0 and thus turns the spindle/laser off.

Now with Lightburn, everything works fine when I export GCode, except that for “Lines” only (and not lines within the fill process), the M3 command (to trigger the laser beam on) comes without Sxx parameter (to set the laser power) and therefore, although the motors move the head with G1 and although M3 is set, the laser beam won’t be fired because the firmware assumes S0 for M3. So the result is lots of missing lines.

Like I said this is not the case for “Fill” filling lines and each of them come with its own Sxx parameter value (But not in “Offset Fill” quite strangely!)
For example to draw a 10mm x 10mm box the exported GCode is something like this

; Layer name
G90
M3
G1 X10
G1 Y10
G1 X0
G1 Y0
M5

The current remedy for me is a painful one: Every single time I will have to open the saved GCode in a text editor and Replace every M3 with M3 Sxx based on the laser power I needed for its layer. And it’s prone to mistakes and misses let alone being time consuming.

An easy fix for it is to have the requested laser power printed next to each M3 (or even better in every move line like it is for Fill and not with M3 so I can turn off Sticky mode for more safety).

Is it something you can add, please? Or am I missing something?
You fix this little thing and you will bag a happy customer (and many like me I guess!)

If not possible for you, is there a way that I can create my own post-processor for a customised output?

Many thanks
(PS. RepRap doesn’t support M2 command, instead it’s M0 and M1 - But that is very minor problem as M2 is ignored anyway)

Which device profile are you using, and in which version of LightBurn?

The S command is emitted once for the first cut, and then again only when it changes. The small bit of GCode you posted doesn’t have an S parameter at all, which would be a bug. Is that the entire file as exported by LightBurn? Was there other content in the file that set the S parameter earlier?

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