<h2>Initializing</h2>

<p>After changing your firmware, you always need to overwrite the old values in the SRAM and EEPROM with those from the Firmware. Which you do with <strong><a href="https://3dprinting.stackexchange.com/a/11440/8884"><code>M502 &amp; M500</code></a></strong>:</p>

<blockquote>
  <p>Installing firmware does not by itself alter the EEPROM, so these settings needed to be <em>seeded into</em> SRAM via <a href="http://marlinfw.org/docs/gcode/M502.html" rel="nofollow noreferrer"><code>M502</code></a> and then <em>saved</em> into EEPROM via <a href="http://marlinfw.org/docs/gcode/M500.html" rel="nofollow noreferrer"><code>M500</code></a>.</p>
</blockquote>

<p>You could also run a G-code that has only these two lines:</p>

<pre><code>M502
M500
</code></pre>

<h2>Altering the EEPROM</h2>

<h3>Via command</h3>

<p>Alternatively, you could access the printer via a <a href="https://3dprinting.stackexchange.com/q/10573/8884">terminal</a> and send the command <a href="https://marlinfw.org/docs/gcode/M092.html" rel="nofollow noreferrer"><code>M92 E415</code></a> to overwrite the SRAM directly, then <code>M500</code> to save the new setting to EEPROM. The associated G-code that only alters the E-steps/mm would read</p>

<pre><code>M92 E415
M500
</code></pre>

<h3>Via Software</h3>

<p>Or you use a terminal that supports direct alteration of the EEPROM, like Repetier Host.</p>

CC BY-SA 4.0
2020-06-14T10:30:57.143Z
Okay but what is the order should be. I am newbie and trying to understand. So am I going to send `M502` to printer then sending my edited values printer then sending `M500` to save values? is this the order? it is a bit confusing for now looking how to execute those commands and will try after I figure out hopefully. Thank you for your help.
Burak0015
CC BY-SA 4.0
2020-06-14T10:58:40.243Z
@Burak0015 Please follow the link on the `M50x` G-codes, you see that the order is loading from firmware first (`M502`) and than saving the values (`M500`).
0scar
CC BY-SA 4.0
2020-06-14T11:15:39.050Z
Hopefully I did it, I connected printer via usb and send gcode via Cura. I sent gcode M502 ; reset! 
then I uploaded my values via arduino then I send gcode 
M500 ; saved!! 
hopefully it is correct.
Burak0015
CC BY-SA 4.0
2020-06-14T11:26:52.330Z
@Burak0015 No, you first upload the firmware using Arduino or PlatformIO and then send `M502` followed directly by `M92 E415` and `M500`
0scar
CC BY-SA 4.0
2020-06-14T11:55:30.883Z
what do you mean by send M502 followed directly by M92 E415 and M500? is it  must be one g-code like m502, m92, E415 or Can I send them one by one?
Burak0015
CC BY-SA 4.0
2020-06-14T13:23:33.293Z
@Burak0015 Those are 2 variants: Install Firmware, send M502, then send M500. OR send M95 E415 then send M500.
Trish
CC BY-SA 4.0
2020-06-14T13:38:47.777Z
Okay I will use first one  Install Firmware via arduino then send M502, then send M500 Thank you very much
Burak0015
CC BY-SA 4.0
2020-06-14T09:57:13.757Z
2020-06-14T14:07:27.987Z
2020-06-14T14:07:27.987Z
Trish
<p>I installed the TH3D firmware to my Ender 3 Pro yesterday and today I am trying to configure the extruder rate because I am not using the stock extruder on my printer but have swapped in a BMG extruder. I edited these values and upload it to my board </p>

<pre><code>#define CUSTOM_ESTEPS
//#define REVERSE_E_MOTOR_DIRECTION
#define CUSTOM_ESTEPS_VALUE 415
</code></pre>

<p>But these values do not change when I start to print something and because of that I need to edit it manually by going in to tune menu and editing flow to 415. How can I fix this issue?</p>

<marlin><creality-ender-3><firmware><th3d>
Cannot configure default E step for extruder on TH3D
Burak0015
# Cannot configure default E step for extruder on TH3D

(Asked by: username_0 on 2020-06-13)

I installed the TH3D firmware to my Ender 3 Pro yesterday and today I am trying to configure the extruder rate because I am not using the stock extruder on my printer but have swapped in a BMG extruder. I edited these values and upload it to my board

```
#define CUSTOM_ESTEPS
//#define REVERSE_E_MOTOR_DIRECTION
#define CUSTOM_ESTEPS_VALUE 415

```

But these values do not change when I start to print something and because of that I need to edit it manually by going in to tune menu and editing flow to 415. How can I fix this issue?

**Tags:** marlin, creality-ender-3, firmware, th3d


---

## 1 answers

### Answer by username_1 on 2020-06-14. Score: 1 | Accepted answer

## Initializing

After changing your firmware, you always need to overwrite the old values in the SRAM and EEPROM with those from the Firmware. Which you do with **[`M502 & M500`](https://3dprinting.stackexchange.com/a/11440/8884)**:

> Installing firmware does not by itself alter the EEPROM, so these settings needed to be *seeded into* SRAM via [`M502`](http://marlinfw.org/docs/gcode/M502.html) and then *saved* into EEPROM via [`M500`](http://marlinfw.org/docs/gcode/M500.html).

You could also run a G-code that has only these two lines:

```
M502
M500

```

## Altering the EEPROM

### Via command

Alternatively, you could access the printer via a [terminal](https://3dprinting.stackexchange.com/q/10573/8884) and send the command [`M92 E415`](https://marlinfw.org/docs/gcode/M092.html) to overwrite the SRAM directly, then `M500` to save the new setting to EEPROM. The associated G-code that only alters the E-steps/mm would read

```
M92 E415
M500

```

### Via Software

Or you use a terminal that supports direct alteration of the EEPROM, like Repetier Host.

> **Comments:**
> **username_0**: Okay but what is the order should be. I am newbie and trying to understand. So am I going to send `M502` to printer then sending my edited values printer then sending `M500` to save values? is this the order? it is a bit confusing for now looking how to execute those commands and will try after I figure out hopefully. Thank you for your help.  
> **username_2**: @username_0 Please follow the link on the `M50x` G-codes, you see that the order is loading from firmware first (`M502`) and than saving the values (`M500`).  
> **username_0**: Hopefully I did it, I connected printer via usb and send gcode via Cura. I sent gcode M502 ; reset!  then I uploaded my values via arduino then I send gcode  M500 ; saved!!  hopefully it is correct.  
> **username_2**: @username_0 No, you first upload the firmware using Arduino or PlatformIO and then send `M502` followed directly by `M92 E415` and `M500`  
> **username_0**: what do you mean by send M502 followed directly by M92 E415 and M500? is it  must be one g-code like m502, m92, E415 or Can I send them one by one?  
> **username_1**: @username_0 Those are 2 variants: Install Firmware, send M502, then send M500. OR send M95 E415 then send M500.  
> **username_0**: Okay I will use first one  Install Firmware via arduino then send M502, then send M500 Thank you very much  

---

