Duet3D / RepRapFirmware

OO C++ RepRap Firmware
GNU General Public License v3.0
932 stars 533 forks source link

[Bug]: G10 retract z-hop ignores homing and machine limits #967

Closed timschneider closed 3 months ago

timschneider commented 5 months ago

Duet Forum Discussion Thread

https://forum.duet3d.com/topic/35012/feature-or-bug-3-5-0-rc-3-g10-retract-z-hop-ignores-homing

Which Duet products are you using?

Firmware Version

3.5.0-rc.3

Duet Web Control Version

DWC 3.5.0-rc.3

Are you using a Single Board Computer (RaspberryPi) with your Duet?

Please upload the results of sending M122 in the gcode console.

see thread

Please upload the content of your config.g file.

No response

Please upload the content of any other releveant macro files.

No response

Details specific to your printer.

No response

Links to additional info.

No response

What happened?

The printer is unhomed and a retration z-hop is configured via M207.

Steps to reproduce execute G10

Expected result The printer should responde with an error, e.g. Error: G10: insufficient axes homed

Observed result The Z-axis is performing the z-hop ignoring the homing state and machine limit

another apsect of it occures when using cancle

Steps to reproduce see thread

Observed result

Expected result the retraction state should be preserved by M0 and the z-axis should not accumulate the z-hops.

T3P3 commented 3 months ago

This is two separate issues:

1) G10 with Z hop causing movement when the Z axis is not homed, or causes a move outside of machine limits. Proposed solution will not move when Z axis is not homed, or if the move will move outside of machine limits. 2) G10 state in pause/cancel needs to be documented correct (i.e G10 in pause, G11 in resume, G11 in cancel being the valid way to use firmware retraction).

Also if Z is ever flagged an un homed it should also be flagged as not hopped.

dc42 commented 3 months ago

Fixes tested and found to be working today. Z hop is no longer performed when the Z axis has not been homed. Otherwise, the amount of Z hop is limited according to the maximum reachable Z (which for a linear delta machine depends on the XY position). G11 when Z has been homed undoes the amount of Z hop last performed by G10 on that tool.

timschneider commented 3 months ago

@dc42 it looks like a very clean fix and well thought out rework of the whole z-hop part. thank you! I'll test it as soon as it is available in the unstable branche.