What would you all think to my adding a $MINFO user command that responds with the maslow specific state including homed and extends state (can add other maslow specific things later or now if you all think there is other info its helpful to know)?
The UI could then be changed to send this info command at startup and when it comes back, if homed is false, let the user know that the maslow needs to do the “rehang dance” (release tension / remove / retract / extend / rehang / apply tension) as well as maybe disabling things like jogging (except Z) and loading gcode.
I’ll take a crack at the UI when I can get the time, but I have the following so far (no pull request yet, this is co-mingled with other stuff I’m working on and I need to detangle it / work on disabling things):
Would it be possible to use this information to restart the machine after non use without doing the rehang dance? If the machine knows how long the belts are shouldn’t that be possible?
The real solution for that is to have the firmware hold onto the belt values by storing them at opportune times into the non-volatile memory (which survives power off) and re-loading them upon startup. however, there are safeguards that need to take place in terms of how to make sure that things have not changed so that we can be sure it really has the same lengths as it was. This is a somewhat more involved issue.
This $MINFO is really intended to be a feature that can communicate information to the ui from the device rather than the other way around. and this would at least allow people to know that their machine is in this state so that they can address it.
Even after we do have the values stored, there will be times when the machine must be re-homed (the fluid term for re-setting the home position, but in Maslow’s case this means the “re-hang” dance and also resetting “home” in traditional terms.
Would it be possible to use this information to restart the machine after non
use without doing the rehang dance? If the machine knows how long the belts
are shouldn’t that be possible?
the problem is that after a restart, you don’t know how long the belts are.
you may know how long they were before you shut down, but you don’t know that
they haven’t changed in the meantime.
That is my point, with this information, and you’re right also the knowledge nothing has happened with the machine in between, you could tell the machine how long the belts were when it quit and therefor how long they should be now. It could even perform a quick check to see if it is so… couldn’t it? In a future update?