I’m thinking this dialog is not very obvious to a user what needs to happen when. I totally get why it is the way it is… I’m playing with other options. On my tablet I appreciate the touch friendly big buttons, but on my computer with a mouse/trackpad, they seem overly big.
Confusions:
If I have calibration done, I want retract/extend/apply
If I don’t have calibration done, I want config, zero Z retract/extend/calibrate. (and maybe jump back out to main and lower Z first?)
Then…
If I want to take the maslow off I want release tension
If I want to post to the forum I want test.
What do people think about this dialog being a bit more of a wizard based on what state the maslow is in (calibrated, not calibrated, diagnostics) and what actions should be done for those states?
I’m thinking this dialog is not very obvious to a user what needs to happen when. I totally get why it is the way it is… I’m playing with other options. On my tablet I appreciate the touch friendly big buttons, but on my computer with a mouse/trackpad, they seem overly big.
Confusions:
If I have calibration done, I want retract/extend/apply
If I don’t have calibration done, I want config, zero Z retract/extend/calibrate. (and maybe jump back out to main and lower Z first?)
Then…
If I want to take the maslow off I want release tension
If I want to post to the forum I want test.
What do people think about this dialog being a bit more of a wizard based on what state the maslow is in (calibrated, not calibrated, diagnostics) and what actions should be done for those states?
Sounds good, just make sure there’s a fairly easy way to say ‘my frame changed/I
don’t trust my current calibration, so I need to do a new one’
Also, if you have calibration done and want to just retract/extend/apply, the
final step should also do a quick check that the calibration is plausable
I’m interested in contributing to this effort. I know I mentioned something wizard-like a few weeks back when I started munging the Setup UI around for mobile:
And realized that there is both flow and state being managed/tracked.
Since then I’ve had the opportunity to get my Maslow actually cutting, and I have some thoughts based upon that experience. Doing things in reverse, I also spent some time today starting to set up a Makermade M2, my first exposure to Makerhub &etc.
One thing is clear is that there is a difference between first time / occasional use and some sort of production mode. Right now after you are up and running it seems like a weird context switch to open “setup” and perform some functions which seem to be required every time you load new material, etc.
So there are at least 3 groups of operations -
Data / Settings that are occasionally relevant - first time setup, new frame, new wifi, etc.
operations that are occasional - calibration, firmware updates, etc.
“normal” operation - whether making multiples of the same thing, or multiple one-offs.
And I think even “normal” operation might be different for “I use this once a month for a day” or “Once a year for a week” or “every day”.
I’m on my way out for a long weekend, but will have some more thoughts next week. In the meantime I hope to send out a separate topic with some notes about first week of operating. I am helping a client who intends to process 115 whole sheets of particle-board in the next few weeks… using my Maslow… so should have some observations about a few things to add to the mix as I am getting their crew up to speed &etc.
@bar calling your attention to this discussion, I fully agree with splitting out the ‘routine, frequent use’ from the ‘do once and forget’ type of things
Here’s my thoughts, taking ‘Calibration’ as an example. This is more a description of the whole workflow, rather than what the user would necessarily see on screen
Calibration
First time powering up your M4 or the first time putting on a new or reconfigured frame? Start here:
Set Z-Stop (this is actually the correct term, instead of ‘Zero Z’)
Explanation - this helps the M4 know how far down it can go
Instructions
Keep pressing the ‘Down’ button (= Z-10mm) until the router assembly can’t go down any further.
Once you’ve done that, press the ‘Set Z-Stop’ button to set the Z-Stop value.
Job done🎉
Guess at Anchor Points (is there a better term for this?)
Explanation - this helps the next calibration step for the M4 get a fix on exactly where its anchor points are
Instructions
Measure the width in mm between two anchor points and the height in mm between two anchor points, these don’t have to exact, just close, and enter their values in the boxes provided (i.e. the corresponding fields from ‘Configuration’ brought into this workflow).
Will you be using your M4 on a flat horizontal surface, or mounting it vertically? (vert / horiz selection).
Indicate the area that you want the M4 to run its calibration process over, or just continue with the values provided.
Job done🎉 those values have been written into your M4’s configuration file.
Set the Anchor Points
Explanation - with this step you will prepare and mount your M4 on your frame and your M4 should get a fix on exactly where its anchor points are
Instructions
If this is the first time you are setting up your M4 on this frame, then please use the default value provided for ‘Retraction Force’. However, if your M4 is having trouble performing this calibration step then please increase this value in increments of 100, up to about a maximum of 2000 (?) (if they change the value, and it is within reason, it is automatically saved).
Make sure your M4 is on a stable surface and its cables can retract freely, then press ‘Retract All’ to get it to retract all of its cables. Check all of the cables have completely retracted, if they have not then press ‘Retract All’ again until they have.
Now your M4 knows the ‘zero position’ for each cable
Press ‘Extend All’ to get the M4 ready to let you ‘extend’ the cables. Then ‘extend’ each cable manually. Getting this started requires some technique and a bit of force, so follow this link (or maybe a gif) for a brief video of how to do it.
Using the power cables on the router and the M4 PCB as a guide to what is ‘down’, attach each ‘belt end’ to its corresponding anchor point, making sure that the cable does not have any twist in it at all. For a ‘vertical’ frame, have a look at this video for a suggestion of how to hold the M4 while attaching it to the top anchor points. If you have a very tall or wide frame you may need help from someone else to do this.
Now your M4 is ready for the final part of this calibration process
If something goes wrong with the final part of this process remember to press the ‘Stop’ button quickly or use your E-Stop button if you’ve already fitted one (good if you have). If you do this remember that you will have to take the M4 off the frame, and start again with ‘Retract All’
Press ‘Calibrate’
This calibration process takes some time. The first pass takes measurements on a 3x3 grid. It is this first pass where you need to keep an especially close eye on your M4 and make sure nothing goes awry with the cables as they get spooled up around the router with each movement. After this the M4 will do successively larger grids as it zeroes in on identifying where the anchor points are. With each pass you will see a ‘fitness’ value (yep, show it in this screen, and in the logs)
If your M4 has significant trouble performing this calibration step then you may need to restart this whole process and change the value for ‘Retraction Force’ as described right at the start.
Once finished calibrating, your M4 will return to ‘home’ at the centre point between the anchor points.
If the ‘fitness’ value is less than (?) you should run this calibration process again from the start, although you don’t need to change the ‘Retraction Force’ value, just simply repeat the process
If the fitness value is (?) or better then congratulations . Your M4 is now calibrated to your frame’s anchor points and is ready to start working.
Note, as of the last firmware, we can send $MINFO and asynchronously get back in serial a JSON with the current “homed” state which tells us that the “re-hang” dance needs to happen. This is the reason I asked to get that change in, so the UI can react.
Another UX option I was thinking about would be to, when the maslow needs to be homed, the maslow tab does not even provide X,Y jogging or gcode operations / view, but just the options to hang the maslow up (functions: release, retract, extend, apply tension, and alarm and Z jog)
Then, once up, if not yet calibrated or on a new frame, guide them through calibration.
Here’s my thoughts, taking ‘Calibration’ as an example. This is more a description of the whole workflow, rather than what the user would necessarily see on screen
Calibration
First time powering up your M4 or the first time putting on a new or reconfigured frame? Start here:
Set Z-Stop (this is actually the correct term, instead of ‘Zero Z’)
Explanation - this helps the M4 know how far down it can go
Instructions
Keep pressing the ‘Down’ button (= Z-10mm) until the router assembly can’t go down any further.
Once you’ve done that, press the ‘Set Z-Stop’ button to set the Z-Stop value.
Job done🎉
If you have a non-standard frame you will need to figure out the Z distance from
the anchor to each arm and set the Maslow_??Z value for each arm (it’s in the
maslow.yaml file but can also be set via the GUI, show how to get to the
settings)
Guess at Anchor Points (is there a better term for this?)
Explanation - this helps the next calibration step for the M4 get a fix on exactly where its anchor points are
This only need to be redone if you change frames
Instructions
Measure the width in mm between two anchor points and the height in mm between two anchor points, these don’t have to exact, just close, and enter their values in the boxes provided (i.e. the corresponding fields from ‘Configuration’ brought into this workflow).
Will you be using your M4 on a flat horizontal surface, or mounting it vertically? (vert / horiz selection).
Indicate the area that you want the M4 to run its calibration process over, or just continue with the values provided.
Job done🎉 those values have been written into your M4’s configuration file.
Set the Anchor Points
Explanation - with this step you will prepare and mount your M4 on your frame and your M4 should get a fix on exactly where its anchor points are
Instructions
If this is the first time you are setting up your M4 on this frame, then please use the default value provided for ‘Retraction Force’. However, if your M4 is having trouble performing this calibration step then please increase this value in increments of 100, up to about a maximum of 2000 (?) (if they change the value, and it is within reason, it is automatically saved).
Make sure your M4 is on a stable surface and its cables can retract freely, then press ‘Retract All’ to get it to retract all of its cables. Check all of the cables have completely retracted, if they have not then press ‘Retract All’ again until they have.
Now your M4 knows the ‘zero position’ for each cable
Press ‘Extend All’ to get the M4 ready to let you ‘extend’ the cables. Then ‘extend’ each cable manually. Getting this started requires some technique and a bit of force, so follow this link (or maybe a gif) for a brief video of how to do it.
the first time you do this (when you are considering increasng retraction
force), you should extend and retract a second time (this time only hitting
retract-all once), and confirm that the values at the end of the retraxtion are
all near zero, if they aren’t the maslow is getting confused about how long the
belts are. If this is because they aren’t retracting all the way, increase the
retraction force (and calibration force, @bar does the UI prompt do both??) if
they are retracting all the way and the numbers for a belt are not near zero,
that needs to be fixed before trying anything else.
Using the power cables on the router and the M4 PCB as a guide to what is
‘down’, attach each ‘belt end’ to its corresponding anchor point, making
sure that the cable does not have any twist in it at all. For a ‘vertical’
frame, have a look at this video for a suggestion of how to hold the M4
while attaching it to the top anchor points. If you have a very tall or
wide frame you may need help from someone else to do this.
or the dust collection cover if using a non-standard router
Now your M4 is ready for the final part of this calibration process
If something goes wrong with the final part of this process remember to
press the ‘Stop’ button quickly or use your E-Stop button if you’ve already
fitted one (good if you have). If you do this remember that you will have
to take the M4 off the frame, and start again with ‘Retract All’
Press ‘Calibrate’
This calibration process takes some time. The first pass takes
measurements on a 3x3 grid. It is this first pass where you need to keep an
especially close eye on your M4 and make sure nothing goes awry with the
cables as they get spooled up around the router with each movement. After
this the M4 will do successively larger grids as it zeroes in on
identifying where the anchor points are. With each pass you will see a
‘fitness’ value (yep, show it in this screen, and in the logs)
recording a video of this process in case something goes wrong is very userful.
If your M4 has significant trouble performing this calibration step then you may need to restart this whole process and change the value for ‘Retraction Force’ as described right at the start.
Once finished calibrating, your M4 will return to ‘home’ at the centre point between the anchor points.
If the ‘fitness’ value is less than (?) you should run this calibration process again from the start, although you don’t need to change the ‘Retraction Force’ value, just simply repeat the process
If the fitness value is (?) or better then congratulations . Your M4 is now calibrated to your frame’s anchor points and is ready to start working.
do we want to talk at all about manual calibration? (measure the 6 distances
between anchors and enter them into a calculator like my onshape doc?)
need to talk about saving a copy of the calibration results (the Maslow_* variables in the maslow.yaml file)
Nope, this is setting the Z-Stop position, how far down the Z-Steppers the whole assembly can go. This is NOT setting Z-Zero. This is also why I strongly recommend that this action is not called “Zero Z” but “Set Z-Stop”
Which is why this entire part starts with the statement
Calibration
First time powering up your M4 or the first time putting on a new or reconfigured frame?
It’s this kind of knowledge that I’d like to see captured in the workflow, as a part of the troubleshooting flow. As in “Here’s the expected outcome, did you get this? If not, check out these scenarios, how to identify which is relevant to you, and how to work through a resolution”
Nope, this is setting the Z-Stop position, how far down the Z-Steppers the whole assembly can go. This is NOT setting Z-Zero. This is also why I strongly recommend that this action is not called “Zero Z” but “Set Z-Stop”
correct, but before you start calibration, you need to have the Maslow_??Z
variables set correctly. This seemed like the appropriate place in the process
to put it.
It’s this kind of knowledge that I’d like to see captured in the workflow, as
a part of the troubleshooting flow. As in “Here’s the expected outcome, did
you get this? If not, check out these scenarios, how to identify which is
relevant to you, and how to work through a resolution”
As someone who has done way to much workflow and UX for my own good, I’m afraid to say that the answer is no, it is not the appropriate place in the process to put it.
Why?
Because putting it here corrupts this process, this process has one objective, which is to capture and deal with one specific value. Just because we ultimately need all of these values, and just because we have chosen to put all of those values together, does not mean that the user has to handle all of those values at the same time. Otherwise, we are confusing the needs of the machine, the system, with the needs of the user, as they set up the machine, which is something completely different.
Almost 15 years years ago, I defined it this way:
Data Structures ≠ Business Objects ≠ Workflow ≠ User Interface
How we store data, does not equal how our systems use that data, does not equal how we work with that data, and does not equal how that data is expressed to a user and how they should be able to interact with it. Each layer of the system has its own needs. It may seem like a lot of extra work to view things this way, and to have things work this way. But the fact is, this is exactly how everything works, you cannot simplify below this level without forcing responsibilities, actions and maintenance back onto users, developers, etc. that in reality the computer could do.
Today, when I’ve had my fill of cutting (I’m hoping that will not be for a while, but with my history there we’ll see how that goes), I intend to work on some UI options to present here based on this thread.
Based on recent posts and confusion about the process of using this, my #1 thing is to get something out that at least tells the user they need to do the rehang dance when they do, even if we change it later more… “Perfection is the enemy of the good”, and I’m after good right now, so we’ll start somewhere and go from there.
PR is out to include in next week’s release… here is what it looks like for now. I intend to make this state cause the UI to change as above, but this is a quick change to at least let people know when their maslow is in the unhomed state:
Nice! I agree that it doesn’t address us flat earth I mean flat Maslow layouts Maybe also consider changing the text that’s written on layout for ‘Hang Maslow On Frame’ from “that button” to “the config button”