Makermade M2 - CNCjs calibration issue

Ahh, yes, you could do that…

Except, it doesn’t do the “extend chain length” step. Instead you just mount the sled and adjust the chains until they are about 0,0. Unless there is something I have overlooked.

The extend chain length is certainly the most precise, but is tedious. If most of the errors can be removed through calibration, I think users prefer the just get at 0,0 solution.

Yeah, I was just referring to what you would need to do if you wanted to implement the maslow-style method. Still need to add a special command to move a single axis…

Ahh, sorry, yes you are correct.

1 Like

M2 Firmware Update: forwardKinematics() are working. As long as the serial debugging flag I introduced is off, there is no noticeable lag in the movement of the M2. I optimized the performance of the forward() function a bit, and it usually requires very few guesses. After flashing the firmware and re-homing and re-setting the variables, the sled is shuttling as-expected. I’ve also been cleaning up a lot of stuff along the way and providing some better output into the serial port.

Next step is calibration. At this point, I should be ready to create a Holey calibration widget for CNCjs.

2 Likes

Note: I’m introducing soft limits. When $20=1, then $130, $131, and $132 are respected. This is how the M2 will respect travel limits, unlike what is being introduced here @Orob https://github.com/WebControlCNC/WebControl/pull/147/files

edit I’m treating the limits as total values. So $130 is halved and applied to both positive and negative axis from the center home position.

FYI, I can’t take credit for the firmware work. It was @ariasr who thought up the approach and implemented it. I only tested it and did the webcontrol side.

Hm, ok. I want to make sure there’s some sort of compatibility between the two. But the M2 firmware has a GRBL parser built in, and most of the framework around travel limits are present, so it seems like the logical choice.

We / I can change the firmware so the commands are whatever is needed that ideally is GRBL compatible. The approach was to move the axis to the limit and press the button to save the endpoint, then move it to the other limit, press the button, and then it would never go beyond those absolute limits. Is sounds like your approach is a soft limit that is an offset depending on the defined zero position. Is that an accurate representation?

To be clear, the “zero position” == “home” in CNCjs, and it should always be the center for the Maslow. The work position may vary, but the soft limits apply to absolute position. Here are the relevant GRBL default settings that are encoded into the firmware:

$20=1 (Soft limits enabled)
$21=0 (Hard limits disabled)
$92=-12.25 (Z axis minimum travel, millimeters)
$130=2438.400 (X-axis maximum travel, millimeters)
$131=1219.200 (Y-axis maximum travel, millimeters)
$132=25.000 (Z-axis maximum travel, millimeters)

Hi, out of curiosity (and because I want to set some soft limits) how does the Maslow (M2 Due) firmware treat the X and Y soft limits? Does it divide them by 2 and make one negative? i.e. do you actually get -1200 to +1200 for x if setting 130=2400

Yes, that’s exactly correct… for X and Y.

Z has a min and max separately; see top an bottom settings: