"Setup" dialog in M4 UI

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?

5 Likes

Ron Lawrence wrote:

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

David Lang

3 Likes

As along as give slack is always available and apply tension is always available if calibrated, I’d feel safe having some options not present.

I’ve needed to apply tension before each cut to re-snug my belts after jogging.

2 Likes

This seems totally logical and will help reduce errors and make it easier for new users to onboard–thanks to all of you cranking away at this project!

1 Like

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.

3 Likes

115 whole sheets! Wauw, that should provide you with a lot of experimental data, very curious to know how it will go.

1 Like

@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

2 Likes

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 :tada:
      • 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 :tada:
      • 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 :tada:. Your M4 is now calibrated to your frame’s anchor points and is ready to start working.
3 Likes

(be super careful wear a good resperator that dust has formaldahide chemical additives etc)

2 Likes

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.

2 Likes

Lee H wrote:

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 :tada:
    • 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 :tada:
  • 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 :tada:. 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)

David Lang

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”

that’s why I commented.

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.

3 Likes

that’s fine if this isn’t the place to put checking the Z values, as long as the
step is added somewhere.

David Lang

1 Like

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.

3 Likes

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:

3 Likes

Very rough progress so far (did not have a lot of time to work on it yet… needs a LOT of testing/polish):

If the UI detects the maslow is not homed it shows this wizard:

2 Likes

I like this. I do have a few editorial comments.

You might use a different term than “hang” for attaching the belts since it isn’t descriptive for flat frames.

For extend all, you’re not really “at the end” of the belts.

1 Like

Nice! I agree that it doesn’t address us flat earth I mean flat Maslow layouts :crazy_face: Maybe also consider changing the text that’s written on layout for ‘Hang Maslow On Frame’ from “that button” to “the config button”

2 Likes