I have a prusa i3 and have been trying to calibrate it. I have been trying to upload the new steps per mm and I get to done uploading. However when I go into Repetier host and type M503 to get the printers settings it still shows the steps as 100 for the y axis, it needs to be 96.1810. I am using ramps 1.4 I think, with Adrunio mega 2560. If I am remembering this correctly isn't there something you have to do when uploading a new sketch like hold the rest button or something?


2 Answers 2


See here for why you shouldn't calibrate your X/Y-steps. The value of 100 is probably better and will give more accurate prints overall than the value you came up with.

When uploading new firmware you generally do not have to press any button. Pressing reset manually is only necessary when your upload method does not provide a reset pulse, but if you upload with USB this is not necessary.

What is probably causing your problem is that the E-steps are stored in EEPROM, and uploading new firmware does not override the EEPROM settings.

You should run a M502 to restore the default settings from the firmware you uploaded, then M500 to save them to the EEPROM.

  • $\begingroup$ Thanks Tom ill give it a try! I had already looked into the fact ot could be mechanical thats how i fixed the x axis the set screw came loose on the pulley after tightening it down with some thread locker solved that issue. I thought the same with the y axis but it was tighten down so i went ahead and put some thread locker on it and retightened it down. I also made sure the belt was tight and it was if i adjusted any more i think the stepper would have a hard time moving it. As for the other things mentioned in the video i have not done that yet. $\endgroup$ Jul 31, 2016 at 20:31
  • $\begingroup$ Hello Tom, it work! I'm going to use the new steps just to see if that's the issue if not I will revert them and check other settings. $\endgroup$ Aug 1, 2016 at 1:34

If your firmware doesn't store values you modified after flashing, for example using Repetier's option "Firmware EEPROM configuration", you probably didn't define EEPROM setting in Marlin.

To do this you have to uncomment the option in Marlin's Configuration.h:

// The microcontroller can store settings in the EEPROM, e.g. max velocity...
// M500 - stores parameters in EEPROM
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
// M502 - reverts to the default "factory settings".  You still need to store them in EEPROM afterwards if you want to.
//define this to enable EEPROM support

// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // Please keep turned on if you can.

Check that the lines #define EEPROM_SETTINGS and #define EEPROM_CHITCHAT are both uncommented (i.e. defined)


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .