EEPROM settings for Marlin

I'm running a MP3DP with Marlin RC8 bugfix. When I bring up the EEPROM settings I see no entries for changing the entruder rate. When I watch the saved settings log it sets it to 200, it just doesn't let me tweak it.

I ask because when I tried tuning the extruder I was seeing 40mm of filament extruded when I asked for 100mm. I checked to make sure I wasn't just slipping, but the 40:100 ratio was consistent unless I adjusted the tension enough to force slipping, when the rate dropped. I'm working around it with a 2.5 multiplier, but something isn't right and my latest change to the environment was the upgrade from 1.6.2...


  • Are you using linux version? For linux we forgot to include the eeprom xml file describing possible parameter. Will be included in next release.
  • Nope, Windows 10 Creators Update 64bit on an Acer laptop. I just installed a fresh copy on this computer here... the marlineeprom.xml file in plugins/RRFirmwares doesn't seem to include extruder settings other than temperatures. I see X, Y and Z axis resolution, plus max feedrate and max acceleration for the same axes. There is an E Jerk setting, the starting temperature for three extruders and a bunch of PID settings. Finishes up with retraction settings...

  • Ok, so you are just missing these special settings. Will see if I can find out how to read/write them from marlin.
  • Any luck? Could I edit the XML file manually to add them? If so, what are the section and items names I should be using?
  • i also am having this problem. i have 3 printers, one of which uses smoothieware, but the other 2 use marlin rc8. the e steps do not show up in the firmware config area and my printers under extrude terribly. i tried wiping the eeprom thru arduino 1.8.2 and they're still not right. they worked fine before i upgraded to host 2.0. pretty disappointed here.
  • UPDATE: just found out that marlin 1.1 was released. downloaded it, configured and installed. now when i start repetier host 2.0, my bltouch keeps resetting about once a minute which for some reason reboots marlin and host comes up with an error every time.
  • You can edit the xml and restart host. It uses simple regular expressions. You have section like

      <entry type="float" min="0">
        <descripton unit="[mm/s²]">X axis max. acceleration</descripton>
        <set>M201 X@</set>

    type is float or int depending on what is allowed. You can limit values with min and max attribute. Description is what you see in the editor as text. detect is the command to detect a eeprom variable. We send M503 and you search them in a list like this:

    09:38:02.437 : echo:Steps per unit:
    09:38:02.474 : echo:  M92 X100.00 Y100.00 Z100.00 E140.00
    09:38:02.474 : echo:Maximum feedrates (mm/s):
    09:38:02.511 : echo:  M203 X200.00 Y200.00 Z50.00 E25.00
    09:38:02.511 : echo:Maximum Acceleration (mm/s2):
    09:38:02.538 : echo:  M201 X3000 Y3000 Z100 E10000
    09:38:02.538 : echo:Accelerations: P=printing, R=retract and T=travel
    09:38:02.556 : echo:  M204 P3000.00 R3000.00 T3000.00
    09:38:02.556 : echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s),  Z=maximum Z jerk (mm/s),  E=maximum E jerk (mm/s)
    09:38:02.605 : echo:  M205 S0.00 T0.00 B20000 X20.00 Z0.40 E5.00
    09:38:02.605 : echo:Home offset (mm)
    09:38:02.629 : echo:  M206 X0.00 Y0.00 Z0.00
    09:38:02.629 : echo:Material heatup parameters:
    09:38:02.653 : echo:  M145 S0 H180 B70 F0
    09:38:02.681 : echo:  M145 S1 H240 B110 F0
    09:38:02.681 : echo:PID settings:
    09:38:02.721 : echo:  M301 P22.20 I1.08 D114.00 C100.00 L20
    09:38:02.721 : echo:Filament settings: Disabled
    09:38:02.729 : echo:  M200 D3.00
    09:38:02.736 : echo:  M200 D0

    The detected value is in paranthesis.
    set is the command to set new value with @ as placeholder for new value.

    From this the block for E value would be:

      <entry type="float" min="1">
        <descripton unit="[Steps/mm]">E axis resolution</descripton>
        <set>M92 E@</set>

    Question to marlin pros - does that mean Marlin has only one E steps value for all extruders?

    Also just see that there is a spelling error for description - will be fixed in next release.

    @rejaak What command is needed to reset the bltouch? After connection is established all we send is M105 every x seconds. No need to reset a z probe.
  • afaik marlin used to have only 1 step value for all extruders last year, but looking at the current release it seems you can specify e steps for each extruder.

    dunno if that can be set in the eeprom tho
  • my setup is: migbot i3  with an mks gen 1.4 controller board using a toranado geared extruder at a 5:1 ratio. my e-steps are normally at 488.83. i followed your instructions and edited the xml for e-steps, e feedrate and e acceleration as none of them were reported in the eeprom config area in host 2.0. they show up now but my extruder is still under extruding. when performing a calibration, to get 100mm of filament, i come up with a figure of 1176.4mm/sec e-steps! when i tried printing at this speed, a loud screech was heard and marlin rebooted. i have wiped the eeprom numerous times and re-loaded marlin rc8 but the problem remains. i'm going to reload marlin 1.1 but i'm sure the same thing will happen with it. concerning the bltouch, the command to reset is: M280 P0 S160.
  • just an fyi, my bltouch keeps reseting about once per minute causing errors in host 2.0. this also happens with pronterface and cura so apparently its a problem with marlin 1.1
  • another FYI: just installed latest marlin 1.1bugfix version and bltouch issue is gone but the e-steps issue remains. when i ask for 100mm, it extrudes 63.2mm.
  • I have verified that adding a section in the XML file does display the correct setting, and I assume write them. I'm guessing the under-extrusion issue is separate, perhaps in the slicer rather than EEPROM settings? Or at least in parameters passed to the slicer...

      <entry type="float" min="1">
        <descripton unit="[Steps/mm]">Extruder resolution</descripton>
        <set>M92 E@</set>

  • It's worth asking, how would I handle multiple extruders in the XML file? The correct syntax for setting multiple is:

    M92 E200,200,200

    That would set the steps per mm for E0, E1 and E2 on a three extruder system. Maybe something nested in the <entry> section?
  • F*** this not even valid gcode they want. Why cant they just make
    M92 T0 E200
    M92 T1 E200
    so you have a valid and parseable command per extruder.
    This is not solvable with the eeprom system and xml files.

    How does M503 output look in this case? Maybe I can find a way out of this misery. But they really make it hard with this stuff.
  • Have just read latest version. There you read

          for (uint8_t i = 0; i < E_STEPPERS; i++) {
            SERIAL_ECHOPAIR("  M92 T", (int)i);
            SERIAL_ECHOLNPAIR(" E", VOLUMETRIC_UNIT(planner.axis_steps_per_mm[E_AXIS + i]));

    So M92 has the solution I already said would be natural choice for distinct values. Will add these as this seems to be the current solution.
Sign In or Register to comment.