Close



Results 1 to 9 of 9
  1. #1

    M98 and M99 backlash compensation commands? (Marlin)

    I want to try out the "M99 Xmm Ymm Zmm Emm" g-code command and see how backlash can be reduced or eliminated via software. (Yes, I'm trying everything I can in the hardware department too).

    However, my firmware (Solidoodle 3 Marlin firmware, Printrboard Rev E motherboard) appears to not support that command, or it does something else.

    While M99 is meant to set the backlash compensation values in mm, M98 prints out the current values.
    Typing "M98" in Manual Control of Repetier-Host I get "N13 M98 *0" (13 and 0 change when I try again).

    If this means my firmware doesn't support hysteresis, please tell me how I can modify the firmware source to enable it.
    If I'm doing it wrong, please tell me what I'm doing wrong.

  2. #2
    Super Moderator Roxy's Avatar
    Join Date
    Apr 2014
    Location
    Lone Star State
    Posts
    2,182
    I just looked in the Marlin code base. I don't see an M98 or M99 command there. Why do you think there is a command to do that?

    Perhaps its an extension added by some printer maker? But it doesn't look standard to me.

  3. #3
    I think it might have been removed, no idea how to add it back in. http://3dprintboard.com/showthread.p...ll=1#post40055

  4. #4
    Super Moderator Roxy's Avatar
    Join Date
    Apr 2014
    Location
    Lone Star State
    Posts
    2,182
    If you get the version of the source code with the two commands... You would just add it to the current code base. If you get the two commands, I'll help you add it back in.

  5. #5
    I'll try to give all the info I know. I'm not a programmer, so the answer might be obvious to some but not me.

    All I know is I think this is the official repository of Marlin for Solidoodle https://github.com/mlaws/solidoodle2-marlin

    and this guy here tells how he added the M98/M99 commands ( Neil Martin ): https://groups.google.com/forum/#!to...le/MNnym1MC94Y in there he also posted the modified source files which I guess would work with that version of Marlin current for that time (2012).

    But looking at the latest source files, I can find the files Hysteresis.cpp and Hysteresis.h with copyright mentioning the name of Neil Martin, but not the lines he mentioned adding in other source files for this to work (Step 1 and Step 2 in his post from that link), so I just assume it was removed/deprecated.

    I would just add the changes he says is needed to add that feature, but his post is from 2012 and the code might have changed for that to work the same way.

  6. #6
    Super Moderator Roxy's Avatar
    Join Date
    Apr 2014
    Location
    Lone Star State
    Posts
    2,182
    It was never accepted into Erik Zalm's branch of the tree.

  7. #7
    What about the one I linked to which Solidoodle uses? I'm not a programmer.

  8. #8
    Super Moderator Roxy's Avatar
    Join Date
    Apr 2014
    Location
    Lone Star State
    Posts
    2,182
    The files Hysteresis.h and .cpp are in the .ZIP file from Solidoodle. But key functions defined in those such as:

    void Hysteresis::SetAxis( int axis, float mm )

    Are never referenced. And there is no M98 or M99 command in that set of files. It doesn't look like this was ever connected up and made to work.

  9. #9
    That's odd, some other users seem to have it in their printers. http://www.soliforum.com/post/75071/#p75071

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •