<p><a href="https://www.youtube.com/watch?v=Mbn1ckR86Z8" rel="nofollow">See here</a> for why you <em>shouldn't</em> 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.</p>

<p>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.</p>

<p>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.</p>

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

CC BY-SA 3.0
2016-07-31T20:31:31.090Z
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.
Dakota Miller
CC BY-SA 3.0
2016-08-01T01:34:52.683Z
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.
Dakota Miller
CC BY-SA 3.0
2016-07-31T16:43:36.023Z
2016-07-31T16:43:36.023Z
Tom van der Zanden
<p>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. </p>

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

<pre><code>// EEPROM
// 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
  #define EEPROM_SETTINGS

#if ENABLED(EEPROM_SETTINGS)
// 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.
#endif
</code></pre>

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

CC BY-SA 3.0
2016-08-06T09:19:59.483Z
2016-08-06T09:19:59.483Z
ianmcmill
<p>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?</p>

<prusa-i3><firmware><arduino-mega-2650>
Uploading Repetier firmware to Arduino?
Dakota Miller
# Uploading Repetier firmware to Arduino?

(Asked by: username_0 on 2016-07-31)

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?

**Tags:** prusa-i3, firmware, arduino-mega-2650


---

## 2 answers

### Answer by username_1 on 2016-07-31. Score: 0 | Accepted answer

[See here](https://www.youtube.com/watch?v=Mbn1ckR86Z8) 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.

> **Comments:**
> **username_0**: 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.  
> **username_0**: 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.  

---

### Answer by username_2 on 2016-08-06. Score: 1

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:

```
// EEPROM
// 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
  #define EEPROM_SETTINGS

#if ENABLED(EEPROM_SETTINGS)
// 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.
#endif

```

Check that the lines #define EEPROM\_SETTINGS and #define EEPROM\_CHITCHAT are both uncommented (i.e. defined)


---

