Help getting #define MAX_JERK to stay in the printer

Hello all, 
I am up against a wall trying to get acceleration and jerk settings to stay in my printer.  I'm running an (probably) older version of repetier in a monoprice maker select, but not sure which version it is.... I have the arduino project for it if you can point me to the right spot in the code to see the version.  It is not the original firmware, but has been a few years.

In any case I want to update my acceleration and jerk settings.  If I manually change them in the configuration menu on the printer, then click store to eeprom.... they do not persist correctly.  Only the acceleration values will show the user change but jerk is coming back unchanged at 8.9.  So next up I reflashed the firmware from the arduino project and updated #define MAX_JERK to 4.0, and changed acceleration as well  Again no change when I view the Jerk value or Acceleration values in the printer configuration menu.    I am changing eeprom mode between 0, 1, and 2 with each flash attempt to try to trigger new values overwriting the old ones, but I can not "force in" new acceleration and jerk settings at all via firmware flash.

Third attempt was to just keep manually changing the values down before each print, but this doesn't seem to work either.  As soon as a print starts, the acceleration and jerk values start changing.  So next I tried dialing Jerk back during a print, and no sooner than I dial it down the printer dials it right back up.  I looked in the test print gcode for a M207.... but none are being commanded.  I did however spot M201 and M202, but these should only be overriding acceleration right?  ...not Jerk.  Even still, I cant understand why I cant get setting changes to persist via configuration menu or firmware flash with no print process being involved.

Any help would be appreciated.  I just don't know what I'm doing wrong or what to try next.  Do I need to resort to installing repetier host?


  • edited February 8
    Did as much reading on this as I can stand to do and I think I know what is happening for most of it.  

    Basically its a system of interconnected limits.  User selected max acceleration will create a minimum acceptable jerk value that can be used.  Attempting to set below this Jerk value just will not stick and a replacement minimum will be calculated from acceleration setting and inserted for you. So the only way to lower Jerk beyond a certain point is to turn down the acceleration lower.

    This explains why the m201 and m202 commands were bouncing my Jerk value around.  My user set Jerk was below the possible threshold for the different accelerations being commanded throughout the gcode, so each time the acceleration changed, a new "replacement" jerk value was calculated since mine was set too low.

    Still unknown to me is why flashing the firmware does not seem to update my acceleration or jerk values at all, even when toggling the eeprom_mode variable.

    A bit of commentary.... It seems unfortunate to me that the Jerk setting, which is responsible for so many print artifacts/ghosting/ringing/etc is so obfuscated behind other settings.  I get why they have to be connected, but I really wish the cascade of machine imposed limits went the other way.....  with user set Jerk being respected as a "master setting" after which the machine recalculated and inserted a new resulting acceleration.  Under the current structure, it is possible to set really low acceleration and really high jerk (a useless configuration) but the opposite is not possible.  This seems backwards to me.  What I am trying to accomplish is a softer instantaneous jerk and then faster acceleration once moving so that my printers don't rattle like bags of old trash.

  • Jerk is in deed having a minimum. If it is below a certain value the timing error gets too big at start. With server connected you see this in console if it get replaced.

    As long as eeprom mode is identical and eeprom checksum matches uploading does not change. So new firmware uploads to not always change eeprom. You can set it manually from config values using

Sign In or Register to comment.