Keep a file with positions and offsets through power outage and reboot

Hey @onefinitycnc, hey all,

what the Buildbotics-derived Onefinity CNC Controller lacks, is that it keeps a file of important variables that are set during the run of a program or prior to it when probing, especially the workpiece origin coordinates (usually set through probing) and the current absolute machine axis positions. On a power outage, or on reboot, these settings are lost, but if the users still had these values in that situation, they would be able to re-run their file and not have their workpiece wasted.

Re-homing or re-probing is not a solution for this situation, because (unless you retrofit limit sensors) re-homing is done with stall homing which is not ideally accurate, and re-probing is often simply not possible, e.g. on workpieces where the initial probing point was on an area that had already been milled away.

So instead of laboriously extracting the workpiece zero that is associated to a workpiece that is still fixed on the machine bed after a power outage or a reboot, from the log file at /var/log/bbctrl.log (by searching for “offset”), it would be nicer if the positions and especially the offsets, or let’s say all g-code machine variables, called parameters in g-code, or at least all numbered parameters that store nearly everything necessary to reproduce the state of a CNC machine, are saved neatly in a user-friendly file directly when they are changed and constantly kept up-to-date, which would be a file that the user can always find after any power outage or also simply after every bootup as a saved last state.

It is clear that after a power outage or after pressing e-stop, the machine has no way to sense whether or not the axes were moved. But to take this as a reason to delete everything is disenfranchising and disempowering the users and takes away important possibilities for them to be able to resume an operation and to save their workpiece. The controller software could, after all, better issue a warning that the machine was off or that E-Stop was pressed during the movement, and that the controller, without homing, can’t be sure where the carriages are. But the controller software should give the users the possibility to tell the machine that the carriages were actually not moved and that the stored values are still valid and should be used further.

Keeping the coordinates of the current workpiece zero and current carriage positions is already a feature requested in #1045, #1907 and #14115 (and possibly more).

I hereby make a new feature request because I suggest to save the current states of all g-code parameters or at least all numbered parameters (would be only little extra work). I know you let work like hell on some stuff but I fear you could easily forget this important feature that other CNC machines have and, as the feature requests show, users are missing.



There are some bugs* the controller that can only be reset with a hard power reboot. Doing a long carve or complicated run is often ruined because the offsets aren’t saved.

  • There is a nasty bug that disables any operation if you pause your operation in mid-run and move the spindle out of the way. The controls are all grayed out (well, green really) and you can’t restart (I don’t mean resume either) the operation/program. The only thing I have found is a power cycle… which blows everything away. It would be great to save the offsets to a file on the controller and be able to reload them upon need. It would be a lifesaver.

PS - I was a user on this forum for a couple of years now… but had to create a new account because I was no longer recognized. Bummer.