Different extruder e-step values - Octoprint vs Firmware

My setup:

Ender 3 v2 (4.2.7 board)
JyersUI v2.0.1
Octoprint 1.8.6
Octopi 0.18

I just loaded JyersUI and like it but I'm having an issue when trying to set my extruder e-steps.

If I do everything from the printer itself (set the value, extrude 100mm, measure, calc, update value, repeat...) I get one value for the e-step.

If I do the extrusion part through Octoprint (use the Extrude option on the Command and Control tab), it is completely different. I can confirm that the proper e-step gets stored to the printer (M92 Exxx; M500; check the value on the printer itself). But when I go this route, I come up with a different number. And a large difference (e.g. 145 vs 200 or so)

Has anyone seen this? I don't think I had this issue before I put in Jyers and I probably need to ask in that group but thought I would start here to see if anyone has this type of problem.


Hello @Stresspuppy !

Maybe I missed it, but where do you have to enter the e-step value in OctoPrint?
A screenshot may help.

Sorry, just using the Terminal tab to set the e-steps on the printer with the M92 command. I could just as easily set it manually on the printer itself.

Here is what is happening:

  • On the printer, set the extruder e-step value through the menus
  • From printer, extrude 100mm using the menus
  • From Octoprint, extrude 100mm using the Extrude button

Some results:

  • e-step to 145; Printer: 101mm, Octoprint: 87mm
  • e-stept to 125; Printer: 86mm, Octoprint: 77mm

No matter what I set the e-step to, it extrudes a different amount if I do it from the printer or if I do it from Octoprint. It doesn't make sense that it would be different.

If you change the e-steps with M92, the amount should be the same.

Have you tried to extrude with

G92 E0
G1 E100 F300

from OctoPrint??

When I use the Extrude button/option in Octoprint, it does that (this is what is in the window):

Send: G91 Send: M83 Send: G1 E25 F300 Send: M82 Send: G90

(sorry, not sure how to format that as separate lines)

Can you enable the serial.log and do the same and then share the serial.log?

I turned on the serial logging, extruded 100mm, then 50mm, then turned off logging.

serial.log (8.8 KB)

What extruder are you using?
Ever considered the issue could be with the firmware?

All metal extruder with dual gears. No slippage or issues with the motor to this point.

I didn't notice this issue until after I installed the new firmware so there is a strong possibility that it is the culprit. But I had always done the extrusion to figure out the e-steps through Octoprint and this time I just happened to do it through the printer itself and this showed up, I wanted to see if anyone else had seen this and rule things out.

Actually I was more interested in the type or model to investigate the diameter of the hobbed gear to calculate the approximate e-steps.

It is the stock stepper motor with the WINSINN Dual Gear Extruder

I've posted an issue to the Jyers firmware GitHub repository. I'll re-flash the firmware and try again.

I noticed this because a print that I had done before didn't turn out well. I may try just setting from Octoprint and not check it against the menus on the machine/firmware and see if that does anything. Maybe there is other code being sent from Octoprint that would make it extrude differently? I'm grasping at straws as that wouldn't make any sense.

With the image that appears there - and the note on the site - the e-steps should be around 135 steps/mm

When I set the e-steps through the printer, I get in the 145 neighborhood. If I do it through Octoprint (doing the extrusions and M92/M500 to set it) it is closer to 170 or so.

I still can't figure out why there would be a difference in the call. I'm assuming that it is doing the G1 E100 F300 call from both places. If Octoprint is just passing the G1 command along (which I can see in the Terminal), what would make the printer interpret that differently?

I'm going to set the e-steps through Octoprint and then print what I have been having issues with just to see. Then I'll re-flash the firmware just in case and try again.

New test:

  • Set the e-steps with the Octoprint Terminal to using M92 E175 and then M500
  • Used Octoprint to extrude 100mm, extruded 96
  • Did a second time, only extruded 98mm
  • Did a third time, only extruded 95mm
  • Did extrusion manually using commands from previous post, only extruded 94mm

Leaving the e-steps at that setting:

  • Used the menu on the printer to extrude 100mm, it extruded 119mm (expected with high e-step value)
  • Did it again through the printer menu, it extruded 119mm

So if I do it through the menus on the printer, seems consistent. If I do it through Octoprint, it seems to change each time for some reason and is a very different extrusion amount from the printer.

Here is my serial.log from connection to the printer through the last test from Octoprint. It notes that I am using a beta version of the firmware, but it is 2.0.1 and current Marlin is 2.1.1.

Something VERY wonky going on here...

Have you checked the stepper driver for a proper motor current?
Also check if the hobbed gears are tight to the motor shaft.

Anyhow, if different length of filament went through the hotend with one and the same command sent from OctoPrint, then the issue is more with the firmware and/or the hardware than with OctoPrint.

Where I struggle with it being the firmware is that if I do things strictly from the machine, Octoprint isn't involved, the extrusion is consistent every time. If I do it from Octoprint, it isn't and I get different amounts extruded.

Having it consistent from the machine but not from Octoprint would seem to rule out the stepper motor current and the hobbed gears. The only difference is which thing makes the call to the printer to do the extrusion.

I'm beating my head against the wall. I will re-flash the firmware and see what happens. If that doesn't do it, may trying going back to stock Creality, or current Marlin, firmware and see what happens. But it still baffles me that the same call from two different sources would produce different results.

Original Creality firmware is known to be quite quirky when it come to connect the printer to OctoPrint. So firmware can behave not always logical.

I recommend to try a firmware form the Marlin site. Or from another reliable source.

Losing my mind. I've tried a few different firmware versions. All based on Marlin 2.1.

Using Teaching Tech's calculator (I'm sure others have one or you can do the math yourself), I set the e-steps to 167.2 (way above the numbers you talked about above). But if I do this and extrude through Octoprint, it extrudes 95mm. If I leave everything the same and do the extrusion from the printer firmware, it extrudes 115mm (to be expected since the e-steps number is so high).

I've checked all the hardware, everything is in good nick so I'm pretty sure it's not that. So it all leads back to Octoprint being the only variable. I guess I can re-install Octopi/Octoprint and see if that changes anything. I'll lose all my plug ins but maybe it would be good to start from scratch and add things one at a time.

This is nuts.

Now I'm having the same issue on another printer. Different Raspberry Pi, different printer (CR-10 vs E3v2). Both running Octoprint 1.8.6. Is there a way to "downgrade" so I can see if there is something odd in this version? I would think others would have the issue too if that was the case but just trying to do process of elimination. Both printers were working perfectly but I'm not sure at what point they started having issues. If it was a firmware change or the last OP update (1.8.6).


IIRC, just type (wrote this down long ago...) :

~/oprint/bin/pip install https://github.com/OctoPrint/OctoPrint/archive/1.x.x.zip

with the Octoprint version you want to downgrade to : replace 1.x.x in the command.
Did it a couple times with no issue.