I am running a Ortur laser master 2, and have had a fair number of interruption issues. 98% of these issues were due to having a loose belt, which I resolved. However recently on a 7.5 hour job it got interrupted at ~25% completion. This is obviously not ideal and as anyone who has had an interruption issue knows this is a huge pain. So I spent the day trying to figure out the best way to resume from the stopped position (or very near) and this is what I came up with.
TLDR instructions at the bottom.
my final workaround solution is specific to GRBL machines, for anything else I doubt it would work.
The problem pt 1: The Ortur machines are particularly prone to interruption issues due to the safety feature built in that turns the diode power off if the machine gets stalled out at all, which is .really good for not burning the house down certainly, but still its not less annoying when you come to find out that the last 3 hours you thought the machine had been running and it didn’t move. (again this is a funky belt / hardware issue more than software issue but cheap machines mean workarounds in my experience)
The problem pt 2: Lightburn has no resume from last line feature.
pt 2.5: The way lightburn produces the gcode is it uses relative position instructions based off of the origin position of the job. (from the best that I can understand after some time troubleshooting - ill get into the specifics in a little)
pt 2.6: Lightburn is way better in just about every other way than not having the resume from last line feature so not using the software is kinda out of the question. (looking at you laserGRBL)
Things that I tried and dont like - Running the machine with the diode off until the resume point - takes forever with a big job and requires you to sit and hit the button at the right time, otherwise its start over again… too much human error and I have my machine in a solid vented enclosure so I cant watch it as it runs.
Start the job with the opposite scan angle - better than the first bad option but similar bone to pick about being attentive and watching the machine so I can hit the button at the right point but cant watch the machine through an opaque box.
(this was my initial hope and what I spent a lot of time trouble shooting) - save out the gcode and cut out the percent of lines that were already cut (to a close point). To preface this I have spent the last couple years running CNC turret punches at various industrial scales and to make a long story short, at one job instead of the programmers doing their jobs and making good code the operators had to optimize the gcode by hand. So I have a fair bit of experience getting into g code and fixing errors by hand, granted turrets are much different than lasers… But I am not afraid of getting down and dirty with some g code. After some time figuring out which lines were necessary to get the machine running at the correct settings I noticed that the machine was just not running in the correct position for the job. after comparing the basic saved output from lightburn and the code with 11% removed in ncviewer I finally figured out that lightburn uses relative programming instead of absolute programming so this will probably never work. the photo attached is the two versions of the code being displayed, on the left is the code with the top 11% removed from the code and the right is the original. They both have an outline of the image as a line cut, and you can see that the line cut is in the correct position, as the code resets the relative position for the new sub task in the job.
After I realized that there was probably no way for me to extract out the previously ran lines from the code I realized that I probably will have to look outside the software to get the specific function. Thus I am back at laserGRBL which I know has a resume feature from last cut line (or x lines before). Due to the aforementioned superiority and ease of lightburn I did not want to abandon the software completely as I do lots of raster scanning with image traces over the raster, and lightburn is just better for finessing the image in greyscale and making that code (code optimization is real and amazing). So I ended up getting the job set in lightburn but instead of running the job in lightburn I save out the code and run it in laserGRBL. I have only made one experiment with this method but so far it has worked like a charm. To get the gcode exported from lightburn into laserGRBL you have to open the code and resave it as a .nc file. other than that there was no issue between the two software, and from what I could see the results were identical running the same code from one software to the other.
I know this was a rather long winded post but I hope that the information is helpful to anyone else that might be having interruption issues, and if I have interpreted anything wrong in my trouble shooting or someone has an idea how to do something better I would love to hear it!
TLDR workaround: Make edits and adjustments to the image in lightburn, save the gcode. open the gcode in notepad++ save as an nc file (regular notepad would probably work for this too) then run the code using laserGRBL