Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing "ok" on response of M29 causes communication timeout #1273

Closed
foosel opened this issue Mar 10, 2016 · 0 comments
Closed

Missing "ok" on response of M29 causes communication timeout #1273

foosel opened this issue Mar 10, 2016 · 0 comments
Assignees
Labels
bug Issue describes a bug done Done but not yet released
Milestone

Comments

@foosel
Copy link
Member

foosel commented Mar 10, 2016

Problem

Most Marlin-based firmware currently out there in the wild has a bug that has M29 not being acknowledged with an ok. See also MarlinFirmware/Marlin#3055 and the discussion in #450. That doesn't cause problems as long as #1272 is not patched since the additional ok introduced by that issue will level things out again, but as soon that is closed, the communication will stall at the end of streaming to SD.

Always injecting an ok however will also cause issues, since mainline Marlin patched the bug, other forks might have it patched too and of course completely different firmware might not have it in the first place.

Solution

Add feature flag to signal broken M29, inject ok only if flag is set.

Alternative solutions and why they aren't choosen:

  • Defining broken GCODE commands: thanks to another Marlin bug commands are not acknowledged in the same order they are sent, so we cannot easily associate output with command. In the case of M29 we know the output, but in case of arbitrary other GCODEs we don't, so we wouldn't be able to identify the response.
  • Defining a list of responses belonging to broken GCODE commands: Too much overhead during message parsing for just one case right now to justify implementation effort.
@foosel foosel added the bug Issue describes a bug label Mar 10, 2016
@foosel foosel self-assigned this Mar 10, 2016
@foosel foosel added this to the 1.2.10 milestone Mar 10, 2016
@foosel foosel added the done Done but not yet released label Mar 10, 2016
@foosel foosel closed this as completed in 069bfdd Mar 16, 2016
@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 30, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Issue describes a bug done Done but not yet released
Projects
None yet
Development

No branches or pull requests

1 participant