Hello, I’m encountering an issue: my laser finally works, but its power is too low. Thus, I’d like to adjust the maximum power setting from 255 to 1000 for the ‘S’ parameter. However, in Lightburn, nothing changes when I make this adjustment. Oddly enough, the commands M9, M5, $i, and $$ are not recognized. I’m using the V1CNC_SkrPro_Dual_2209-2.1.1 on an SKR Pro 1.2 board.
Commands starting with $ are, as far as I know, are GRBL related commands, and while they do work with GRBL-compatible firmware such as FluidNC, they don’t work with Marlin firmware, which is what runs on SKR boards.
There is a fairly well discussed issue with power settings mismatch problems, in which 0-255 is one scale in use, while 0-1000 is another scale in use. I’m not an expert on it. We need someone who is an expert, such as @robertbu, to chime in.
As per Lightburn docs, if you are running Marlin, then in Lightburn you should create the device entry manually (not do auto detect):
The simplest way to proceed is to click Find My Laser and let LightBurn locate and identify your laser. If that doesn’t work, your laser may connect with Ethernet, or if you have a Marlin device, you’ll need to use Create Manually.
…And in the dropdown list you should manually select “Marlin” as the device type.
I’ve used LightBurn with Marlin based lasers. On an SKR Pro, even, but I save gcode and put it on an SD card. I had some funny stuff happen with LightBurn directly connected via USB and just stopped doing that.
Regardless, Marlin will not respond to $$ commands.
I’m starting to despair; I’ve been trying for nearly two months to get my CNC to work properly, but I always encounter a problem. Is there a stable and functional version of Marlin available?
Marlinbuilder releases will have firmware for the SKR Pro. You either want the Dual or DualLR variant for the SKR Pro depending on which machine you’ve built
That firmware should work fine, and manage a Primo just fine.
So you need to define a machine to LightBurn based on Marlin. I’m going off of old memory here, but a something that it might be not allowing it to work:
Baud rate. V1 Marlin IIRC uses 250000 baud for the serial port. Most things want to default to 57600.
Aside from that, keep in mind the different firmware language, home is G28 and not $H
I recommend you try to connect using a plain serial connection (I like putty) and see if you can do some things. Commands to try:
G28 ; home the machine
G0 X10 ; move 10mm to the right
G0 Y10; move 10mm away
Perfectly fine, but you have a system that isn’t working. As such, we want to test the individual parts.
Part 1. Can you connect to the mainboard? So you seemed to be able to connect as a GRBL controller, but you say nothjng works as Marlin. Well, if you can connect and get a response from a plain serial connection, it proves that the connection works.
Part 2. Get LightBurn configured for a Marlin board. You need LightBurn to generate the correct gcode flavour, or else you’re no further ahead. The SKR runs Marlin, I don’t think it has a GRBL port available. So get LightBurn configured to connect correctly. This requires that it generates Marlin gcode.
Once you have those parts in place, you should be rid of the error, and have a working machine.
At one point, long ago, sure. but the flavours of gcode that the two run are now significantly different, and GRBL has an entire class of gcodes that Marlin will not recognize at all, as well as some that behave differently. There’s a reason that LightBurn has a different setup for the two.
This may be where I don’t understand what you’re having trouble with.
in the Device settings tab, I have mine set up like this. note the “Inline” for laser commands, I believe that this is the most recommended way.
In the Gcode tab, you will need to have
M3 I
in order to initialize the system to receive ion-line laser power commands. Set up like this, LightBurn will issue the G1 commands with an “S” parameter for the laser power.
Also note there, that I have the laser power for this machine set up on a scale from 0 to 1000. (the "S max value box below the Inline command) Marlin may be set up for that max value to be 255, so you should set that.