Can we add hotkeys that aren't in the list?

I’m setting up a Stream Deck to operate my most commonly used lightburn settings, and also i have a page on the deck to control my GRBL laser for things like moving the carriage, home, frame, start, pause etc.

Sort of replicating what you can do with a ruida controller.

But i can’t seem to find a hotkey for ‘Set Origin’ it’s a mouse clickable button in lightburn, but i’d really like to be able to move the laser head where i want it, then click a button to set the origin,

Is it possible for us users to add hotkeys, or is it something that needs to be done by the devs?

:

and on a similar but slightly different topic, i’d really like to be able to have 2 speeds the carriage moves at from the hotkey buttons,
when i last used a laser with a ruida controller i recall pressing a button that would switch between rapid moving for getting the head in the general area at say 100mm/s, then switching to ‘fine control’ mode of something, where it moves at maybe 5mm/s.

Is there a way to do this in lightburn via a hotkey? i know i can use the mouse to change the speed up or down, but i really want to not have to use the mouse other than for laying the job out in the software.

If that’s not possible, i’m wondering if there’s a hot key that can switching in and out of continuous jog mode?

Then i could have a rapid move setting that is in continuous move mode at say 100mm/s, then a fine move setting that switches to jog by distance, and set that to say 0.1mm per press of the arrow buttons.

Maybe the Move Window ToolTip that reference the Modifier Keys Ctrl and Shift can help:

ahh, i never noticed that tooltip before… likely because i’ve always had it in continuous jog mode… and it could be a new thing in the pre release version i was told to download to fix the speed settings being on 0.0 on startup.

so, that big or small steps thing works just for the non continuous jog mode… which makes sense i guess as ‘small’ or ‘big’ steps does not translate to the continuous jog mode.

wonder if it’s possible to have something similar in a future build where control and shift keys can give faster or slower speeds when using continuous jog?
And maybe a hotkey to switch between continuous jog and steps per key press mode?
The icing on the cake would be hotkeys to adjust the speed, and maybe distance settings?

Then a cheap 9 button usb macropad could be used to control these GRBL lasers via lightburn with a keypad like the ruida controllers do.

:

I had a play with these new slow and fast move keys in non continuous jog mode,
once i’d changed my controller settings to have ‘soft limits’ enabled things went better (with soft limits off in the device settings, when i pressed the move button too many times it crashed the head when it ran out of travel.. as you’d expect, turning soft limits on in the device settings means it can’t do that anymore, so that’s 100% a me issue, not sure why that’s off by default on my K40+ tho)

Next i set the movement distance to 5mm, so if i press just the keypad arrow keys, it moves 5mm per press,
if i hold down CONTROL and press the keypad arrow keys, it moves 1mm,
but if i hold down SHIFT and press the arrow keys, it seems not to be working as it moves 5mm.

BUT … if i hold down SHIFT and click the jog buttons on the screen, it moves 25mm, so the small, regular and big movements thing is working, just the big movements are not working with the hotkey and SHIFT.

I know it exists but have to test to tell.
Maybe with some programmable external keypad…you can link keys to clicks arrows etc…I know some have configurable icons.

https://pt.aliexpress.com/item/1005010450118119.html

DIY:

i bought a 15 key stream deck just to use with this laser cutter and lightburn…
which at £150 (as i just had to buy the scissor key version to see if the buttons feel better than my 32 key stream deck with regular buttons (it doesn’t)) costs more than half what a ruida controller does,
So in my head i’m thinking why didn’t i just convert this K40+ to ruida control, as that does everything i want without all my workarounds … like ESP32 air pump, solenoid and fan controllers, and now hotkeys and macros pads to control the laser from buttons instead of the mouse.

Thankfully i enjoy finding solutions to make things do stuff they shouldn’t, and if those clone stream decks work as well as the real thing, then that could be a cheaper option for any others who want to do similar… and those macro pads with fixed keys are even cheaper, but they 100% need Lightburn’s hotkeys to do everything as they are far less programmable than stream decks.

:

So far on the stream deck at my laser, i have a button to double press to start lightburn up,
Another button to press and hold to turn on the power to the laser, cooler and fan / air controller,
A single press button to run the extraction fan on high speed for 5 minutes (handy to use after cutting smelly materials)

I also have a play / pause button that needs holding down for 2 seconds to start the job, then a short press and release pauses or unpauses the job (which i noticed lightburn does not re-send the M8 air command when it’s unpaused, so when i unpaused it on a cutting layer it resumed the cut on low air instead of high… it’s also not that easy to tell when the machine is paused, i accidently paused it during framing and couldn’t figure out why it would no longer do anything, a big flashing ‘Laser Paused’ box in the middle of the screen would be handy here)

:

I think the stream deck has a plugin to do ‘move mouse to a position on the screen and click’ …

So i could set up a ‘speed change button’ that moves the mouse pointer to the ‘Move Speed’ box, delete what’s in it and replace it.. then click the mouse out of the box so the main lightburn window gets focus again to respond to hotkeys.

So say it’s in continuous jog mode with speed set to ‘100’, that could be replaced with ‘20’ for slow speeds, then press the button on the streamdeck again and it changes the number back to ‘100’

But i have used ‘mouse auto move macros’ before for driving simulators, and they rely on the screen always being the same resolution and the program being full screen in the foreground, or they can click things you didn’t intend them to.

But if hotkeys in the absence of dedicated lightburn hotkeys that may be my only option (i really should look and see if there’s a ‘hotkey suggestion’ page on this forum.

:

I’m also playing with one of those £20 usb macropads, got one with 12 buttons and i’m thinking of permanently mounting that to the laser,
As i can imagine that’s the kind of thing most people would do rather than dedicating an expensive stream deck to a cheap K40 laser,

But the macro pads tend to only allow basic functions, so everything would need to be simply replicating hotkey combos you’d do on your computers keyboard,

You can duplicate your Laser Device and set the duplicate as Custom GCode then on your Device settings you have a few boxes where you can force the M8 command - maybe after or before the resume code…

oh that is awesome,
time to get into messing with the custom g-code settings it seems,

Is it just basic G-code commands that can be entered in those boxes, or could it be more complex stuff like perhaps an if statement that checks if M8 was active when the pause was initiated, so it only sends an M8 command when unpausing if it was on a cutting layer… so it does not turn on full flow air if i paused during engraving.

If the Custom GCode had a field for Cut moves and other for Fill moves it was easy. Unfortunately it has only a field for general Cut moves.

The output that you can control that obey to conditions are the position and power values:

Optional and Required Values]

(Device Settings: Custom GCode - LightBurn Documentation)

Surrounding the letter before a variable with [] will tell LightBurn that this portion of the command has not changed since the last emit. Putting a * in front of any variable will tell LightBurn to skip the entire line if it has not been changed.

  • G1 X{x} Y{y} Z{z} will always output the X, Y, and Z values.
  • G1 [X]{x} [Y]{y} [Z]{z} will skip any values that have not changed.
  • M106 S{*power} this will output the M106 command only if it has been changed.